Macro pour repeter une phrase

Drimo_8885 Messages postés 20 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour la team, 

J'ai un fichier excel et un autre word pour faire du publipostage. 

Sauf qu'il me faut une macro, j'ai pas reussi avec les formules excels.

J'aimerais lorsque un siren se repète cela ne crée pas un nouveau word mais que la phrase présente colonne G se répète à la suite.

Par exemple j'ai le même SIREN ligne 2 et 3, je veux que dans mon word pour ce siren il y' ait 2 phrases (pour les 2 comptes).

Désolé j'ai pas pu telecharger le fichier.

Merci !
 

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    si j'étais toi, je ferais une macro qui adapte le fichier Excel avant de faire appel à Word.

    0
  2. Drimo_8885
     

    Bonjour yg_be,

    justement mais mon niveau est pas top top pour faire la macro raison pour laquelle je viens demander l’aide des experts 

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Pour partager ton fichier:

      1. tu le mets à disposition sur Internet (cjoint.com, google drive, ...)
      2. tu partages ici un lien vers le fichier
      0
  3. Drimo_8885 Messages postés 20 Statut Membre 1
     

    Bonsoir yg_be, 

    Ci-joint le lien de l'excel : https://www.cjoint.com/c/NDqsYi3MQ7w

    Et le word : https://www.cjoint.com/c/NDqsZQKLS5w

    Merci beaucoup

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Le code ci-dessous va mettre les valeurs souhaitées dans une autre feuille du même classeur.

      Option Explicit
      Const c_siren As String = "a"
      Const c_phrase As Integer = 10 'numéro de la colonne phrase, partant de la colonne siren
      Const c_src As String = "Feuil1"
      Const c_dest As String = "pub"
      Sub cat_siren()
      Dim clsrc As Range, fsrc As Worksheet, fdest As Worksheet, psiren As String, cldest As Range
      Set fsrc = ThisWorkbook.Sheets(c_src)
      Set fdest = ThisWorkbook.Sheets(c_dest)
      Set clsrc = fsrc.Cells(2, c_siren)
      Set cldest = fdest.Cells(2, 1)
      psiren = ""
      Do While clsrc <> ""
          If clsrc = psiren Then
              cldest.Offset(-1, 1) = cldest.Offset(-1, 1) & vbCrLf & clsrc.Offset(, c_phrase)
          Else
              psiren = clsrc
              cldest = clsrc
              cldest.Offset(, 1) = clsrc.Offset(, c_phrase)
              Set cldest = cldest.Offset(1)
          End If
          Set clsrc = clsrc.Offset(1)
      Loop
      End Sub
      

      Tu peux ajuster les valeurs des lignes 2 à 5 pour spécifier les noms de feuilles et les colonnes à traiter.

      0
      1. Drimo_8885 Messages postés 20 Statut Membre 1 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Bonjour yg_be, 

        Merci beaucoup !

        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Drimo_8885 Messages postés 20 Statut Membre
         

        Le cas échéant, tu marques la discussion comme résolue?

        0