Bonjour à tous
Voilà, je suis extrêmement novice en VBA et suis en train de me perdre avec une macro que j'essaie d'utiliser/ créer afin de créer de nouveaux onglets en suivant un onglet modèle.
En gros, j'ai trouvé ce code mis à disposition par Mr Jacques Bois Gontier (http://boisgontierjacques.free.fr/pages_site/cellules.htm)
Ce code crée une nouvelle feuille (suivant un modèle) avec les informations rentrées dans une base de données. (c'est ce que je recherche)
Dans cette configuration là, la base de données est construite ligne par ligne (le code va chercher une nouvelle entrée la ligne suivante jusqu'à ce qu'il tombe sur une ligne vide).
Dans mon cas, il faudrait que le code ailler chercher une nouvelle colonne jusqu'à ce que la suivante soit vide.
Est-ce que vous pouvez m'aider à modifier ce code dans ce sens ?
Je vous remercie de votre aide
Bonne journée
Anthony
Voilà, je suis extrêmement novice en VBA et suis en train de me perdre avec une macro que j'essaie d'utiliser/ créer afin de créer de nouveaux onglets en suivant un onglet modèle.
En gros, j'ai trouvé ce code mis à disposition par Mr Jacques Bois Gontier (http://boisgontierjacques.free.fr/pages_site/cellules.htm)
VB:
Sub CreeOnglets()
Application.ScreenUpdating = False
supOnglets
Set bd = Sheets("bd")
bd.[A1].CurrentRegion.Sort Key1:=bd.Range("A2"), Order1:=xlAscending, Header:=xlGuess
ligBD = 2
Do While ligBD <= bd.[A65000].End(xlUp).Row
nom = bd.Cells(ligBD, 1) ' Premier nom
Sheets("modèle").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "F_" & nom
Set fiche = Sheets("F_" & nom)
fiche.Range("B3").Value = nom
fiche.Range("b4").Value = bd.Cells(ligBD, "B")
ligBD = ligBD + 1
Loop
End Sub
Sub supOnglets()
Application.DisplayAlerts = False
For s = Sheets.Count To 1 Step -1
If Left(Sheets(s).Name, 2) = "F_" Then Sheets(s).Delete
Next s
End Sub
Sub exportOnglets()
CheminAppli = ThisWorkbook.Path
Application.DisplayAlerts = False
For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 2) = "F_" Then
Sheets(i).Select
nonglet = ActiveSheet.Name
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=CheminAppli & "\" & nonglet
ActiveWindow.Close
End If
Next i
End Sub
Sub consolideOngletsBD()
ligBD = 2
Set bd = Sheets("bd")
For f = 1 To Sheets.Count
If Left(Sheets(f).Name, 2) = "F_" Then
bd.Cells(ligBD, "A") = Sheets(f).[B3]
ligBD = ligBD + 1
End If
Next f
End Sub
Ce code crée une nouvelle feuille (suivant un modèle) avec les informations rentrées dans une base de données. (c'est ce que je recherche)
Dans cette configuration là, la base de données est construite ligne par ligne (le code va chercher une nouvelle entrée la ligne suivante jusqu'à ce qu'il tombe sur une ligne vide).
Dans mon cas, il faudrait que le code ailler chercher une nouvelle colonne jusqu'à ce que la suivante soit vide.
Est-ce que vous pouvez m'aider à modifier ce code dans ce sens ?
Je vous remercie de votre aide
Bonne journée
Anthony
Pièces jointes
Dernière édition: