Je n'arrive pas à décocher.
Enfin j'arrive bien à mettre Checked à False mais pas à ce que l'affichage le reflète que ce soit avec .repaint, .refresh ou en appelant l'événement. Il faudrait recharger complètement le contrôle.
Ceci dit tu peux faire autrement en testant au moment de la création :
Private Sub CommandButton1_Click()
Dim NodX As Node, chemin As String, fich As String
chemin = "D:\tmp\"
fich = "Classeur3.xlsx"
For Each NodX In MonArbre.Nodes
If NodX.Checked And NodX.Children = 0 Then
If Dir(chemin & Replace(fich, "Classeur3", NodX.Text)) = "" Then
FileCopy chemin & fich, chemin & Replace(fich, "Classeur3", NodX.Text)
End If
End If
Next
End Sub
Le fichier n'est créé que si le noeud n'a pas d'enfant et si le fichier n'existe pas.
Si tu veux que l'utilisateur soit informé avant de sélectionner, dans l'initialize tu pourrais tester l'existence de tous les fichiers dans une boucle et mettre en rouge le texte du node si le fichier existe (et pour les noeuds père aussi éventuellement).