Génération automatique de feuilles Excel avec boucle

Bonjour à tous,

J'ai un problème dans mon code de macro pour terminer une boucle. Le code bloque à la ligne en rouge. Lorsqu'il relance le balayage de la base client pour générer une seconde feuille, il bloque surement sur le nom de la feuille.

Pouvez-vous m'aider svp?

Ci-dessous le code ma macro.

Sub Factures_ITP()

'Edition de factures en fonction du fichier mensuel des locations'

'Numérotation automatique des factures avec ITP15 suivi de trois chiffres (utilisation du menu format de la cellule) donc hors du code'

Dim num As Integer

num = Sheets("Facture").Range("B13").Value

num = num + 1

Dim dlg As Integer

dlg = Sheets("Mensuel").Range("A" & Rows.Count).End(xlUp).Row

For i = 4 To dlg

With Sheets("Facture")

.Range("B13") = num

.Range("D7") = Sheets("Mensuel").Range("A" & i)

.Range("D8") = Sheets("Mensuel").Range("G" & i)

.Range("D9") = Sheets("Mensuel").Range("J" & i)

.Range("D10") = Sheets("Mensuel").Range("K" & i) & " " & Sheets("Mensuel").Range("L" & i)

.Range("A19") = "Location " & Sheets("Mensuel").Range("C" & i) & " pour " & Sheets("Mensuel").Range("E" & i) & " le " & Sheets("Mensuel").Range("D" & i)

.Range("A20") = Sheets("Mensuel").Range("I" & i)

.Range("E19") = Sheets("Mensuel").Range("H" & i)

.Copy after:=Sheets(Sheets.Count)

Sheets(Sheets.Count).Name = Sheets("Facture").Range("B13").Text

End With

Next

End Sub


Je précise que je souhaite appeler chaque feuille générée et copiée par le numéro incrémenté présent dans mon modèle de facture en B13

Bonjour

Ci joint une proposition qui marche a priori

ActiveSheet.Select

ActiveSheet.Copy after:=Sheets(Sheets.Count)

ActiveSheet.Name = Sheets("Facture").Range("B13").Text

Cordialement

FINDRH

Merci de la proposition mais j'ai toujours le même problème j'ai l'impression qu'il n'arrive pas à partir de la seconde facture générée à prendre la valeur +1 en B13 de mon modèle.

Je joins mon fichier de travail pour information

Bonjour, bonjour !

Le VBA ne se trompe jamais, il exécute juste la demande …

Et pour cause : la valeur + 1 n'est pas codée dans la boucle !

Ce serait plus efficace de prendre la valeur de i - 3 …

Bonjour

Ci joint une nouvelle proposition

J'ai déclaré Num en Long et modifié qq lignes

A Tester

Cordialement

FINDRH

Merci pour vos réponses.

Après une autre tentative, je comprends bien où se situe l'erreur mais je n'arrive pas à intégrer le + 1 dans la boucle pour demander de générer autant de factures que de lignes client avec le nom de la feuille qui augmente de 1 à chaque fois.

Désolé je fais mes début dans le VBA

Peut être que si je procède facture par facture sans copier toutes les factures d'un coup je pourrai les nommer plus facilement dans mon code?

Bonsoir

Effectivement une facture après l'autre me semble plus facile à appréhender

Cordialement

FINDRH

Rechercher des sujets similaires à "generation automatique feuilles boucle"