Copier des cellules dans une autre feuille d'un même client

Résolu/Fermé
VCN - 16 févr. 2016 à 11:32
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 17 févr. 2016 à 14:03
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


A voir également:

3 réponses

Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
16 févr. 2016 à 12:06
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,
0
Merci beaucoup pour votre réponse
Voici le lien http://www.cjoint.com/c/FBqljHtgX4D
Dans l'attente de vous lire
Cdt
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31 > VCN
16 févr. 2016 à 12:22
Pouvez-vous préciser ce que vous attendez exactement svp ?

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..
0
VCN > Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016
16 févr. 2016 à 12:46
Merci pour votre réponse
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
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
16 févr. 2016 à 15:13
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.

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
0
Merci pour votre réponse mais je ne comprends absolument pas
Pourriez vous m'indiquer comment faire tout simplement !!!
Mille mercis par avance
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
16 févr. 2016 à 15:26
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à :)
0
Merci beaucoup je vais essayer à tête reposée demain
Je vous tiendrais au courant bien sur merci
Bonne fin de journée
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
16 févr. 2016 à 15:34
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,
0
VCN > Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016
17 févr. 2016 à 13:57
Bonjour
C'est parfait merci beaucoup
Tout fonctionne à merveille
Excellente journée
V
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
17 févr. 2016 à 14:03
Pas de souci, merci de passer le sujet en Résolu si tout est bon pour vous ;)
0