VBA supprimer lignes pour un mot en colonne A

Bonjour à tous

J'ai un tableau excel avec 77823 lignes. Le nb de lignes de mon tableau augmente au fil des mois car il contient des montants de dépenses réalisées et des prévisions de dépenses pour le reste de l'année. Je dois donc actualiser les données tous les mois.

Avant d'actualiser, il faut que je supprime les données du mois précédent. Pour cela, je cherche un code qui me permette de supprimer toutes lignes à partir de la ligne où le mot "REALISE", qui est en colonne A est trouvé et même s'il y a d'autres mots dans la même colonne sur des lignes inférieures, ces autres mots étant PREVISIONS_CDE et PREVISIONS_DA.

Pouvez-vous m'aider ? J'ai fait plusieurs essais mais pas concluants. Le tableau étant énorme il faut que les lignes soient supprimées d'un bloc dès que le mot REALISE est trouvé.

En vous remerciant.

bien cordialement

Bonjour,

ai-je bien compris qu'il faut supprimer toutes les lignes à partir de celle qui contient le mot REALISE jusqu'à la dernière ligne ?

si c'est bien le cas, voici une proposition de macro

Sub supprimerealise()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    Set re = Range("A1:A" & dl).Find("REALISE", lookat:=xlPart)
    Rows(re.Row & ":" & dl).Delete
End Sub

Merci beaucoup pour votre réponse rapide.

Il faut en effet bien supprimer toutes les lignes à partir de celle qui contient le mot REALISE jusqu'à la dernière ligne même s'il y a d'autres mots dans la colonne A.

J'ai utilisé le code ci-dessous et j'ai un msg :

--> Errreur d'exécution 91 Variable objet ou variable de bloc With non définie.

Sauriez-vous me dire comment l'enlever ?

En vous remerciant infiniment

re-bonjour,

Sub supprimerealise()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    Set re = Range("A1:A" & dl).Find("REALISE", lookat:=xlPart)
if re is nothing then
 msgbox "mot REALISE non trouvé en colonne A"
else 
    Rows(re.Row & ":" & dl).Delete
end if
End Sub

ça marche et c'est génial

les lignes sont supprimées en qq secondes

merci merci beaucoup !

bon après midi

cordialement

Rebonjour,

Je viens de remarquer que le dernier code que vous m'avez donné me supprime aussi des sous-totaux qui sont au dessus des en-têtes de mon Tableau. Dans ces lignes au dessus, j'ai des sous-totaux des montants de

  • REALISE
  • PREVISIONS_CDE
  • et PREVISIONS_DA

J'ai donc voulu remplacer : Set re = Range("A1:A" & dl).Find("REALISE", lookat:=xlPart)

par

Set re = Range("A13:A300000" & dl).Find("REALISE", lookat:=xlPart) la ligne 13 étant la 1ère ligne de données de mon tableau.

Mais là j'ai un autre msg d'erreur : Erreur d'éxécution 1004 La méthode Range de l'objet Global a échoué.

Que puis-je faire pour corriger ça ?

merci et désolée de vous déranger

rebonjour,

voici la correction pour cette instruction

Set re = Range("A13:A" & dl).Find("REALISE", lookat:=xlPart)

merci beaucoup ça fonctionne bien maintenant

bonne soirée

cordialement

Rechercher des sujets similaires à "vba supprimer lignes mot colonne"