Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Supprimer cellules vides par formule

Andreo79

XLDnaute Nouveau
Chers tous.
Voici un extrait de feuille excel. Je veux tout simplement supprimer toutes les cellules vides par formule. Merci.
Cordialement !
 

Pièces jointes

  • Classeur3.xlsx
    23.2 KB · Affichages: 6

Andreo79

XLDnaute Nouveau
Bonjour Djidji59430.
Je vous avoue que je ne connais pas power query.
1. Votre solution regroupe le contenu de toutes les cellules d'une même ligne dans une seule cellule. Résultat inexploitable. Je veux une solution où les cellules vides sont supprimées. Ce qui rapproche les cellules non vides les unes des autres.
2. Le tableau 2 change le contenu des cellules initiale. Est-ce que on peut utiliser cette même technique tout en gardant le contenu des cellules intact ?
Agréable journée !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Andreo, Djidji,
Avec ce que j'ai compris, un essai en PJ.
La macro s'exécute automatiquement lorsqu'on sélectionne la Feuil2.
Pensez à valider les macros si ce n'est déjà fait.
 

Pièces jointes

  • Classeur3 (1).xlsm
    32.1 KB · Affichages: 2

piga25

XLDnaute Barbatruc
Bonjour,
Par formule,
Mettre en A1 :
VB:
=_xlfn.CONCAT(B1:DQ1;"--")
Sur une autre feuille, copier la colonne A1 puis coller les valeurs
Aller sur Données, Convertir, Délimité, Dans Autres mettre -- , En destination mettre B1
Comme cela plus de cellule vide.

Pour excel 2019 et + :
Code:
=TEXTEJOIN("--",VRAI,B1:DQ1)

Pour excel 2016 et + : =CONCATENER(B1;"--";C1;"--";D1;"--";E1;"--";F1 ....... ;DQ1)
 
Dernière édition:

piga25

XLDnaute Barbatruc
Bonjour,
Une solution pour excel 2016 avec une fonction personnalisée (cela implique d'enregistrer le fichier en Xlsm).
La fonction personnalisée à mettre dans un module:
VB:
Function MaTexteJoin(delim As String, ignore_empty As Boolean, ParamArray plages()) As String
    Dim cel As Range
    Dim resultat As String

    For Each plage In plages
        For Each cel In plage.Cells
            If Not ignore_empty Or cel.Value <> "" Then
                resultat = resultat & delim & cel.Value
            End If
        Next cel
    Next plage

    ' Supprimer le premier délimiteur
    MaTexteJoin = Mid(resultat, Len(delim) + 1)
End Function
 

Pièces jointes

  • Classeur3 (6).xlsm
    34 KB · Affichages: 2
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…