Effacement ligne en VBA si ... (et non supprimer)

micapilote

XLDnaute Junior
Bonjour, j'ai beau chercher un peu partout je ne trouve pas alors que cela doit être tout simple
j'ai un tableau
je voudrais que :
si A1 est vide cela efface la ligne 1 (et non la supprimer)
si A2 est vide cela efface la ligne 2 (et non la supprimer)
etc jusqu'à A18

Cordialement
Mica
 

micapilote

XLDnaute Junior
Re : Effacement ligne en VBA si ... (et non supprimer)

merci mais je débute seulement en VBA et sans VBA ça ressemblerait à ça
SI A1 = "" EFFACER ligne entière
mais en VBA retranscrit par moi meme ça donne ça
If Range("A1") = "" then
EntireRow.ClearContents et ça ne fonctionne pas.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Effacement ligne en VBA si ... (et non supprimer)

Bonjour à tous,

avec ceci:
Code:
Sub Macro1()
For i = 1 To Range("A65535").End(xlUp).Row
If Cells(i, 1).Value = "" Then
Rows(i).EntireRow.ClearContents
End If
Next i
End Sub
à+
Philippe
 

Dranreb

XLDnaute Barbatruc
Re : Effacement ligne en VBA si ... (et non supprimer)

If Range("A1") = "" then
EntireRow.ClearContents et ça ne fonctionne pas.
Vous y étiez presque.
VB:
If Range("A1").Value = "" then Range("A1").EntireRow.ClearContents
et ça fonctionne.
Mais Déclarez L As Long et préférez:
VB:
If Cells(L, 1).Value = "" Then Rows(L).ClearContents
Comme ça vous pourrez le mettre dans une boucle For L = 1 To 18 finissant par Next L
À +
 

micapilote

XLDnaute Junior
Re : Effacement ligne en VBA si ... (et non supprimer)

merci mais toujours pas, je comprend pas tout
Code:
For i = 4 To Range("B18").End(xlUp).Row '4 pour le début ligne 4, et B18 la fin
If Cells(i, 2).Value = "" Then '2 pour la colonne B
Rows(i).EntireRow.ClearContents
End If
Next i

et ça ne donne rien, je fais si mal que ça ?
 

micapilote

XLDnaute Junior
Re : Effacement ligne en VBA si ... (et non supprimer)

c'est bon, j'ai trouvé la boulette, j'étais bon depuis le début mais j'avais omis que dans mon tableau la colonne A masquée était FUSIONNEE donc empêchait l'effacement de ligne.
Code:
Dim i As Long
For i = 4 To 18
If Cells(i, 2).Value = "" Then Rows(i).ClearContents
Next i

Merci à vous
 
Dernière édition:

TempusFugit

XLDnaute Impliqué
Re : Effacement ligne en VBA si ... (et non supprimer)

Bonjour


Tu peux faire plus simple (voir la macro ci-dessous)
Code:
Sub effacer()
On Error Resume Next ' ajout pour éviter ce que vient de signaler Pierrot93
Range("B4:B18").SpecialCells(xlCellTypeBlanks).Offset(, -1).ClearContents
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 899
Membres
103 982
dernier inscrit
krakencolas