Joindre Colonnes

Résolu/Fermé
mic6259 Messages postés 342 Date d'inscription mercredi 4 mars 2015 Statut Membre Dernière intervention 11 décembre 2023 - 22 sept. 2018 à 07:18
mic6259 Messages postés 342 Date d'inscription mercredi 4 mars 2015 Statut Membre Dernière intervention 11 décembre 2023 - 23 sept. 2018 à 07:53
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

titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
22 sept. 2018 à 09:37
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
mic6259 Messages postés 342 Date d'inscription mercredi 4 mars 2015 Statut Membre Dernière intervention 11 décembre 2023 1
22 sept. 2018 à 10:08
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
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
Modifié le 22 sept. 2018 à 14:23
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
mic6259 Messages postés 342 Date d'inscription mercredi 4 mars 2015 Statut Membre Dernière intervention 11 décembre 2023 1
23 sept. 2018 à 07:53
Super c'est exactement ce que je cherchais
Merci beaucoup
Cordialement
0