Joindre Colonnes

Résolu
mic6259 Messages postés 371 Statut Membre -  
mic6259 Messages postés 371 Statut Membre -
Bonjour,
J'ai trouvé ce petit code qui m’intéresse beaucoup.
Serrait-il possible d'avoir une seule macro au lieu des 2?
Pourriez-vous ajouter de façon a ce que je puisse choisir les colonnes(par exemple dans A je choisi les colonnes B-C et E aussi dans G les colonnes I-J et L)?
Par la suite je modifierez selon mes besoins,les codes que vous aurez changer.
Merci beaucoup pour votre aide
Cordialement
https://cjoint.com/c/HIwfp7XqGV8

1 réponse

  1. titeufdu89 Messages postés 387 Statut Membre 38
     
    Bonjour Mic,

    Voici un code qui reprend sur une même macro l'analyse des colonnes souhaité.

    Sub Regroupe()
    Dim i%, j%, dl%
    dl = 2
    Range("A1:A" & Range("A65536").End(xlUp).Row).ClearContents
    For i = 2 To 5 'de la colonne B à E
    If i <> 4 Then 'ignorer la colonne D
      For j = 1 To Cells(65536, i).End(xlUp).Row 'analyse la colonne jusqu'à la dernière cellule non vide
        If Cells(j, i).Value <> "" Then 'si cellule non vide
          Cells(dl, 1).Value = Cells(j, i).Value 'renvoi la valeur en colonne A à partir de la ligne 2
          dl = dl + 1
        End If
      Next j
    End If
    Next i
    
    Range("G1:G" & Range("G65536").End(xlUp).Row).ClearContents
    dl = 2
    For i = 9 To 12 'de la colonne I à L
    If i <> 11 Then 'ignorer la colonne K
      For j = 1 To Cells(65536, i).End(xlUp).Row 'analyse la colonne jusqu'à la dernière cellule non vide
        If Cells(j, i).Value <> "" Then 'si cellule non vide
          Cells(dl, 7).Value = Cells(j, i).Value 'renvoi la valeur en colonne G à partir de la ligne 2
          dl = dl + 1
        End If
      Next j
    End If
    Next i
    
    End Sub


    A tester, bonne journée

    jc
    0
    1. mic6259 Messages postés 371 Statut Membre 1
       
      bonjour titeufdu
      Merci de ta réponse c'est parfait.
      Peut tu me faire la même chose avec 1 ou 2 voir 3 colonnes choisies?
      Merci beaucoup
      0
    2. titeufdu89 Messages postés 387 Statut Membre 38
       
      Dans le code ci-contre, dans les parties " array(1,2,...)" remplace les chiffres existants par les indexes des colonnes que tu souhaites analyser

      Option Explicit
      Sub Regroupe()
      Dim i%, j%, dl%, col As Variant
      
      Range("A1:A" & Range("A65536").End(xlUp).Row).ClearContents
      dl = 2
      For Each col In Array(2, 3, 5) 'lister les numeros des colonnes à analyser
        For j = 1 To Cells(65536, col).End(xlUp).Row
          If Cells(j, col).Value <> "" Then
            Cells(dl, 1).Value = Cells(j, col).Value 'remplacer le "1" par le numero de colonne où afficher les resultats
            dl = dl + 1
          End If
        Next j
      Next col
      
      Range("G1:G" & Range("G65536").End(xlUp).Row).ClearContents
      dl = 2
      For Each col In Array(9, 10, 12) 'lister les numeros des colonnes à analyser
        For j = 1 To Cells(65536, col).End(xlUp).Row
          If Cells(j, col).Value <> "" Then
            Cells(dl, 7).Value = Cells(j, col).Value 'remplacer le "7" par le numero de colonne où afficher les resultats
            dl = dl + 1
          End If
        Next j
      Next col
      
      End Sub


      Bonne journée

      Jc
      0
    3. mic6259 Messages postés 371 Statut Membre 1
       
      Super c'est exactement ce que je cherchais
      Merci beaucoup
      Cordialement
      0