macro pour supprimer lignes sans valeurs mais avec formules

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
 

Orodreth

XLDnaute Impliqué
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:

VJA

XLDnaute Nouveau
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

  • testvba.xlsm
    10.5 KB · Affichages: 48
  • testvba.xlsm
    10.5 KB · Affichages: 48

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign