Créer nouvelle page excel par plage de cellul
KAriss
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Je veux créer un programme vba qui me crée pour chaque cellule de E2 à E52 une nouvelle feuille, qui rapporte les information que je met sur chaque ligne(4 infos par ligne/ 50 lignes) et qui la nomme aussi.
J'ai essayé ce programme mais ça me crée une seul feuille pour la première ligne de données, mais il beugue en deuxième ligne:
Private Sub CommandButton1_Click()
Dim Nom As Range, Lig As Long
Application.ScreenUpdating = False
For Each Nom In Range("A4", [A3].End(xlDown))
Lig = Nom.Row
Sheets("432").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = " " & Nom.Value
Sheets("Feuil1").Activate
With Sheets(Sheets.Count)
.[H2].Value = Range("A" & Lig).Value
.[B1].Value = Range("A" & Lig).Value
.[H3].Value = Range("B" & Lig).Value
.[L4].Value = Range("C" & Lig).Value
.[H4].Value = Range("D" & Lig).Value
End With
Application.ScreenUpdating = True
Next Nom
End Sub
J'ai besoin d'aide de connaisseur du vba excel
Merci d'avance.
Je veux créer un programme vba qui me crée pour chaque cellule de E2 à E52 une nouvelle feuille, qui rapporte les information que je met sur chaque ligne(4 infos par ligne/ 50 lignes) et qui la nomme aussi.
J'ai essayé ce programme mais ça me crée une seul feuille pour la première ligne de données, mais il beugue en deuxième ligne:
Private Sub CommandButton1_Click()
Dim Nom As Range, Lig As Long
Application.ScreenUpdating = False
For Each Nom In Range("A4", [A3].End(xlDown))
Lig = Nom.Row
Sheets("432").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = " " & Nom.Value
Sheets("Feuil1").Activate
With Sheets(Sheets.Count)
.[H2].Value = Range("A" & Lig).Value
.[B1].Value = Range("A" & Lig).Value
.[H3].Value = Range("B" & Lig).Value
.[L4].Value = Range("C" & Lig).Value
.[H4].Value = Range("D" & Lig).Value
End With
Application.ScreenUpdating = True
Next Nom
End Sub
J'ai besoin d'aide de connaisseur du vba excel
Merci d'avance.
1 réponse
-
bonsoir
quelque chose comme ça devrait allerConst lideb = 4 Dim lifin As Long, li As Long lifin = Range("A65536").End(xlUp).Row For li = lideb To lifin Sheets("432").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = " " & Range("A" & li).Value Sheets("feuil1").Activate With Sheets(Sheets.Count) .Range("H2").Value = Range("A" & li).Value End With Next li
bonne suite