Condition sur une colonne
Résolu
Jono92600
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
Jono92600 Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
Jono92600 Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerai mettre plusieurs condition sur sur 3 colonnes ( de la colonne E à la colonne K). Le but de cette exercice est :
Si Date de la colonne E > Aujourd'hui [de + de 7 Jours] alors
Colonne G = "Dans les temps"
Si Date de la colonne E < Aujourd'hui [de - de 7 Jours] alors
Colonne G = "A FAIRE"
Si Date de la colonne E <= Aujourd'hui alors
Colonne G = "EN RETARD"
Si la colonne F contient une date alors
Colonne G = "FAIT"
Illustration de mon code :)
Je vous remercie d'avance.
J'aimerai mettre plusieurs condition sur sur 3 colonnes ( de la colonne E à la colonne K). Le but de cette exercice est :
Si Date de la colonne E > Aujourd'hui [de + de 7 Jours] alors
Colonne G = "Dans les temps"
Si Date de la colonne E < Aujourd'hui [de - de 7 Jours] alors
Colonne G = "A FAIRE"
Si Date de la colonne E <= Aujourd'hui alors
Colonne G = "EN RETARD"
Si la colonne F contient une date alors
Colonne G = "FAIT"
Illustration de mon code :)
Sub Essais() Dim PremLig As Long Dim DL As Long Dim i As Long 'dernière ligne colonne A DL = Range("A" & Rows.Count).End(xlUp).Row 'première ligne à traiter : PremLig = 2 'Boucle : For i = PremLig To DL If Range("E" & i) > Now + 7 Then ' Aujourd'hui + de 7 jours Range("G" & i) = "Dans les temps" ElseIf Range("E" & i) > Now - 7 Then ' Aujourd'hui - de 7 jours Range("G" & i) = "A FAIRE" ElseIf Range("E" & i) <= Now Then ' Aujourd'hui Range("G" & i) = "EN RETARD" Else Range("G" & i) = "" End If Next End Sub
Je vous remercie d'avance.
A voir également:
- Condition sur une colonne
- Déplacer une colonne excel - Guide
- Comment trier une colonne sur excel - Guide
- Excel cellule couleur si condition texte - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
2 réponses
1- ou en es tu de ton autre sujet TextBox Date?
2- tes conditions ne conviennent pas.
Il te faut travailler avec des intervalles de date.
2- tes conditions ne conviennent pas.
Il te faut travailler avec des intervalles de date.
Bonjour,
Il faut travailler avec des intervalles !
A qu'elle condition appartient la date du 01/01/2017? Elle répond à tes deux conditions :
Si Date de la colonne K < Aujourd'hui [de - de 7 Jours] alors
Colonne W = "A FAIRE"
Si Date de la colonne K <= Aujourd'hui alors
Colonne W = "EN RETARD"
Par conséquent la première valable est celle choisie par le programme.
Il ne faut pas laisser d’ambiguïté!
X < Date - 7 <= Y <= Date + 7 < Z
Te fera 3 groupes bien distincts.
Regarde ce code :
A toi à bien choisir tes conditions...
Il faut travailler avec des intervalles !
A qu'elle condition appartient la date du 01/01/2017? Elle répond à tes deux conditions :
Si Date de la colonne K < Aujourd'hui [de - de 7 Jours] alors
Colonne W = "A FAIRE"
Si Date de la colonne K <= Aujourd'hui alors
Colonne W = "EN RETARD"
Par conséquent la première valable est celle choisie par le programme.
Il ne faut pas laisser d’ambiguïté!
X < Date - 7 <= Y <= Date + 7 < Z
Te fera 3 groupes bien distincts.
Regarde ce code :
Dim maDate As Date maDate = CDate(Range("E" & i)) Select Case maDate Case Is < Date - 7 MsgBox "cas 1" Case Is <= Date - 7, Is <= Date + 7 MsgBox "cas 2" Case Is > Date + 7 MsgBox "cas 3" End Select
A toi à bien choisir tes conditions...
' Après adaptation de votre code j'obtiens ceci.
Sub Essais()
Dim PremLig As Long
Dim DL As Long
Dim i As Long
Dim maDate As Date
'dernière ligne colonne A
DL = Range("A" & Rows.Count).End(xlUp).Row
'première ligne à traiter :
PremLig = 2
'Boucle :
For i = PremLig To DL
maDate = CDate(Range("E" & i))
Select Case maDate
'Si la date prévue est supérieur à la date d'aujourd'hui de + de 7 jours
Case Is => Date + 7
Range("G" & i) = "Dans les temps"
'Si la date prévue est supérieur à la date d'aujourd'hui de - de 7 jours
Case Is => Date - 7
Range("G" & i) = "Échéance imminente"
'Si la date prévue est inférieure ou égale à la date d'aujourd'hui
Case Is <= Date
Range("G" & i) = "EN RETARD"
End Select
Next
End Sub
'Je n'obtiens pas exactement la même chose au niveau de mon tableau.
Sub Essais()
Dim PremLig As Long
Dim DL As Long
Dim i As Long
Dim maDate As Date
'dernière ligne colonne A
DL = Range("A" & Rows.Count).End(xlUp).Row
'première ligne à traiter :
PremLig = 2
'Boucle :
For i = PremLig To DL
maDate = CDate(Range("E" & i))
Select Case maDate
'Si la date prévue est supérieur à la date d'aujourd'hui de + de 7 jours
Case Is => Date + 7
Range("G" & i) = "Dans les temps"
'Si la date prévue est supérieur à la date d'aujourd'hui de - de 7 jours
Case Is => Date - 7
Range("G" & i) = "Échéance imminente"
'Si la date prévue est inférieure ou égale à la date d'aujourd'hui
Case Is <= Date
Range("G" & i) = "EN RETARD"
End Select
Next
End Sub
'Je n'obtiens pas exactement la même chose au niveau de mon tableau.
Bonjour,
Suite a plusieurs essais je suis encore bloqué sur les conditions.
Je mets mon fichier tout en continuant à bosser dessus.
https://www.cjoint.com/c/GBdvypRDOsY
Merci.
Suite a plusieurs essais je suis encore bloqué sur les conditions.
Je mets mon fichier tout en continuant à bosser dessus.
https://www.cjoint.com/c/GBdvypRDOsY
Merci.
Merci
Si Date de la colonne E > Aujourd'hui [de + de 7 Jours] alors
Colonne W = "Dans les temps"
Si Date de la colonne E < Aujourd'hui [de - de 7 Jours] alors
Colonne W = "A FAIRE"
Si Date de la colonne E <= Aujourd'hui alors
Colonne W = "EN RETARD"
Si la colonne F contient une date alors
Colonne W = "FAIT"
'On continu les condition avec les colonnes (H et I)
Si Date de la colonne H > Aujourd'hui [de + de 7 Jours] alors
Colonne W = "Dans les temps"
Si Date de la colonne H < Aujourd'hui [de - de 7 Jours] alors
Colonne W = "A FAIRE"
Si Date de la colonne H <= Aujourd'hui alors
Colonne W = "EN RETARD"
Si la colonne I contient une date alors
Colonne W = "FAIT"
'On continu les condition avec les colonnes (K et L)
Si Date de la colonne K > Aujourd'hui [de + de 7 Jours] alors
Colonne W = "Dans les temps"
Si Date de la colonne K < Aujourd'hui [de - de 7 Jours] alors
Colonne W = "A FAIRE"
Si Date de la colonne K <= Aujourd'hui alors
Colonne W = "EN RETARD"
Si la colonne L contient une date alors
Colonne W = "FAIT"
Je voulais partager mon fichier a nouveau mais le site est bloqué.
Il me manque que plus que deux codes pour le finaliser.
Par avance merci.