Bonjour,
je viens a vous pour question classique mais j'arrive pas a trouver la solution dans le brouhaha du forum :-)

je voudrais effacer le contenu de ma feuille a partir de A6 afin de l'initialiser pour un filtre avance
Pour cela j' utilise le code suivant


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
'II) clear sheet before
 
If Range("a6:A6") <> " " Then
 
Range("a6:f" & dernligne).ClearContents
Else: Exit Sub
End If

Cela fonctionne bien quand effectivement, ma feuille contient des donnees, mais si la cellule est vide, la macro me supprime les titres et donc cela bloque a la ligne du filtre.


Quelle function de VBA que je ne connais pas encore?




Edit pour les courageux de passage,

La solution (donnee par Rdurupt) est la suivante




Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
If Range("A6").CurrentRegion.Rows.Count > 6 Then
Range("a6:f" & dernligne).ClearContents
End If
Si vous avez des donnees dans d'autres cellules adjacentes, adaptez le chiffre (ligne 1 du code) avec cette methode
Fais cette manip dans vb ouvre la fenêtre d'exécution raccourci clavier [Ctrl] + [G] exécutes cette commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
?range("A6").currentregion.rows.count
et appuis sur la touche [enter] tu pourras lire la valeur du count!

La solution (donnee par Phillipe) est la suivante, tenant compte des entetes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Sub t()
 Dim Rng As Range
 Set Rng = Range("A5").CurrentRegion
 With Rng
 .Offset(1).Resize(.Rows.Count - 1).ClearContents
 End With
 Set Rng = Nothing
End Sub