Bonjour,
Je débute avec VBA et ça fait un bon bout de temps que je cherche une réponse à ma question, sans succès donc je me tourne vers vous pour une question de sélection.
J'ai mis un fichier en pièce jointe (beaucoup plus simple que celui que j'utilise réellement mais le fonctionnement reste le même) pour que mon explication soit plus claire.
Je voudrais pouvoir supprimer toutes les données saisies manuellement sans affecter les formules. Pour cela j'ai fait la macro suivante :
Sub Effacer_données_toutes()
Application.ScreenUpdating = False
Dim c As Range
Range("A2:D2").Select
Range(Selection, Selection.End(xlDown)).Select
For Each c In Selection
If c.HasFormula = False Then
c.ClearContents
End If
Next c
End Sub
Si le fichier est rempli correctement ça fonctionne. Le problème vient du fait que le fichier original est beaucoup plus complexe et que ce n'est pas moi qui le remplit. Ainsi, il manque souvent des données et ma macro va souvent analyser toutes les lignes du tableau pour chercher s'il y a des formules dans les cellules et cela prend beaucoup trop longtemps.
Ce que je voudrais c'est que la sélection sur laquelle se fait l'analyse des cellules et suppression des données aille de la ligne 2 jusqu'à la dernière ligne contenant au moins une cellule non vide qui n'est pas une formule.
J'espère avoir été clair.
Merci d'avance!