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

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

  • Initiateur de la discussion Initiateur de la discussion micapilote
  • 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 !

M

micapilote

Guest
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
 
Re : Effacement ligne en VBA si ... (et non supprimer)

Bonsoir.
C'est EntireRow pour définir la ligne entière contenant une plage.
C'est ClearContents pour en effacer le contenu.
Ça vous suffit ?
Cordialement.
 
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.
 
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
 
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
À +
 
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 ?
 
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 modification par un modérateur:
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:
Re : Effacement ligne en VBA si ... (et non supprimer)

Bonjour à tous,

attention avec "SpecialCells(xlCellTypeBlanks)", renverra une erreur si aucune cellule ne correspond à ce critère...

bonne journée
@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…