I changed variable names so they are differentiated a little. As well moving items is always a little more complex.
Sub MoveItems7TESTRecursive()
Dim myNameSpace As Namespace
Dim myInbox As Folder
Dim myDestFolder As Folder
Set myNameSpace = GetNamespace("MAPI")
'Posta in arrivo
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myDestFolder = myInbox.Folders("Da completare")
DoAnything myInbox, myDestFolder
LoopFolders myInbox.Folders, myDestFolder, True
Debug.Print "Done"
End Sub
Public Sub LoopFolders(fldrs As Folders, destFldr As Folder, ByVal Recursive As Boolean)
Dim sourceFldr As Folder
For Each sourceFldr In fldrs
DoAnything sourceFldr, destFldr
If Recursive Then
LoopFolders sourceFldr.Folders, destFldr, Recursive
End If
Next
End Sub
Private Sub DoAnything(fldr As Folder, destFldr As Folder)
Debug.Print fldr.name
Dim myItem As Object
Dim myItems As Items
Set myItems = fldr.Items
If fldr <> destFldr Then
Set myItem = myItems.Find("[FLAGSTATUS] = 8")
'Set myItem = myItems.Find("[Subject] = ""This is a test""")
While TypeName(myItem) <> "Nothing"
myItem.move destFldr
Set myItem = myItems.FindNext
Wend
End If
End Sub