Sélection de lignes avec condition

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!

8classeur1.xlsm (29.39 Ko)

Bonsoir

Pourquoi ne pas effacer seulement de A à C ?

A tester

Effectivement, pour ce cas, il suffit de supprimer l'ensemble des données des colonnes concernées.

Pour un autre cas de figure j'étais obligé de passer par ligne et non par colonne. Je crois que je me suis tellement pris la tête sur le 1er cas que du coup je cherchais forcement une solution similaire et je me suis pas rendu compte que mon problème était en fait très simple

Par contre la formulation que tu as fait pourra me servir par la suite.

Merci beaucoup !

Rechercher des sujets similaires à "selection lignes condition"