Etant débutant en vba, j'aurais besoin d'un conseil.
Je souhaiterais combiner sheets.Add et sheets.copy.
Sur mon fichier excel, j'ai une Feuil "Fiche vierge" pour ma mise en page, et la Feuil "Sommaire" ou sont toute mes informations.
Quand je lance mon module1 qui me permet de récupérer les noms dans la colonne A de ma feuil Sommaire et de crée x Feuil selon le nombre de référence et renomme chaque feuil crée en numéro de référence.
J'aimerai copié ma fiche vierge sur les feuils crée et insérer automatiquement les informations dans Sommaire.
Par contre pour les remplir, le fait d'appeler les feuilles 1,2,3,4 XL semble confondre première feuille et feuille "1".
En les appelant F1,F2.... le problème est résolu.
Bonne après midi.
Bonjour Tof,
Plutôt que de créer des feuilles vierges puis y copier les infos de feuille_vierge, il est plus judicieux de dupliquer la feuille fiche_vierge en la renommant :
Sub Creation()
Dim J As Long
Dim Ws As Worksheet
Application.ScreenUpdating = False
Set Ws = ActiveSheet
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row '2= On commence à lire à la deuxieme ligne
If FeuilleExiste(Ws.Range("A" & J).Value) = False Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = Ws.Range("A" & J)
End If
Next J
Ws.Select
End Sub
Function FeuilleExiste(Nom As String) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
On Error GoTo 0
End Function
Je récupère bien mes informations souhaité pour crée le bon nombre de Feuil et il se renomme comme je le désire, sauf la mise en page, j'aimerai qu'elles prennent la même mise en page que la feuil vierge.
Mon module2 je l'ai crée pour comprendre justement ton code le sheet.copy
Code:
Sub ModuleCopie()
Dim Ws As Worksheet
Set Ws = ActiveSheet
Sheets("Fiche_Vierge").Copy After:=Worksheets("Sheets.Count")
ActiveSheet.Name = "Nouvelle Feuille"
Ws.Activate
End Sub
Par contre pour les remplir, le fait d'appeler les feuilles 1,2,3,4 XL semble confondre première feuille et feuille "1".
En les appelant F1,F2.... le problème est résolu.
Bonne après midi.