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

Résolu
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

3 réponses

  1. 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
    1. Merci beaucoup pour votre réponse
      Voici le lien http://www.cjoint.com/c/FBqljHtgX4D
      Dans l'attente de vous lire
      Cdt
      0
    2. @VCNPouvez-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
    3. @Theo.RMerci 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
  2. 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
    1. Merci pour votre réponse mais je ne comprends absolument pas
      Pourriez vous m'indiquer comment faire tout simplement !!!
      Mille mercis par avance
      0
    2. 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
  3. Merci beaucoup je vais essayer à tête reposée demain
    Je vous tiendrais au courant bien sur merci
    Bonne fin de journée
    0
    1. 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
    2. @Theo.RBonjour
      C'est parfait merci beaucoup
      Tout fonctionne à merveille
      Excellente journée
      V
      0
    3. Pas de souci, merci de passer le sujet en Résolu si tout est bon pour vous ;)
      0