Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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)
 
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

Encore moi,

Désolé Laeti cela fonctionne en fait, juste une cellule fusionné qui faisait tout foirer...

Faut juste que je trouve comment juste effacer la valeur sans effacer la mise en page.

Un tout grand merci,

Thomas
 

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
406
Réponses
2
Affichages
909
Réponses
10
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…