MAC - Boucle "For Each" ne fonctionne pas
Bonjour le forum,
Voiçi maintenant 2 jours que galère sur cette macro a cause d'une boucle "For Each" mal construite...
Je suis débutant en vba alors j'ai un peu de mal...
Si quelqu'un a une petite idée du problème...
Voiçi le code en question :
Function factureCCL()
'Fonction qui remplit une plage de cellules l'une après l'autre.
Dim moisActuel As Integer
Dim prixFMC As Double
Dim prixFMC_2 As Double
Dim marge As Double
moisActuel = Worksheets("Bilan").Range("S8").Value 'Format(Now, "mm")
prixFMC = Worksheets("Métrés").Range("M50").Value 'Fonctionne avec feuille "Métrés"
prixFMC_2 = Worksheets("Devis").Range("V6").Value 'Fonctionne avec feuille "Devis"
marge = Worksheets("Métrés").Range("B5").Value
'-------------------------------------- FONCTIONNE AVEC LA FEUILLE "DEVIS" -------------------------------------------
For Each celluleFMC In Worksheets("Devis").Range("C23:C34")
If celluleFMC.Value = "FMC" Then
If Not IsEmpty(Worksheets("Devis").Range("V6")) = True Then
If IsEmpty(Worksheets("Devis").Range("V17")) = True Then
MsgBox "Veuillez renseigner le ""%"" de marge.", vbExclamation, "Attention !"
'---------------------------------------------------- JANVIER ------------------------------------------------------
ElseIf moisActuel = 1 Then
For Each celluleVide In Worksheets("Bilan").Range("S12:S16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("S23:S27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- FEVRIER -----------------------------------------------------
ElseIf moisActuel = 2 Then
For Each celluleVide In Worksheets("Bilan").Range("T12:T16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("T23:T27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- MARS -------------------------------------------------------
ElseIf moisActuel = 3 Then
For Each celluleVide In Worksheets("Bilan").Range("U12:U16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("U23:U27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- AVRIL -------------------------------------------------------
ElseIf moisActuel = 4 Then
For Each celluleVide In Worksheets("Bilan").Range("V12:V16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("V23:V27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- MAI --------------------------------------------------------
ElseIf moisActuel = 5 Then
For Each celluleVide In Worksheets("Bilan").Range("W12:W16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("W23:W27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- JUIN --------------------------------------------------------
ElseIf moisActuel = 6 Then
For Each celluleVide In Worksheets("Bilan").Range("X12:X16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("X23:X27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- JUILLET ------------------------------------------------------
ElseIf moisActuel = 7 Then
For Each celluleVide In Worksheets("Bilan").Range("Y12:Y16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("Y23:Y27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- AOUT -------------------------------------------------------
ElseIf moisActuel = 8 Then
For Each celluleVide In Worksheets("Bilan").Range("Z12:Z16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("Z23:Z27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'------------------------------------------------------- SEPTEMBRE -------------------------------------------------
ElseIf moisActuel = 9 Then
For Each celluleVide In Worksheets("Bilan").Range("AA12:AA16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AA23:AA27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'------------------------------------------------------- OCTOBRE --------------------------------------------------
ElseIf moisActuel = 10 Then
For Each celluleVide In Worksheets("Bilan").Range("AB12:AB16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AB23:AB27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'------------------------------------------------------- NOVEMBRE -------------------------------------------------
ElseIf moisActuel = 11 Then
For Each celluleVide In Worksheets("Bilan").Range("AC12:AC16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AC23:AC27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'-------------------------------------------------------- DECEMBRE ------------------------------------------------
ElseIf moisActuel = 12 Then
For Each celluleVide In Worksheets("Bilan").Range("AD12:AD16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AD23:AD27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
End If
End If
End If
Exit For
Next
'-------------------------------------- FONCTIONNE AVEC LA FEUILLE "METRES" ----------------------------------------
'---------------------------------------------------- JANVIER ------------------------------------------------------
For Each celluleFMC In Worksheets("Devis").Range("C23:C34")
ElseIf celluleFMC.Value = "FMC" Then
If IsEmpty(Worksheets("Devis").Range("V6")) = True Then
If moisActuel = 1 Then
For Each celluleVide In Worksheets("Bilan").Range("S12:S16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("S23:S27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- FEVRIER -----------------------------------------------------
ElseIf moisActuel = 2 Then
For Each celluleVide In Worksheets("Bilan").Range("T12:T16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("T23:T27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- MARS -------------------------------------------------------
ElseIf moisActuel = 3 Then
For Each celluleVide In Worksheets("Bilan").Range("U12:U16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("U23:U27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- AVRIL -------------------------------------------------------
ElseIf moisActuel = 4 Then
For Each celluleVide In Worksheets("Bilan").Range("V12:V16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("V23:V27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- MAI --------------------------------------------------------
ElseIf moisActuel = 5 Then
For Each celluleVide In Worksheets("Bilan").Range("W12:W16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("W23:W27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- JUIN --------------------------------------------------------
ElseIf moisActuel = 6 Then
For Each celluleVide In Worksheets("Bilan").Range("X12:X16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("X23:X27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- JUILLET ------------------------------------------------------
ElseIf moisActuel = 7 Then
For Each celluleVide In Worksheets("Bilan").Range("Y12:Y16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("Y23:Y27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'----------------------------------------------------- AOUT -------------------------------------------------------
ElseIf moisActuel = 8 Then
For Each celluleVide In Worksheets("Bilan").Range("Z12:Z16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("Z23:Z27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'------------------------------------------------------- SEPTEMBRE -------------------------------------------------
ElseIf moisActuel = 9 Then
For Each celluleVide In Worksheets("Bilan").Range("AA12:AA16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AA23:AA27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'------------------------------------------------------- OCTOBRE --------------------------------------------------
ElseIf moisActuel = 10 Then
For Each celluleVide In Worksheets("Bilan").Range("AB12:AB16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AB23:AB27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'------------------------------------------------------- NOVEMBRE -------------------------------------------------
ElseIf moisActuel = 11 Then
For Each celluleVide In Worksheets("Bilan").Range("AC12:AC16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AC23:AC27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
'-------------------------------------------------------- DECEMBRE ------------------------------------------------
ElseIf moisActuel = 12 Then
For Each celluleVide In Worksheets("Bilan").Range("AD12:AD16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC
Exit For
End If
Next
For Each celluleVide In Worksheets("Bilan").Range("AD23:AD27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next
End If
End If
Exit For
End If
Next
End Function
Bonjour,
1 er conseil:
télécharge et installe ceci (smartindenter) , ça aide à voir clair dans son code VBA :
ensuite...un fichier serait le bienvenu
P.
Bonjour
J'approuve ce que dit patrick1957 surtout pour le fichier
Un petit truc de plus
Une fois ton code terminé, fais un petit débogage (Menu Débogage --> Compiler VBAProject) tu sauras si il existe des erreurs de syntaxe, structure ou autre ....
Pour moi
Utilise une procédure à la place d'une fonction
J'ai essayé de simplifier ton code mais sans fichier pour tester pas sur de mon coup
A tester
Sub factureCCL()
'Fonction qui remplit une plage de cellules l'une après l'autre.
Dim moisActuel As Integer
Dim prixFMC As Double
Dim prixFMC_2 As Double
Dim marge As Double
Dim Colonne As Integer
moisActuel = Worksheets("Bilan").Range("S8").Value 'Format(Now, "mm")
prixFMC = Worksheets("Métrés").Range("M50").Value 'Fonctionne avec feuille "Métrés"
prixFMC_2 = Worksheets("Devis").Range("V6").Value 'Fonctionne avec feuille "Devis"
marge = Worksheets("Métrés").Range("B5").Value
'-------------------------------------- FONCTIONNE AVEC LA FEUILLE "DEVIS" -------------------------------------------
For Each celluleFMC In Worksheets("Devis").Range("C23:C34")
If celluleFMC.Value = "FMC" Then
If Not IsEmpty(Worksheets("Devis").Range("V6")) = True Then
If IsEmpty(Worksheets("Devis").Range("V17")) = True Then
MsgBox "Veuillez renseigner le ""%"" de marge.", vbExclamation, "Attention !"
'---------------------------------------------------- JANVIER ------------------------------------------------------
Else
Colonne = 18 + moisActuel
With Sheets("Bilan")
For Each celluleVide In .Range(.Cells(12, Colonne), .Cells(16, Colonne)) '"S12:S16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next celluleVide
For Each celluleVide In .Range(.Cells(23, Colonne), .Cells(27, Colonne)) '"S23:S27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next celluleVide
End With
End If
End If
End If
Exit For
Next celluleFMC
'-------------------------------------- FONCTIONNE AVEC LA FEUILLE "METRES" ----------------------------------------
'---------------------------------------------------- JANVIER ------------------------------------------------------
For Each celluleFMC In Worksheets("Devis").Range("C23:C34")
If celluleFMC.Value = "FMC" Then
If IsEmpty(Worksheets("Devis").Range("V6")) = True Then
Colonne = 18 + moisActuel
With Sheets("Bilan")
For Each celluleVide In .Range(.Cells(12, Colonne), .Cells(16, Colonne)) '"S12:S16")
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2
Exit For
End If
Next celluleVide
For Each celluleVide In .Range(.Cells(23, Colonne), .Cells(27, Colonne)) '"S23:S27")
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next celluleVide
End With
End If
Exit For
End If
Next celluleFMC
End Sub
Bonjour Banzaïl64,
Je viens de tester ton code et tout FONCTIONNE !!!!!
Encore une fois, un GRAND MERCI à toi !!!
On voit bien la différence entre un débutant comme moi (4 pages de code) et un pro comme toi (1/2 page) ...
Petite question quand même: Qu'est-ce que veux dire cette ligne dans ton code ? "Colonne = 18 + moisActuel"
PS: Merci pour le conseil patrick1957, je vais voir si il existe une version de "Smart Indenter" pour Mac !
Ce forum, toujours au TOP quand on a un problème !
Bonjour
En lisant ton code je me suis aperçu que c'était juste le numéro de colonne qui changeait en fonction du mois, d'où l'idée de faire calculer cette colonne en fonction du mois
Avant c'était
MoisActuel 1 : Colonne S (19ème colonne)
MoisActuel 2 : Colonne T (20ème colonne)
MoisActuel 3 : Colonne U (21ème colonne)
etc ...
C'était facile de trouver le bon numéro de colonne : 18 + MoisActuel
Bonjour Banzaïl64,
Après avoir mis le code que tu a écrit dans ma macro existante, l'exécution de la partie "For Each" ne se fait pas...
Pourrais-tu jeter un coup d'oeil sltp ???
ElseIf Range("Y31").Value = 2 Then
If Range("H1").Value = "Mode Devis" Then
MsgBox "Vous êtes en ""Mode Devis"", vous ne pouvez pas enregistrer ""Facture"" en format (.PDF) !" & vbCrLf & vbLf & "Pour pouvoir enregistrer ""Facture"" au format (.PDF), veuillez redémarrer l'application en ""Mode Facture"".", vbExclamation, "Avertissement !"
ElseIf IsEmpty(Range("F" & 13)) Then
MsgBox "Vous n'avez pas rempli le champ ""Objet de Facture"".", vbExclamation, "Attention !"
'-------------------------- A partir d'içi, on copie le prix de la marchandise sur la feuille "Bilan" ----------------------------
'--------------------------------------- Ventes de marchandise -------------------------------------------
Else
For Each celluleFMC In Worksheets("Devis").Range("C23:C34")
If celluleFMC.Value = "FMC" Then
If Not IsEmpty(Worksheets("Devis").Range("V6")) = True Then
If IsEmpty(Worksheets("Devis").Range("V17")) = True Then
MsgBox "Veuillez renseigner le ""%"" de marge.", vbExclamation, "Attention !"
Exit Sub
Else
Colonne = 18 + moisActuel
With Sheets("Bilan")
For Each celluleVide In .Range(.Cells(12, Colonne), .Cells(16, Colonne))
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC_2 'Prix FMC sur feuille "Devis"
Exit For
End If
Next celluleVide
'------------------------------------ Marge ------------------------------------
For Each celluleVide In .Range(.Cells(23, Colonne), .Cells(27, Colonne))
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next celluleVide
End With
End If
End If
End If
Exit For
Next celluleFMC
'--------------------------------------- Ventes de marchandise 2 -------------------------------------------
For Each celluleFMC In Worksheets("Devis").Range("C23:C34")
If celluleFMC.Value = "FMC" Then
If IsEmpty(Worksheets("Devis").Range("V6")) = True Then
Colonne = 18 + moisActuel
With Sheets("Bilan")
For Each celluleVide In .Range(.Cells(12, Colonne), .Cells(16, Colonne))
If IsEmpty(celluleVide) Then
celluleVide.Value = prixFMC 'Prix feuille "Métrés"
Exit For
End If
Next celluleVide
'--------------------------------------- Marge ---------------------------------------
For Each celluleVide In .Range(.Cells(23, Colonne), .Cells(27, Colonne))
If IsEmpty(celluleVide) Then
If marge = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = marge
End If
Exit For
End If
Next celluleVide
End With
End If
Exit For
End If
Next celluleFMC
'------------------------------------------ Prestations de services -----------------------------------------
Sheets("Bilan").Unprotect "CLARISSA"
Colonne = 18 + moisActuel
With Sheets("Bilan")
For Each celluleVide In .Range(.Cells(32, Colonne), .Cells(36, Colonne))
If IsEmpty(celluleVide) Then
If totalHT = 0 Then
celluleVide.Value = ""
Else
celluleVide.Value = totalHT
End If
Exit For
End If
Next celluleVide
End With
Sheets("Bilan").Protect "CLARISSA"
'--------------------------------A partir de là, on créer un .PDF de "Facture"------------------------------------
On Error Resume Next
MkDir CheminDossier2 'MkDir Créer le nouveau dossier dans le répertoire...
On Error GoTo 0
ChDir CheminDossier2
TempPDFFolder = "Mac OS X Mountain Lion:Users:iDev4s:Documents:Factures envoyées aux Clients:" & ActiveSheet.[I8] & ":PDFTempFolder:"
PDFfolder = "Mac OS X Mountain Lion:Users:iDev4s:Documents:Factures envoyées aux Clients:" & ActiveSheet.[I8] & ":PDFTempFolder"
PDFfileName1 = "Facture N°" & ActiveSheet.[F9] & ActiveSheet.[R21] & "_" & ActiveSheet.[I8] '& Format(Now, "dd-mmm-yy h-mm-ss")
CheminFichier1 = CheminDossier2 & ":Facture N°" & ActiveSheet.[F9] & ActiveSheet.[R21] & "_" & ActiveSheet.[I8]
Application.ScreenUpdating = False
Sheets("Facture").Visible = True
Worksheets("Facture").Copy
KillFileOnMac CheminFichier1 & ".pdf"
Call MakePDF(TempPDFFolder, PDFfolder, PDFfileName1, True)
ActiveWorkbook.Close SaveChanges:=False
KillFileOnMac PDFfolder & PDFfileName1 & ".pdf"
Sheets("Facture").Visible = False
Application.ScreenUpdating = True
'----------------------------A partir de là, on créer un .PDF de "Charge R.S.I"------------------------
On Error Resume Next
MkDir CheminDossier4 'MkDir Créer le nouveau dossier dans le répertoire...
On Error GoTo 0
ChDir CheminDossier4
TempPDFFolder = "Mac OS X Mountain Lion:Users:iDev4s:Documents:Sauvegardes PDF Clients:Charges R.S.I:" & ActiveSheet.[I8] & ":PDFTempFolder:"
PDFfolder = "Mac OS X Mountain Lion:Users:iDev4s:Documents:Sauvegardes PDF Clients:Charges R.S.I:" & ActiveSheet.[I8] & ":PDFTempFolder"
PDFfileName1 = "Charges R.S.I N°" & ActiveSheet.[F9] & ActiveSheet.[R21] & "_" & ActiveSheet.[I8] '& Format(Now, "dd-mmm-yy h-mm-ss")
CheminFichier1 = CheminDossier4 & ":Charges R.S.I N°" & ActiveSheet.[F9] & ActiveSheet.[R21] & "_" & ActiveSheet.[I8]
Application.ScreenUpdating = False
Worksheets("Charges R.S.I").Copy
KillFileOnMac CheminFichier1 & ".pdf"
Call MakePDF(TempPDFFolder, PDFfolder, PDFfileName1, True)
ActiveWorkbook.Close SaveChanges:=False
KillFileOnMac PDFfolder & PDFfileName1 & ".pdf"
Application.ScreenUpdating = True
MsgBox "L'enregistrement de ""Facture"" au format (.PDF) est un succès !" & vbCrLf & "Retrouvez-le dans le dossier:" & vbCrLf & vbCrLf & "Mac OS X Mountain Lion -> Utilisateurs -> iDev4s -> Documents -> ""Factures envoyées aux Clients"".", vbInformation, "Confirmation d' Enregistrement"
MsgBox "L'enregistrement de ""Charges R.S.I"" au format (.PDF) est un succès !" & vbCrLf & "Retrouvez-le dans le dossier:" & vbCrLf & vbCrLf & "Mac OS X Mountain Lion -> Utilisateurs -> iDev4s -> Documents -> Sauvegardes PDF Clients -> ""Charges R.S.I"".", vbInformation, "Confirmation d' Enregistrement"
num = Range("R21").Value
num = num + 1
Range("R21").Value = num
End If
Bonjour
Heuu sans fichier pour tester je ne sais pas
Joins le fichier en cause, et tu y indiques quelles sont les opérations à faire pour constater que les boucles For Each ne se font pas
(Cellules devant être modifiées et qui ne le sont pas (Indique les cellules clairement))
A suivre
re,
attention que l'ami iDev est sous Mac
P.
Bonjour Patrick1957,
Oui, effectivement je tourne sur Mac...
L'un de vous deux a t'il un Mac pour pouvoir tester mon fichier ?
Oui j'ai mais sans aucune garantie, je ne travaille jamais en excel dessus, je le trouve mal fichu par rapport à la version windows
P.
Problème RÉSOLU !!!
Le problème venait du fait que sur la macro qu'a ré-écrit Banzaïl64,
les deux principales boucles "For Each" ce terminées par "Exit For" !
Donc, à l'exécution, seulement la première cellule de la plage (C23:C34) était vérifié…
Exemple, si C26 = "FMC" alors sa ne fonctionner pas…
Le Fait de supprimer "Exit For" permet désormais de vérifier la plage entière !!! Et ça marche !!!
Merci quand même à vous deux…