MAC - Export Userforms = "Erreur de focus"
Bonjour le forum,
La macro ci-dessous me permet d'exporter tous les éléments de VBProject (Feuilles, Userforms et Modules) dans 2 dossiers différents...
La macro génère une erreur:
sur la ligne surlignée...
le code:
Sub Exporter_VBAProjet()
Dim moduleVBA As Object
Dim userformVBA As Object
Dim PathToExport1a As String
Dim PathToExport1b As String
Dim PathToExport1c As String
Dim PathToExport2a As String
Dim PathToExport2b As String
Dim PathToExport2c As String
PathToExport1a = "Mac OS X El Capitan:Users:M.Pxxxxxxxx:Documents:Macros Excel 2016:for Mac:Feuilles:"
PathToExport1b = "Mac OS X El Capitan:Users:M.Pxxxxxxxx:Documents:Macros Excel 2016:for Mac:UserForms:"
PathToExport1c = "Mac OS X El Capitan:Users:M.Pxxxxxxxx:Documents:Macros Excel 2016:for Mac:Modules:"
PathToExport2a = "Mac OS X El Capitan:Users:M.Pxxxxxxxx:Dropbox:### Partage Windows & Mac ###:Macros Excel 2016:for Mac:Feuilles:"
PathToExport2b = "Mac OS X El Capitan:Users:M.Pxxxxxxxx:Dropbox:### Partage Windows & Mac ###:Macros Excel 2016:for Mac:UserForms:"
PathToExport2c = "Mac OS X El Capitan:Users:M.Pxxxxxxxx:Dropbox:### Partage Windows & Mac ###:Macros Excel 2016:for Mac:Modules:"
'Copie les feuilles dans les deux chemins...
ActiveWorkbook.VBProject.VBComponents("Feuil1").Export (PathToExport1a & "Feuil1 (Devis).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil2").Export (PathToExport1a & "Feuil2 (Facture).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil3").Export (PathToExport1a & "Feuil3 (Métrés).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil4").Export (PathToExport1a & "Feuil4 (Prix C.C.L).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil5").Export (PathToExport1a & "Feuil5 (Prix ProBat).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil6").Export (PathToExport1a & "Feuil6 (Réfs & Prix MO).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil7").Export (PathToExport1a & "Feuil7 (Situation(s)).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil8").Export (PathToExport1a & "Feuil8 (Charges R.S.I).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil9").Export (PathToExport1a & "Feuil9 (Bilan).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil10").Export (PathToExport1a & "Feuil10 (Bilan(Bis)).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil11").Export (PathToExport1a & "Feuil11 (Impôt sur le revenu).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil12").Export (PathToExport1a & "Feuil12 (Prix Point P).cls")
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").Export (PathToExport1a & "ThisWorkbook.cls")
ActiveWorkbook.VBProject.VBComponents("Feuil1").Export (PathToExport2a & "Feuil1 (Devis).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil2").Export (PathToExport2a & "Feuil2 (Facture).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil3").Export (PathToExport2a & "Feuil3 (Métrés).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil4").Export (PathToExport2a & "Feuil4 (Prix C.C.L).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil5").Export (PathToExport2a & "Feuil5 (Prix ProBat).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil6").Export (PathToExport2a & "Feuil6 (Réfs & Prix MO).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil7").Export (PathToExport2a & "Feuil7 (Situation(s)).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil8").Export (PathToExport2a & "Feuil8 (Charges R.S.I).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil9").Export (PathToExport2a & "Feuil9 (Bilan).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil10").Export (PathToExport2a & "Feuil10 (Bilan(Bis)).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil11").Export (PathToExport2a & "Feuil11 (Impôt sur le revenu).cls")
ActiveWorkbook.VBProject.VBComponents("Feuil12").Export (PathToExport2a & "Feuil12 (Prix Point P).cls")
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").Export (PathToExport2a & "ThisWorkbook.cls")
'Copie les UserForms dans les deux chemins...
For Each userformVBA In ThisWorkbook.VBProject.VBComponents
If userformVBA.Type = 3 Then '100 = Feuilles, 3 = UserForms, 1 = Modules...
[Surligner]ThisWorkbook.VBProject.VBComponents(userformVBA.Name).Export (PathToExport1b & userformVBA.Name & ".frm")[/Surligner]
[Surligner]ThisWorkbook.VBProject.VBComponents(userformVBA.Name).Export (PathToExport2b & userformVBA.Name & ".frm")[/Surligner]
End If
Next userformVBA
'Copie les modules dans les deux chemins...
For Each moduleVBA In ThisWorkbook.VBProject.VBComponents
If moduleVBA.Type = 1 Then '100 = Feuilles, 3 = UserForms, 1 = Modules...
ThisWorkbook.VBProject.VBComponents(moduleVBA.Name).Export (PathToExport1c & moduleVBA.Name & ".bas")
ThisWorkbook.VBProject.VBComponents(moduleVBA.Name).Export (PathToExport2c & moduleVBA.Name & ".bas")
End If
Next moduleVBA
End Sub
Quelqu'un pourrait-il m'aider à comprendre d'ou vient l'erreur s'il vous plait ???
Bonjour
La macro s'arrête sur quelle ligne ??
Même sujet qu'ici ?? --> MAC - Comment exporter : modules, userforms, etc...
Par hasard vous n'auriez pas une feuille ou un objet masqué ?
Cordialement
Bonjour Dan,
Oui effectivement, c'est la même macro dans l'autre sujet mais qui a évoluée un peu... (Boucle "For Each" pour les Userforms)
La macro s'arrête sur:
ThisWorkbook.VBProject.VBComponents(userformVBA.Name).Export (PathToExport1b & userformVBA.Name & ".frm")
ThisWorkbook.VBProject.VBComponents(userformVBA.Name).Export (PathToExport2b & userformVBA.Name & ".frm")
Je l'ai pourtant surligné mais ça n'apparait pas sur le code...
Feuille masquée dans le classeur : oui
Objets masqués : oui
Image masquée : oui
Si je met en commentaire ces 2 lignes, le reste du code s'exécute sans problème...
Je ne comprend pas le message d'erreur...
Je ne vois pas le rapport entre le focus et les Userforms ?!?!
Re
Pas facile sans voir le fichier
Une question tu es sous excel 2016 ? Parce que si ma mémoire est bonne les USF ne fonctionnent pas dans cette version.
Cordialement