Condition if

thomas4530

XLDnaute Junior
Bonjour,

Pourriez-vous me dire ce que je dois écrire en VBA pour obtenir l'action suivante:

--> pour chaque cellule de la colonne E, si la valeur n'est pas "AAA" efface le contenu des colonnes C:F.

Sans VBA, cela donne:
If Range("E4") <> "AAA" Then Range("C4:F4").Clear
If Range("E5") <> "AAA" Then Range("C5:F5").Clear
If Range("E6") <> "AAA" Then Range("C6:F6").Clear
...
If Range("E2090") <> "AAA" Then Range("C2090:F2090").Clear

Un grand merci,

Thomas
 

Staple1600

XLDnaute Barbatruc
Re : Condition if

Bonjour à tous


c'est du VBA, non ? ;)
Sans VBA, cela donne:
If Range("E4") <> "AAA" Then Range("C4:F4").Clear
If Range("E5") <> "AAA" Then Range("C5:F5").Clear
If Range("E6") <> "AAA" Then Range("C6:F6").Clear
...
If Range("E2090") <> "AAA" Then Range("C2090:F2090").Clear

PS: Tu pourrais utiliser un filtre automatique pour te simplifier la vie, non ?
Le critère serait: <> de "AAA"
 

Staple1600

XLDnaute Barbatruc
Re : Condition if

Re

Donc pour illustrer mon histoire de filtre automatique (avec du VBA)
Code:
Sub test()
Dim MaPlageFiltree As Range, pf As Range, dl&
dl = Cells(Rows.Count, "E").End(xlUp).Row
Set MaPlageFiltree = Range("E3:E" & dl)
MaPlageFiltree.AutoFilter Field:=1, Criteria1:="<>AAA", Operator:=xlAnd
Set pf = Range("_FilterDataBase")
pf.Offset(1, 0).Resize(pf.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.ClearContents
ActiceSheet.ShowAllData
End Sub

J'ai fait un test qui pour moi est OK. (voir ci-dessous)
ffiltre.jpg
 
Dernière édition:

thomas4530

XLDnaute Junior
Re : Condition if

Re,

Cela ne marche pas: erreur d'exécution 424 - objet requis. :(

Il n'y a vraiment pas moyen moyen de réaliser cela ?

--> pour chaque cellule de la colonne E, si la valeur n'est pas "AAA" efface le contenu des colonnes C:F.

Sans VBA, cela donne:
If Range("E4") <> "AAA" Then Range("C4:F4").Clear
If Range("E5") <> "AAA" Then Range("C5:F5").Clear
If Range("E6") <> "AAA" Then Range("C6:F6").Clear
...
If Range("E2090") <> "AAA" Then Range("C2090:F2090").Clear

Déjà un tout grand merci pour ton aide... et ta patience :)

Thomas
 

thomas4530

XLDnaute Junior
Re : Condition if

Hello,

Je préfère cela... mais ça ne marche pas non plus.

Erreur d'exécution 1004.

Où est l'erreur ?

Sub copie()
Sheets("Données").Range("A1:CH2090").copy Sheets("BBB").Range("A1:CH2090")
End Sub

Sub test()
Dim i As Long
For i = 4 To Cells(Rows.Count, 5).End(3).Row
If Cells(i, 5) <> "AAA" Then Cells(i, 3).Resize(, 4).Clear
Next
End Sub

Merciiiiiii
 

thomas4530

XLDnaute Junior
Re : Condition if

Laetitia,

J'ai essayé d'adapter pour les colonnes suivantes (même logique)... mais cela ne fonctionne pas ?

Où est le problème ?

Sub lundi2()
Dim i As Long
For i = 4 To Cells(Rows.Count, 9).End(7).Row
If Cells(i, 9) <> "AAA" Then Cells(i, 7).Resize(, 4).ClearContents
Next
End Sub

Pfffffff je n'y arriverai jamais !
 

Discussions similaires

Réponses
7
Affichages
377
Réponses
2
Affichages
904
Réponses
10
Affichages
1 K

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote