Excel: Regroupement de cellules [Résolu]

Signaler
Messages postés
4
Date d'inscription
lundi 6 avril 2020
Statut
Membre
Dernière intervention
8 avril 2020
-
Messages postés
4
Date d'inscription
lundi 6 avril 2020
Statut
Membre
Dernière intervention
8 avril 2020
-
Comment regrouper dans une seule colonne les cellules (non vides) disséminées dans un tableau excel (plusieurs colonnes et plusieurs lignes).
Merci de l'aide

5 réponses

Messages postés
23413
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
5 août 2020
6 277
Avec une macro :
Sub concatNonVide()
    Const sep As String = ", "
    Dim datas, result() As String, lig As Long, col As Long, msg As String
    If Selection.Cells.Count = 1 Then MsgBox "Sélectionner une plage svp": Exit Sub
    If Selection.Column < 2 Then MsgBox "Il faut 1 colonne libre à gauche de la sélection": Exit Sub
    msg = "Cette action va écraser " & Selection.Resize(, 1).Offset(, -1).Address
    msg = msg & vbLf & "Continuer ?"
    If MsgBox(msg, vbOKCancel, "Confirmation") = vbOK Then
        datas = Selection.Value
        ReDim result(1 To UBound(datas), 1 To 1)
        For lig = 1 To UBound(datas, 1)
            For col = 1 To UBound(datas, 2)
                If datas(lig, col) <> "" Then result(lig, 1) = result(lig, 1) & sep & datas(lig, col)
            Next col
            If result(lig, 1) <> "" Then result(lig, 1) = Mid(result(lig, 1), Len(sep))
        Next lig
        Selection.Offset(, -1).Resize(UBound(result), 1) = result
    End If
End Sub 


la constante sep est le séparateur utilisé, ici ", "
Pour un retour à la ligne remplacer par vblf

Tous tes tableaux sont dans le même classeur ?
Si tu as une multitude de classeur à traiter on peut faire en sorte que tu n'aies pas à copier la macro dans chacun.

tableaux de chacun 50 à 500 colonnes
une cellule ne peut contenir que 32000 caractères.

Regarde si ça te va
https://www.cjoint.com/c/JDhnKTVsbCV
eric
Messages postés
23413
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
5 août 2020
6 277
Bonjour,

Merci de déposer le fichier xls sur cjoint.com et coller ici le lien fourni.
Qu'on sache si les cellules supposées vides le sont réellement.
Précise aussi dessus où tu veux le résultat.
eric
Messages postés
4
Date d'inscription
lundi 6 avril 2020
Statut
Membre
Dernière intervention
8 avril 2020

Bonjour,
Voici le lien:
https://www.cjoint.com/c/JDhilkHxImH

Remarque: le document joint n'est qu'un court extrait pris au hasard dans les tableaux que j'ai à traiter (environ 25 tableaux de chacun 50 à 500 colonnes et 50 à 150 lignes).
Dans ces tableaux, j'ai constaté que les cellules apparaissant vides répondent 'non vides' à la formule 'Estvide'.
Merci de votre aide.
André
Messages postés
23413
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
5 août 2020
6 277
Tu aurais pu lire jusqu'à la 3ème ligne et y répondre...

Dans ces tableaux, j'ai constaté que les cellules apparaissant vides répondent 'non vides' à la formule 'Estvide'.
donc tu fournis un fichier non conforme contrairement à ce qui était demandé...
Messages postés
4
Date d'inscription
lundi 6 avril 2020
Statut
Membre
Dernière intervention
8 avril 2020

https://www.cjoint.com/c/JDhlSixzD0H
Désolé, je n'avait pas compris le sens de ta question.
Messages postés
4
Date d'inscription
lundi 6 avril 2020
Statut
Membre
Dernière intervention
8 avril 2020

Ce résultat me convient totalement; un grand merci.
Cordialement.
André