Microsoft 365 Fichier Excel extrait avec cellules "vides' contenant un espace

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mapapiotmi

XLDnaute Nouveau
Bonjour,

Je dois travailler sur un fichier Excel extrait qui contient des cellules sensées vides mais contenant un espace ou autres caractères. Cela fausse les calculs.

Comment sélectionner ces cellules et effacer le contenu dans avoir à le faire colonne par colonne

Je vous joint un exemple avec quelques lignes

Merci à vous

Martine
 

Pièces jointes

Bonsoir Mapapiotmi,
La macro ci dessous nettoie les cellules des espaces avant et après.
Dans la PJ il en a trouvé 12308.
A tester.
VB:
Sub Nettoie()
N = 0
For L = 1 To 360
    For C = 1 To 78
        Chaine = Trim(Cells(L, C))
        If Chaine <> Cells(L, C) Then
             Cells(L, C) = Chaine
             N = N + 1
        End If
    Next C
Next L
End Sub
NB : La PJ est déjà néttoyée.
 

Pièces jointes

Bonsoir Mapapiotmi,

On a affaire au fameux caractère "chaine vide".
Pour les supprimer, on peut utiliser la macro ci-dessous. Le code est dans module1.

Pour vérifier (étape 1) :
  • sélectionner les colonnes W à Z
  • tapez F5
  • cliquer sur le bouton Cellules...
  • double-cliquer sur Cellules vides
  • les cellules vraiment vides sont sélectionnées. On peut constater que les cellules W2 à Z3 ne sont pas sélectionnées. Elles contiennent cette fameuse chaine "vide".

Exécuter la macro EffacerPseudoVide (étape 2) :

Pour vérifier (étape 3) :
  • sélectionner à nouveau les colonnes W à Z
  • tapez F5
  • cliquer sur le bouton Cellules...
  • double-cliquer sur Cellules vides
  • les cellules vraiment vides sont sélectionnées. On peut constater que les cellules W2 à Z3 sont maintenant sélectionnées. Elles ne contiennent plus cette fameuse chaine "vide".
edit : version simplifiée v1a
VB:
Sub EffacerPseudoVide()
Dim i&, j&, n&, t, v

   With Sheets("EDEC_XLSL_PREC")
      Application.ScreenUpdating = False
      If .FilterMode Then .ShowAllData
      t = .Range("a1").CurrentRegion.Formula
      For i = 1 To UBound(t)
         For j = 1 To UBound(t, 2)
            If Len(t(i, j)) = 0 Then t(i, j) = Empty: n = n + 1
         Next j
      Next i
      .Range("a1").Resize(UBound(t), UBound(t, 2)) = t
      MsgBox n & " cellules vides ou pseudo-vides effacées"
   End With
End Sub
 

Pièces jointes

Dernière édition:
Bonsoir Mapapiotmi, , sylvanu, mapomme,

Oui il faut supprimer aussi les textes vides "" donc utiliser :
VB:
Sub Vider()
Dim tablo, ncol%, i&, j%
With ActiveSheet.UsedRange
    ncol = .Columns.Count
    tablo = .Resize(, IIf(ncol = 1, 2, ncol)).Formula 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        For j = 1 To ncol
            If Trim(tablo(i, j)) = "" Then tablo(i, j) = Empty
    Next j, i
    .Value = tablo
End With
End Sub
Bah c'est très semblable à la macro de mapomme...

Bonne nuit.
 
Bon il y a plus simple :
VB:
Sub Vider()
Dim tablo, ncol%, i&, j%
With ActiveSheet.UsedRange
    ncol = .Columns.Count
    tablo = .Resize(, IIf(ncol = 1, 2, ncol)).Formula 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        For j = 1 To ncol
            tablo(i, j) = Trim(tablo(i, j))
    Next j, i
    .Value = tablo
End With
End Sub
Et en prime on supprime les espaces superflus en début et fin de chaîne.
 
Re,
Tu as tort car Martine a écrit au post #1 :

Je dois travailler sur un fichier Excel extrait qui contient des cellules sensées vides mais contenant un espace ou autres caractères

Certes. J'ai interprété - sans doute à tort - que Martine parlait de cellules qui semblaient vides mais qui ne l'étaient pas (et que Martine ne savait pas ce que contenaient ces cellules pseudo-vides). C'est pour cette raison que je n'ai pas traité les cellules ne contenant que des espaces (cellules qui pour moi ne sont pas vides).
Pour une fois que j'ai lu avec attention une question, je me suis planté 🙁.

Allez, je me couche pour de bon.

Bonnet de nuit pour tous 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
85
Réponses
30
Affichages
449
Retour