XL 2013 Supprimer des lignes en fonction d'une formule

sr94

XLDnaute Occasionnel
Bonjour,

Par macro je souhaiterais supprimer des lignes d'un tableau.

Mon tableau est filtré, j'ai besoin que dans la colonne "statut" il calcule la valeur d'une formule RECHERCHEV (cette valeur est dans un autre classeur) et que il supprime les lignes dont le résultat de la formule est "statut 45".

Comment peut-on écrire ça ?

Merci !
 

sr94

XLDnaute Occasionnel
Re : Supprimer des lignes en fonction d'une formule

Merci st007 je vais voir ce que je peux faire avec les codes proposés (sachant que je ne masque pas, mais que je supprime les lignes et que je suis sur un tableau filtré=

Pour le fichier, c'est un fichier compliqué, avec des données confidentielles et qui fait référence à un autre fichier lui aussi confidentiel et qui est par ailleurs une extraction d'une base access, bref compliqué à envoyer sur un forum.
 

st007

XLDnaute Barbatruc
Re : Supprimer des lignes en fonction d'une formule

alors
entirerow.clear et plus .hidden=true
ensuite if ...then ... laisse tomber else ...

ceci dit, doublezero malgré son pseudo est bien meilleurs que moi avec excel, et sur ce forum, l'humour est de rigueur
pour être précis : " et que il supprime " au post#1 , avec une apostrophe, s'eut été plus joli .
il est par ailleurs de coutume de fournir un bout de fichier présentant ce que tu cherches à obtenir , c'est marqué dans la charte .

:p
 

sr94

XLDnaute Occasionnel
Re : Supprimer des lignes en fonction d'une formule

Je ne peux pas poster le fichier, il est lourd, avec des macros, liens avec d'autres fichiers etc ...

J'ai quand même réussi à faire la macro suivante qui marche, qu'en pensez vous ?

Code:
'Mettre à jour la feuille
Sheets("Suppression_Statut45").Activate
Range("Tableau_Base_de_données2.accdb3[Colonne2]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Sheets("Production_Schedule").Activate


'formule_
Range("AH5").FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP([@N°],'Suppression_Statut45'!C5:C8,4,FALSE)),"""",VLOOKUP([@N°],'Suppression_Statut45'!C5:C8,4,FALSE))"

'Retirer le filtre
Range("A5").AutoFilter
     
'Supprimer les lignes
On Error Resume Next
For i = [AH65000].End(xlUp).Row To 2 Step -1
    If Cells(i, 34) <> "" Then Rows(i).Delete
Next i

'Remettre le filtre
Range("A5").AutoFilter

'effacer_formule
Range("AH5", Range("AH65536").End(xlUp)).ClearContents

Merci
Sandrine
 

Discussions similaires

Réponses
6
Affichages
125

Statistiques des forums

Discussions
312 108
Messages
2 085 361
Membres
102 874
dernier inscrit
Petro2611