macro pour supprimer lignes sans valeurs mais avec formules

  • Initiateur de la discussion Initiateur de la discussion VJA
  • Date de début Date de début

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 !

VJA

XLDnaute Nouveau
bonjour
voici 2 macros que j'ai testé mais qui ne fonctionnent pas
je veux juste supprimer les lignes qui n'ont pas de valeur mais "" à la place
cf par exemple formule suivante :
=SI(GAUCHE(tcd!A4;1)="6";tcd!A4;"")
si pour cette ligne pas de valeur alors la supprimer de manière à ne garder que les lignes renseignées

j'utiliserais cette macro dans mon fichier macro personnelle car elle devra être utilisée sur divers classeurs excel

je ne vois pas ce qui cloche mais c'est peut être évident pour quelqu'un d'autre car j'ai le nez dessus depuis ce matin

Sub EffaceLignesVides()
With ActivSheet
For i = 4 To .Range("A65536").End(xlUp).Row
If Cells(i, 1) = "" Then .Cells(i, 1).EntireRow.ClearContents
Next
End With
End Sub

Sub supprimelignesvides()
Dim i As Long

For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Application.CountA(Rows(i)) = 0 Then Rows(i).Delete
Next i

End Sub

merci à tous ceux qui pourront m'aider
 
Re : macro pour supprimer lignes sans valeurs mais avec formules

Bonjour,

Je me mélange un peu les pinceaux entre ton titre et ta description.
Tu parles de formules, mais ton code ne les gère pas.

Donc reprenons. Pour savoir si une cellule contient une formule mais n'a pas de valeur:
Code:
    If (maCell.HasFormula) And (maCell.value = vbnullstring) Then

Il y a également une petite erreur de frappe dans une partie de ton code:
Code:
    Sub EffaceLignesVides()
        With ActivSheet
            For i = 4 To .Range("A65536").End(xlUp).Row
                If Cells(i, 1) = "" Then .Cells(i, 1).EntireRow.ClearContents
            Next
        End With
    End Sub
Sur la ligne With ActivSheet, tu as oublié le "e" d'ActiveSheet.

Dernier point: de mémoire, clearcontents efface à la fois les valeurs, les formules, les commentaires, et les formats.
Si tu veux juste vider la valeur, choisis plutôt la syntaxe suivante:
Code:
    If Cells(i, 1).value = vbnullstring Then .Cells(i, 1).EntireRow.value = vbnullstring


EDIT: bonjour John

Cordialement,
 
Dernière édition:
Re : macro pour supprimer lignes sans valeurs mais avec formules

bonjour
merci
je rectifie avec activesheet et j'essaie mais cela ne fonctionne pas non plus
je veux supprimer complètement les lignes qui ne contiennent pas de valeur mais des ""
je t'ai mis un fichier tout petit en exemple qui correspond à ce que je voudrais faire
merci encore pour ton aide
 

Pièces jointes

- 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
8
Affichages
471
Réponses
10
Affichages
282
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
483
Retour