Génération automatique de feuilles excel avec boucle

Y compris Power BI, Power Query et toute autre question en lien avec Excel
K
Karlito
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 5 février 2015
Version d'Excel : 2010

Message par Karlito » 6 février 2015, 09:33

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
F
FINDRH
Membre impliqué
Membre impliqué
Messages : 1'390
Appréciations reçues : 14
Inscrit le : 12 février 2010
Version d'Excel : 2016

Message par FINDRH » 6 février 2015, 09:48

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
K
Karlito
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 5 février 2015
Version d'Excel : 2010

Message par Karlito » 6 février 2015, 09:56

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
Maquette facturation_ITP.xlsm
(36.93 Kio) Téléchargé 11 fois
Avatar du membre
Marc L
Membre dévoué
Membre dévoué
Messages : 821
Appréciation reçue : 1
Inscrit le : 27 janvier 2015
Version d'Excel : 2003 / 2007

Message par Marc L » 6 février 2015, 10:32

 
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 …

Tous unis, tous Charlie
F
FINDRH
Membre impliqué
Membre impliqué
Messages : 1'390
Appréciations reçues : 14
Inscrit le : 12 février 2010
Version d'Excel : 2016

Message par FINDRH » 6 février 2015, 10:38

Bonjour

Ci joint une nouvelle proposition
J'ai déclaré Num en Long et modifié qq lignes
A Tester

Cordialement

FINDRH
Ajout feuillev nommer.xlsm
(17.38 Kio) Téléchargé 14 fois
K
Karlito
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 5 février 2015
Version d'Excel : 2010

Message par Karlito » 6 février 2015, 14:35

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 :-)
K
Karlito
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 5 février 2015
Version d'Excel : 2010

Message par Karlito » 6 février 2015, 14:54

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?
F
FINDRH
Membre impliqué
Membre impliqué
Messages : 1'390
Appréciations reçues : 14
Inscrit le : 12 février 2010
Version d'Excel : 2016

Message par FINDRH » 6 février 2015, 17:36

Bonsoir

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

Cordialement

FINDRH
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message