J'ai écris ces quelques lignes de codes pour avoir len-tête des ré sultats obtenus :
'-------------- '--- Récupérer les noms et valeurs des critères actifs J = 1 For i = 1 To 6 If ZoneCritère(2, i) <> "" Then If TextBox2.Value <> "" And TextBox3.Value <> "" Then '-- Critère avec : Date début, Date fin Ch = Choose(i, "Machine ", "Nature ", "Date de début ", "Date de fin ", "Cause ", "Durée " & X & " ") Val = Choose(i, Me.ListBox1, Me.ComboBox1, Me.TextBox2, M e.TextBox3, Me.ComboBox2, DrMn) Else '-- Critère avec : Date seulement Ch = Choose(i, "Machine ", "Nature ", "Date " & T & " ", "Cause ", "Durée " & X & " ") Val = Choose(i, Me.TextBox1, Me.ComboBox1, Me.TextBox6, M e.ComboBox2, DrMn) End If Msg = Msg & Ch & " : " & Val & ", " J = J + 1 End If Next i '-- Enlever la dernière virgule Msg = Mid(1, Len(Msg) - 1, Msg) '--------------
Je crois qu'on peut mieux récrire ce code !
Que penses-tu ?
Merci.
Re,
J'ai écris ces quelques lignes de codes pour avoir len-tête des ré sultats obtenus :
'--------------
'--- Récupérer les noms et valeurs des critères actifs
J = 1
For i = 1 To 6
If ZoneCritère(2, i) <> "" Then
If TextBox2.Value <> "" And TextBox3.Value <> "" Then
'-- Critère avec : Date début, Date fin
Ch = Choose(i, "Machine ", "Nature ", "Date de début ", "Date de fin ", "Cause ", "Durée " & X & " ")
Val = Choose(i, Me.ListBox1, Me.ComboBox1, Me.TextBox2, M e.TextBox3, Me.ComboBox2, DrMn)
Else
'-- Critère avec : Date seulement
Ch = Choose(i, "Machine ", "Nature ", "Date " & T & " ", "Cause ", "Durée " & X & " ")
Val = Choose(i, Me.TextBox1, Me.ComboBox1, Me.TextBox6, M e.ComboBox2, DrMn)
End If
Msg = Msg & Ch & " : " & Val & ", "
J = J + 1
End If
Next i
'-- Enlever la dernière virgule
Msg = Mid(1, Len(Msg) - 1, Msg)
'--------------
J'ai écris ces quelques lignes de codes pour avoir len-tête des ré sultats obtenus :
'-------------- '--- Récupérer les noms et valeurs des critères actifs J = 1 For i = 1 To 6 If ZoneCritère(2, i) <> "" Then If TextBox2.Value <> "" And TextBox3.Value <> "" Then '-- Critère avec : Date début, Date fin Ch = Choose(i, "Machine ", "Nature ", "Date de début ", "Date de fin ", "Cause ", "Durée " & X & " ") Val = Choose(i, Me.ListBox1, Me.ComboBox1, Me.TextBox2, M e.TextBox3, Me.ComboBox2, DrMn) Else '-- Critère avec : Date seulement Ch = Choose(i, "Machine ", "Nature ", "Date " & T & " ", "Cause ", "Durée " & X & " ") Val = Choose(i, Me.TextBox1, Me.ComboBox1, Me.TextBox6, M e.ComboBox2, DrMn) End If Msg = Msg & Ch & " : " & Val & ", " J = J + 1 End If Next i '-- Enlever la dernière virgule Msg = Mid(1, Len(Msg) - 1, Msg) '--------------
Dernière mise à jour : http://cjoint.com/?BHirmGybFky
Ceci a été ajouté à la procédure principale vers la fin de celle-ci pour résumer les critères utilisés
'---------------------------------------- For Each C In ZoneCritère.Rows(2).Cells If C <> "" Then Msg = Msg & C.Offset(-1) & " : " & C.Value & ", " End If Next If Msg <> "" Then Msg = Left(Msg, Len(Msg) - 2) Feuil3.Range("B2").Value = Msg End If '----------------------------------------
Dernière mise à jour : http://cjoint.com/?BHirmGybFky
Ceci a été ajouté à la procédure principale vers la fin de celle-ci pour
résumer les critères utilisés
'----------------------------------------
For Each C In ZoneCritère.Rows(2).Cells
If C <> "" Then
Msg = Msg & C.Offset(-1) & " : " & C.Value & ", "
End If
Next
If Msg <> "" Then
Msg = Left(Msg, Len(Msg) - 2)
Feuil3.Range("B2").Value = Msg
End If
'----------------------------------------
Dernière mise à jour : http://cjoint.com/?BHirmGybFky
Ceci a été ajouté à la procédure principale vers la fin de celle-ci pour résumer les critères utilisés
'---------------------------------------- For Each C In ZoneCritère.Rows(2).Cells If C <> "" Then Msg = Msg & C.Offset(-1) & " : " & C.Value & ", " End If Next If Msg <> "" Then Msg = Left(Msg, Len(Msg) - 2) Feuil3.Range("B2").Value = Msg End If '----------------------------------------
Un grand merci pour m'avoir accompagné pour résoudre la grande partie d e ce problème.
Je vais continuer à faire des essais, pour pouvoir l'intégrer dans l'ap plication finale de mon projet.
Merci encore et à bientôt dans d'autre fils de discussions.
:)
Apitos
Re,
Une dernière chose si je peux me permettre.
J'ai ajouté une case pour entrer les heures ainsi que le code pour les tr ansformer en minutes.
Ca marchait bien avant.
Mais maintenant, je ne sais pour quelle raison, le filtre avec le critère "Durée (en min)" donne toujours un résultat nul.
Voila le code qui crée le critère "Durée"
'----------- '-- Le critère : Durée Dim hMn As Integer, dMn As Long If Me.ComboBox3.ListIndex <> -1 Then X = Choose(Me.ComboBox3.ListIndex + 1, ">", ">=", "<", "<=", "=") hMn = Me.TextBox5.Value * 60 ' Heures en minutes dMn = hMn + Me.TextBox7.Value 'Durée en minutes Feuil2.[N3] = X & dMn 'formule Durée en minutes End If '-------------
Le fichier exemple en PJ :
http://cjoint.com/?BHjc2OU9uDB
Merci.
Re,
Une dernière chose si je peux me permettre.
J'ai ajouté une case pour entrer les heures ainsi que le code pour les tr ansformer en minutes.
Ca marchait bien avant.
Mais maintenant, je ne sais pour quelle raison, le filtre avec le critère "Durée (en min)" donne toujours un résultat nul.
Voila le code qui crée le critère "Durée"
'-----------
'-- Le critère : Durée
Dim hMn As Integer, dMn As Long
If Me.ComboBox3.ListIndex <> -1 Then
X = Choose(Me.ComboBox3.ListIndex + 1, ">", ">=", "<", "<=", "=")
hMn = Me.TextBox5.Value * 60 ' Heures en minutes
dMn = hMn + Me.TextBox7.Value 'Durée en minutes
Feuil2.[N3] = X & dMn 'formule Durée en minutes
End If
'-------------
J'ai ajouté une case pour entrer les heures ainsi que le code pour les tr ansformer en minutes.
Ca marchait bien avant.
Mais maintenant, je ne sais pour quelle raison, le filtre avec le critère "Durée (en min)" donne toujours un résultat nul.
Voila le code qui crée le critère "Durée"
'----------- '-- Le critère : Durée Dim hMn As Integer, dMn As Long If Me.ComboBox3.ListIndex <> -1 Then X = Choose(Me.ComboBox3.ListIndex + 1, ">", ">=", "<", "<=", "=") hMn = Me.TextBox5.Value * 60 ' Heures en minutes dMn = hMn + Me.TextBox7.Value 'Durée en minutes Feuil2.[N3] = X & dMn 'formule Durée en minutes End If '-------------