Bonjour tout le monde,
J'ai créé une macro sur bouton chargée de créer des onglets en fonction d'un tableau.
Ce que fait la macro dans l'ordre, en fin j'espère parce qu'elle ne fonctionne pas:
1- Selection de la dernière ligne non vide du tableau, dans la colonne C.
2- A partir de la cellule ainsi selectionnée, recherche de la dernière cellule non vide vers la droite, la j'ai un peu improvisé, j'ai tenté de concatener des formule que j'ai trouvé sur le forum.
3- pour chacune de ces cellules (parmi celles selectioné de 1- à 2-), il faut creer un onglet selon le modele ("Certificat") dont le nom est son entete de colone (Ligne 3).
Voici le code
Private Sub CommandButton1_Click()
Dim rngCell As Range
Dim Lig As Integer
For n = 4 To 28 Step 1
If Range("C" & n).Value = "" Then
Lig = n - 1
Exit For
End If
Next n
Application.ScreenUpdating = False
For Each rngCell In Range("C" & Lig & ":" & Range("IV" & Lig).End(xlToLeft).Address(0, 0)).Select
On Error GoTo Fin
Sheets("Certificat pour paiement").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = rngCell.Offset(3-Lig, 0).Value
Application.ScreenUpdating = True
Next rngCell
Fin:
End Sub
S'il faut un exemple n'hésitez pas à demander.
Merci pour vos propositions.
J'ai créé une macro sur bouton chargée de créer des onglets en fonction d'un tableau.
Ce que fait la macro dans l'ordre, en fin j'espère parce qu'elle ne fonctionne pas:
1- Selection de la dernière ligne non vide du tableau, dans la colonne C.
2- A partir de la cellule ainsi selectionnée, recherche de la dernière cellule non vide vers la droite, la j'ai un peu improvisé, j'ai tenté de concatener des formule que j'ai trouvé sur le forum.
3- pour chacune de ces cellules (parmi celles selectioné de 1- à 2-), il faut creer un onglet selon le modele ("Certificat") dont le nom est son entete de colone (Ligne 3).
Voici le code
Private Sub CommandButton1_Click()
Dim rngCell As Range
Dim Lig As Integer
For n = 4 To 28 Step 1
If Range("C" & n).Value = "" Then
Lig = n - 1
Exit For
End If
Next n
Application.ScreenUpdating = False
For Each rngCell In Range("C" & Lig & ":" & Range("IV" & Lig).End(xlToLeft).Address(0, 0)).Select
On Error GoTo Fin
Sheets("Certificat pour paiement").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = rngCell.Offset(3-Lig, 0).Value
Application.ScreenUpdating = True
Next rngCell
Fin:
End Sub
S'il faut un exemple n'hésitez pas à demander.
Merci pour vos propositions.