Je tourne en rond sur une boucle
Bonjour,
je suis novive en VBA et cela fait plusieurs jours que je me casse les dents sur à priori quelquechose de trés simple;
une boucle permettant la création d1 fichier PDF à chaque page trouvée dans une feuille d'un classeur.
Quelquesoit la commande que je place après le code de création du PDF ca bloque sur cette ligne de commande.
dans un premier temps cela bloquait sur le next de la boucle maintenant cela bloque sur la MSGbox que j'ai ajouté pour baliser pas à pas ma progression. ?????
Pourtant cela a déja fonctionné et je ne sais pas ce que j'ai changé pour que cela ne marche plus.
Merci de votre aide, car là ce doit etre simple mais je bloque depuis des heures et des heures. voici la partie du code
Nb_feuilles = ThisWorkbook.Sheets.Count
MsgBox "Nb_feuilles " & Nb_feuilles
For y = 1 To Nb_feuilles - 2 ' -2 car feuilles liste et bouton à la fin du classeur
Sheets("liste fichiers à générer").Activate
Nom_feuille = Sheets("liste fichiers à générer").Range("A" & y + 1)
MsgBox "Nom_feuille " & Nom_feuille
Sheets(Nom_feuille).Activate
Nb_pages = ActiveSheet.HPageBreaks.Count + 1
MsgBox "Nb_pages " & Nb_pages
Sheets(Nom_feuille).Activate
For a = 1 To Nb_pages
Nom_Fichier = Sheets("liste fichiers à générer").Cells(a + 1, y + 1) & " " & Periode & ".PDF"
' le +1 correspond au fait
' que la colonne de la feuille "liste fichiers à générer" a une entête
Nom_Fichier = "BMR " & Nom_Fichier
'Chemin_complet = Chemin_sousrep(y) & "\" & Nom_Fichier
Chemin_complet = Chemin1 & "\" & Nom_Fichier
MsgBox "le nom de la feuille active est " & ActiveSheet.Name
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Chemin_complet, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
From:=a, To:=a, _
OpenAfterPublish:=False
MsgBox "le nom de la feuille active est " & ActiveSheet.Name
Next a
Next y
Bonjour,
"bloque", ça veut dire quoi ?
Erreur d'exécution ? Dans ce cas, quelle erreur ?
Sinon ?
Bonjour,
En lisant le titre, j'aurais tendance à dire.. c'est normal pour une boucle... de tourner en rond
Sinon sans fichier, ce code à essayer en mode pas à pas [F8]
Dim Col As Long, Lig As Long, ShtS As Worksheet
Dim Nb_feuilles As Integer, Nom_feuille As String, Nb_pages As Integer
' Définir la feuille source
Set ShtS = Sheets("liste fichiers à générer")
' -3 car ligne d'entête et feuilles liste et bouton à la fin du classeur
Nb_feuilles = ShtS.Range("A" & Rows.Count).End(xlUp).Row - 3
MsgBox "Nb_feuilles " & Nb_feuilles
For Lig = 2 To Nb_feuilles
Nom_feuille = ShtS.Range("A" & Lig)
MsgBox "Nom_feuille " & Nom_feuille
Sheets(Nom_feuille).Activate
Nb_pages = ActiveSheet.HPageBreaks.Count + 1
MsgBox "Nb_pages " & Nb_pages
For Col = 1 To Nb_pages
' le +1 correspond au fait
' que la colonne de la feuille "liste fichiers à générer" a une entête
' ### ou est définit la variable Periode ???
Nom_Fichier = "BMR " & ShtS.Cells(Lig, Col + 1) & " " & Periode & ".PDF"
'Chemin_complet = Chemin_sousrep(y) & "\" & Nom_Fichier
Chemin_complet = Chemin1 & "\" & Nom_Fichier
MsgBox "le nom de la feuille active est " & ActiveSheet.Name
' Exporter au format PDF
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=Chemin_complet, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
From:=a, To:=a, _
OpenAfterPublish:=False
MsgBox "le nom de la feuille active est " & ActiveSheet.Name
Next Col
Next Lig
A+