Copier des cellules dans une autre feuille d'un même client
Résolu
VCN
-
Theo.R Messages postés 585 Statut Membre -
Theo.R Messages postés 585 Statut Membre -
Bonjour,
J'ai une feuille global avec tous les numéros de clients, noms, actes etc... je souhaite pour chaque client créer une nouvelle feuille avec toutes les données relatifs à ce client et qu'elle puisse se mettre à jour à chaque fois que j'ajoute des éléments dans la première feuille.
ex:
N° CLIENT NOM CLIENT N° AFFAIRE NON AFFAIRE N° ACTE ACTE JOUR
1512091 LAZAROV 15001 SCI LOUIS BERTH / TENNIS CHEM (incident)
Je vous en remercie par avance
Bonne journée
J'ai une feuille global avec tous les numéros de clients, noms, actes etc... je souhaite pour chaque client créer une nouvelle feuille avec toutes les données relatifs à ce client et qu'elle puisse se mettre à jour à chaque fois que j'ajoute des éléments dans la première feuille.
ex:
N° CLIENT NOM CLIENT N° AFFAIRE NON AFFAIRE N° ACTE ACTE JOUR
1512091 LAZAROV 15001 SCI LOUIS BERTH / TENNIS CHEM (incident)
Je vous en remercie par avance
Bonne journée
A voir également:
- Copier des cellules dans une autre feuille d'un même client
- Comment copier une vidéo youtube - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Excel protéger des cellules dans une feuille - Guide
- Filezilla client - Télécharger - Téléchargement & Transfert
- Copier un disque dur sur un autre - Guide
3 réponses
Bonjour,
Cela se fait assez facilement par macro, il faut néanmoins avoir un document précis de départ. Pouvez-vous en joindre un via www.cjoint.com ?
Cdt,
Cela se fait assez facilement par macro, il faut néanmoins avoir un document précis de départ. Pouvez-vous en joindre un via www.cjoint.com ?
Cdt,
Bon, ci-dessous une prmeière solution.
Elle s'active avant l'enregistrement, n'hésitez pas à demander si vous préférez un autre déclencheur.
Elle s'active avant l'enregistrement, n'hésitez pas à demander si vous préférez un autre déclencheur.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
m = 2
Do Until Sheets("Clients à extraire").Cells(m, 1).Value = ""
Sheets("Modèle").Copy After:=Sheets(Worksheets.Count)
On Error Resume Next
Sheets(Worksheets.Count).Name = Sheets("Clients à extraire").Cells(m, 1).Value
On Error Resume Next
Sheets("Modèle (2)").Delete
Dim Numcl As String
Numcl = Sheets("Clients à extraire").Cells(m, 1).Value
Dim DernLigne As Long
DernLigne = Sheets("Global").Range("A" & Rows.Count).End(xlUp).Row
k = 2
For i = 1 To DernLigne
If Sheets("Global").Cells(i, 1).Value = Numcl Then
Sheets(Numcl).Range("A" & k & ":K" & k).Value = Sheets("Global").Range("A" & i & ":K" & i).Value
k = k + 1
End If
Next i
Dim DernLigneCl As Long
DernLigneCl = Sheets(Numcl).Range("A" & Rows.Count).End(xlUp).Row
Sheets(Numcl).Rows("2:2").Copy
Sheets(Numcl).Rows("3:" & DernLigneCl).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Sheets(Numcl).Cells.EntireColumn.AutoFit
m = m + 1
Loop
Application.DisplayAlerts = True
Sheets("Modèle").Select
Application.ScreenUpdating = True
End Sub
Oups j'ai oublié de joindre le document que j'ai fait :
https://www.cjoint.com/c/FBqoyCzljPL
Pour ma solution, c'est du code VBA à utiliser. Plusieurs étapes si vous n'avez jamais fait :
1) Vous devez activer les macro -> https://support.microsoft.com/en-us/office/enable-or-disable-macros-in-office-files-12b036fd-d140-4e74-b45e-16fed1a7e5c6?redirectsourcepath=%252ffr-fr%252farticle%252factiver-ou-d%2525c3%2525a9sactiver-les-macros-dans-les-documents-office-7b4fdd2e-174f-47e2-9611-9efe4f860b12&ui=en-us&rs=en-us&ad=us
2) Accédez à l'interface VBA : Alt + F11
3) En haut à gauche, dans la mini-fenêtre "Projet - VBAProject", vous avez les feuilles pour chaque document excel ouvert, choisissez dans le dossier de votre document "ThisWorkbook" -> Double-clic
4) Collez le code que je vous ai transmis tel quel dans la fenêtre ouverte
5) Alt + Q pour fermer le mode VBA
Voilà :)
https://www.cjoint.com/c/FBqoyCzljPL
Pour ma solution, c'est du code VBA à utiliser. Plusieurs étapes si vous n'avez jamais fait :
1) Vous devez activer les macro -> https://support.microsoft.com/en-us/office/enable-or-disable-macros-in-office-files-12b036fd-d140-4e74-b45e-16fed1a7e5c6?redirectsourcepath=%252ffr-fr%252farticle%252factiver-ou-d%2525c3%2525a9sactiver-les-macros-dans-les-documents-office-7b4fdd2e-174f-47e2-9611-9efe4f860b12&ui=en-us&rs=en-us&ad=us
2) Accédez à l'interface VBA : Alt + F11
3) En haut à gauche, dans la mini-fenêtre "Projet - VBAProject", vous avez les feuilles pour chaque document excel ouvert, choisissez dans le dossier de votre document "ThisWorkbook" -> Double-clic
4) Collez le code que je vous ai transmis tel quel dans la fenêtre ouverte
5) Alt + Q pour fermer le mode VBA
Voilà :)
Merci beaucoup je vais essayer à tête reposée demain
Je vous tiendrais au courant bien sur merci
Bonne fin de journée
Je vous tiendrais au courant bien sur merci
Bonne fin de journée
Pas de souci, si jamais vous voulez utiliser ma macro dans un autre document, veillez bien à garder les mêmes dispositions :
1) enregistrez le document .xlsm et non juste .xls
2) veillez à avoir un onglet nommé exactement "Global" avec votre BDD ; un autre onglet nommé exactement "Modèle" qui en reprend le template ; et enfin un dernier onglet qui se nomme exactement "Clients à extraire" avec en colonne A les matricules des clients à extraire.
Les noms des onglets exacts sont importants car sinon le code ne marche plus !
Bien à vous,
1) enregistrez le document .xlsm et non juste .xls
2) veillez à avoir un onglet nommé exactement "Global" avec votre BDD ; un autre onglet nommé exactement "Modèle" qui en reprend le template ; et enfin un dernier onglet qui se nomme exactement "Clients à extraire" avec en colonne A les matricules des clients à extraire.
Les noms des onglets exacts sont importants car sinon le code ne marche plus !
Bien à vous,
Voici le lien http://www.cjoint.com/c/FBqljHtgX4D
Dans l'attente de vous lire
Cdt
Car si on crée une feuille par client, cela vous fera plus de 285 feuilles.. difficile à tenir dans un seul document excel !
La feuille créée doit avoir exactement la même organisation que la feuille source mais avec seulement la ligne d'1 client, c'est ça ?
Le plus simple serait de nous en dire plus sur le but de cette manipulation, il y a peut être plus efficace..
Il y a date que 20 clients si vous regardez dans la feuille clients.
Le but est de créer une feuille par client avec toutes leurs informations
Par avance merci
Cdt