1 pièce(s) jointe(s)
VBA Excel / Boucle For et If multiples
Bonjour à tous,
J'ai un problème que je n'arrive pas à résoudre...
Dans le fichier (simplifié) excel ci-joint, je voudrais remplir la colonne E avec une date = à celle saisie dans colonne C + 2 jours à condition que:
Colonne D = 7 ET Colonne A <> 10 ou 17 ET Colonne B <> FRAR ou FR4U
Autrement la date colonne E est égale à date colonne C
J'ai testé ce code...sans succés:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Sub testFiltre()
Dim x, nb_lignes
nb_lignes = Application.WorksheetFunction.CountA(Range("A:A"))
For x = 2 To nb_lignes
If Range("D" & x) = 7 And (Range("A" & x) <> 17 Or Range("A" & x) <> "10") _
And (Range("B") <> "FRA" Or Range("B") <> "FR4U") _
Then Range("E" & x) = Range("C" & x) + 2 Else: Range("E" & x) = Range("C" & x)
Next x
End Sub |
J'ai essayé plusieurs formules (en autres avec ElseIf) mais je suis à court d'idée... :roll:
Pour info, je suis complètement autodidacte en VBA, alors voilà....;)
D'avance merci pour votre aide.
Franck
en VBA mais est ce indispensable en effet...
Bonjour,
D'accord avec Cerrede... et en VBA si j'ai bien tout compris dans tes conditions, sinon adapte.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Option Explicit
Sub testFiltre()
Dim Cellu As Range
For Each Cellu In Range("A2:A" & Range("A2").End(xlDown).Row)
If (Cellu.Offset(0, 3) = 7 And (Cellu <> 17 Or Cellu <> 10)) And _
(Cellu.Offset(0, 1) <> "FRAR" Or Cellu.Offset(0, 1) <> "FR4U") Then
Cellu.Offset(0, 4) = Cellu.Offset(0, 2) + 2
Else
Cellu.Offset(0, 4) = Cellu.Offset(0, 2)
End If
Next Cellu
End Sub |
Cordialement.
Bruno