Création de classeurs

biba78

XLDnaute Junior
Bonjour à tous :D,
besoin de votre aide

je voulais savoir comment faire des liaisons entre deux classeurs excel qui permet de créer à partir d’un fichier Source et Destination autant de classeurs Destination qu’il y a de lignes Nom ?

en vous remerciant par avance
 

Pièces jointes

  • Destination.xls
    13.5 KB · Affichages: 41
  • Source.xls
    13.5 KB · Affichages: 38
  • Destination.xls
    13.5 KB · Affichages: 48
  • Source.xls
    13.5 KB · Affichages: 41
  • Destination.xls
    13.5 KB · Affichages: 52
  • Source.xls
    13.5 KB · Affichages: 42

Robert

XLDnaute Barbatruc
Repose en paix
Re : Création de classeurs

Bonjour Biba, bonjour le forum,

C'est bien des classeurs que tu veux, pas des onglets dans le classeur destination ?
Et ensuite, comment nommer les classeurs (ou onglets) ?
Si c'est par le matricule, que faire quand une ligne n'a pas de matricule (comme dans ton exemple) ?
Tu vois c'est pas assez précis pour qu'on puisse t'aider correctement.
En attendant tes réponses...
 

biba78

XLDnaute Junior
Re : Création de classeurs

Bonjour Robert, bonjour le forum
oui il s'agit bien des classeurs , les classeurs on peut les nommer comme on veut nom ou matricule, c'est vrai dans mon exemple j'ai pas de marticule pour l'enregistrement 3 par contre dans mon fichier d'origine ya toujours des données matricule et nom
en vous remerciant
biba
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Création de classeurs

Bonsoir Biba, bonsoir le forum,

Je te propose le code ci-dessous :
Code:
Sub Macro1()
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim cd As Workbook 'déclare la variable cd (Classeur Destination)
Dim ch As String 'déclare la variable chs (CHemin d'accès)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

Set cs = ThisWorkbook 'définit le classeur source cs
ch = ThisWorkbook.Path & "\" 'définit le chemin d'accès ch
With cs.Sheets("Feuil1") 'prend en compte l'onglet "Feui1") du classeur source
    Set pl = .Range("A2:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1" du classeur source
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    Set cd = Workbooks("Destination.xls") 'définit le classeur destination
    With cd.Sheets("Feuil1") 'prend en compte l'onglet "Feuil1" du classeur destination
        .Range("B3") = cel.Value 'récupère le matricule
        .Range("B1") = cel.Offset(0, 1).Value 'récupère le nom
        .Range("B2").Value = cel.Offset(0, 2).Value 'récupère le préneom
        .Range("B6").Value = cel.Offset(0, 3).Value 'récupère le montant
    End With 'fin de la prise en comte de l'onglet 'Feuil1" du classeur destination
    cd.SaveAs (ch & cd.Sheets("Feuil1").Range("B3").Value & ".xls") 'enregistre le classeur sous (utlise le matricule qui normalement est unique)
    Workbooks(cd.Sheets("Feuil1").Range("B3").Value & ".xls").Close 'ferme le classeur
    Workbooks.Open (ch & "Destination.xls") 'ouvre le classeur destination
Next cel 'prochaine cellule de la boucle
End Sub
Les fichiers sont créés et portent le nom du matricule (pour éviter les doublons), dans le même dossier que celui où se trouve le fichier Source.xls. Pour que la macro fonctionne il faut au départ que les deux fichiers, Source.xls et Destination.xls soient ouverts.
Le fichier avec la macro :
 

Pièces jointes

  • Source.xls
    29 KB · Affichages: 39
  • Source.xls
    29 KB · Affichages: 42
  • Source.xls
    29 KB · Affichages: 40

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 871
dernier inscrit
Maïmanko