Boucle pour creer fiche client

Bonjour a tous, j'ai besoin d'aide pour creer un boucle

j'a un classeur excel avec tous mes client ligne par ligne.

Le but est de creer une fiche client pour chaque ligne. (soit environ 450 lignes)

pour ne pas le faire manuelement j'ai deja creer le SUB pour copier une ligne des mon classeur, et des les copier dans un nouveau classeur ''fiche client" et l'enregistrer automatiquement au nom d'apres une celulle.

je voudrais savoir comment faire pour faire une boucle pour chaque ligne des mon premier classeur et creeer autan de fiche client que de ligne.

Voici mon code pour copier la les celule de la ligne 2 de mon classeur '' ETS FIGUET COMPLET" dans un classeur 2 ''fiche client " puis l'enregistrer sous le nom de la celule du nom client '' B2 "

Merci d'avance.

Sub ficheclient3()

'

' ficheclient3 Macro

'

'

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("A2").Select

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B1").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("B2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B2").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("C2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B3").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("D2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B4").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("E2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B5").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("F2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B6").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("G2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B7").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

ActiveWindow.SmallScroll ToRight:=7

Range("H2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B8").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("I2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B9").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("J2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B10").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("K2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B11").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("L2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B12").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("M2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B13").Select

ActiveSheet.Paste

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

Range("N2").Select

Application.CutCopyMode = False

Selection.Copy

Windows("FICHE CLIENT.xlsm").Activate

Range("B14").Select

ActiveSheet.Paste

Dim nom As String

ChDir "C:\Users\utilisateur\Dropbox\bureau ludo\Dossiers Ludo\macro"

nom = Range("B2") & ".xlsm"

ThisWorkbook.SaveAs (nom)

End Sub

Bonsoir

Sans aucun test

Option Explicit

Sub CreationFichiers()
Dim Ws As Worksheet
Dim J As Long, NbLg As Long
Dim Chemin As String
Dim NbFeuille As Integer

  Application.ScreenUpdating = False
  'Chemin = "C:\Users\utilisateur\Dropbox\bureau ludo\Dossiers Ludo\macro\"
  Chemin = ThisWorkbook.Path & Application.PathSeparator
  NbFeuille = Application.SheetsInNewWorkbook
  Set Ws = Sheets("Feuil1")       ' Nom de la feuille contenant la liste
  NbLg = Ws.Range("B" & Rows.Count).End(xlUp).Row
  Application.SheetsInNewWorkbook = 1
  Application.DisplayAlerts = False     ' Ecrase l'éventuel ancien fichier sans demande
  For J = 2 To NbLg
    With Workbooks.Add
      .Sheets(1).Name = Ws.Range("B" & J)
      Ws.Range("A" & J & ":N" & J).Copy
      .Sheets(1).Range("B1").PasteSpecial Paste:=xlPasteAll, Transpose:=True
      .SaveAs Filename:=Chemin & Ws.Range("B" & J) & ".xlsm", FileFormat:=xlOpenXMLWorkbook
      .Close
    End With
  Next J
  Application.CutCopyMode = False
  Application.SheetsInNewWorkbook = NbFeuille
  MsgBox "Terminé"
End Sub

Il faudrait ton fichier principal et 1 fichier obtenu (avec la copie des cellules)

bonjour Banzai64, ludo1717

ludo1717, ton code je pense que tu peux le réduire comme ci dessous

Sub ficheclient3()
'
' ficheclient3 Macro
'

'
Windows("logiciel ETS FIGUET COMPLET.xlsm").Range("A2:N2").copy
Windows("FICHE CLIENT.xlsm").Range("B1:B14").Paste

Dim nom As String
ChDir "C:\Users\utilisateur\Dropbox\bureau ludo\Dossiers Ludo\macro"
nom = Range("B2") & ".xlsm"
ThisWorkbook.SaveAs (nom)

End Sub

clic sur le bouton code pour que ton code soit encadré et plus lisible

Pascal

Re bonjour a tous

j'ai modifier mon code d'apres BANZAI car c vrai qu il est vraiment pus simple.

Je modifi aussi ma demande car je prefere avoir un classeur "fiche client" et chaque feuille de ce classeur corresponde a chaque ligne de mon classeur ETS FIGUET COM¨PLET.

Voici mon code avec la boucle 'manuele que j'ai faite.

il me faudrai un boucle automatique pour mes 450 ligne de mon classeur ETS FIGUET COMPLET. merci d'avance

Sub ficheclient5()

'

' ficheclient5 Macro

'

Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate

    Range("A1:O1").Select
    Selection.Copy
    Windows("FICHE CLIENT.xlsm").Activate
    Sheets("Feuil1").Select
    Range("A1").Select
    ActiveSheet.Paste
    Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate
    ActiveWindow.SmallScroll ToRight:=-8
    Range("A2:O2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("FICHE CLIENT.xlsm").Activate
    Range("A2").Select
    ActiveSheet.Paste
    ActiveSheet.Name = Range("B2").Text

    'boucle....'

    Sheets("Feuil2").Select ' du classeur fiche client'

    Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate
    Range("A1:O1").Select
    Range("O1").Activate
    Application.CutCopyMode = False
    Selection.Copy
    Windows("FICHE CLIENT.xlsm").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate
    Range("A3:O3").Select ' ligne 3 du classeur ETS FIGUET COMPLET'

    Application.CutCopyMode = False
    Selection.Copy
    Windows("FICHE CLIENT.xlsm").Activate
    Range("A2").Select
    ActiveSheet.Paste
     ActiveSheet.Name = Range("B2").Text

     'boucle'
     Sheets("Feuil3").Select ' du classeur fiche client'

    Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate
    Range("A1:O1").Select

    Application.CutCopyMode = False
    Selection.Copy
    Windows("FICHE CLIENT.xlsm").Activate

    Range("A1").Select
    ActiveSheet.Paste
    Windows("logiciel ETS FIGUET COMPLET.xlsm").Activate
    Range("A4:O4").Select ' ligne 3 du classeur ETS FIGUET COMPLET'

    Application.CutCopyMode = False
    Selection.Copy
    Windows("FICHE CLIENT.xlsm").Activate
    Range("A2").Select
    ActiveSheet.Paste
     ActiveSheet.Name = Range("B2").Text
End Sub

Bonjour

J'ai du mal comprendre

Tu veux créer un seul fichier avec 450 feuilles ou 450 fichiers d'une seule feuille (la macro que je t'ai faite)

Si la liste des feuilles(fichiers) est en colonne B, pourquoi choisir B2 pour le nom du fichier ?

Joins le fichier principal en y indiquant exactement ce que tu veux obtenir

Un exemple de ce que veux obtenir serait un plus non négligeable

Je veux faire un seul classeur nommée fiche client . Et 450 feuille dans ce classeur. Une feuille pour chaque nom. Je refait le code cet aprem en plus simple et je l envois en fichier joint.

Re bonjour

j'ai modifier ma demande ainsi que mon code pour que ce soit plus simple pour que vous puissiez m'aider.

Donc 1 classeur ''FICHE CLIENT'' :

dans la feuille 1, ma liste de clients, avec nom prenom adresse ....

et le but est de faire pour chaque ligne de ma feuille 1, creer une feuille pour chaque lignes.

j'ai deja fait le code pour faire 3 feuille mais ca prend du temps de tous réecrir en modifiant le code, donc il me faudrait une boucle pour faire cette opération : Copier ligne 1 et 2 de feuil1, puis creer feuil2 et coller dans ligne 1 et 2 de feuil 2 --- Copier ligne 1 et 3 de feuil1, puis creer feuil3 et coller dans ligne 1 et 2 de feuil3 --- Copier ligne 1 et 4 de feuil1, puis creer feuil4 et coller dans ligne 1 et 2 de feuil 4 --- ... et ainsi de suite.

Ci joint umon fichier avec la macro que j'ai faite pour 3 nouvelle feuille, mais en recopian le code et le modifier pour chaque feuil.

il me faudrai une boucle pour faire tous ca autaumatiquement.

Pour faire l'essai faire CTRL+m

Bonjour

A tester

Laisse lui le temps

Rechercher des sujets similaires à "boucle creer fiche client"