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

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

3 réponses

  1. Theo.R Messages postés 585 Statut Membre 31
     
    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. VCN
       
      Merci beaucoup pour votre réponse
      Voici le lien http://www.cjoint.com/c/FBqljHtgX4D
      Dans l'attente de vous lire
      Cdt
      0
      1. Theo.R Messages postés 585 Statut Membre 31 > VCN
         
        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
      2. VCN > Theo.R Messages postés 585 Statut Membre
         
        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
  2. Theo.R Messages postés 585 Statut Membre 31
     
    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. VCN
       
      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. Theo.R Messages postés 585 Statut Membre 31
       
      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. VCN
     
    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. Theo.R Messages postés 585 Statut Membre 31
       
      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
      1. VCN > Theo.R Messages postés 585 Statut Membre
         
        Bonjour
        C'est parfait merci beaucoup
        Tout fonctionne à merveille
        Excellente journée
        V
        0
    2. Theo.R Messages postés 585 Statut Membre 31
       
      Pas de souci, merci de passer le sujet en Résolu si tout est bon pour vous ;)
      0