Bonjour,
Voilà, j'ai un petit soucis qui semble tout bête mais je dois avouer que je sèche un peu.
J'ai un fichier pour lequel plusieurs personnes travaillent dessus et j'aurai besoin pour la suite de pouvoir sélectionner et copier des lignes en fonction de trois critères sur une autre feuille: Critère 1 : "en cours", Critère 2 : le nom du gestionnaire, Critère 3: la couleur du texte.
Pour le 3ème critère, c'est à cause de la mise en forme conditionnelle pour indiquer les dépassements de certains délais.
Voici ce que j'ai écris (navré mais je débute en vba) :
Sub calcul3()
Dim i&, fin&, aa
With Feuil1
fin = .Range("A" & Rows.Count).End(xlUp).Row
If fin <= 2 Then Exit Sub
aa = .Range("A2:AJ" & fin)
For i = 2 To UBound(aa)
If aa(i, 6) = "En cours" And aa(i, 5) = "Boudry" And aa(i, "H23000").FormatConditions.Color = -16776961 Then aa(i, i).Select
Sheets("feuil2").Select
Selection.PasteSpecial Paste:=xlPasteValues
Next i
.Range("A2").Resize(UBound(aa), UBound(aa, 2)).FormulaLocal = aa
End With
End Sub
Je joins un fichier exemple.
Si quelqu'un peu m'éclairer ou m'aider à trouver une solution plus simple. J'en serai fort reconnaissant.
Voilà, j'ai un petit soucis qui semble tout bête mais je dois avouer que je sèche un peu.
J'ai un fichier pour lequel plusieurs personnes travaillent dessus et j'aurai besoin pour la suite de pouvoir sélectionner et copier des lignes en fonction de trois critères sur une autre feuille: Critère 1 : "en cours", Critère 2 : le nom du gestionnaire, Critère 3: la couleur du texte.
Pour le 3ème critère, c'est à cause de la mise en forme conditionnelle pour indiquer les dépassements de certains délais.
Voici ce que j'ai écris (navré mais je débute en vba) :
Sub calcul3()
Dim i&, fin&, aa
With Feuil1
fin = .Range("A" & Rows.Count).End(xlUp).Row
If fin <= 2 Then Exit Sub
aa = .Range("A2:AJ" & fin)
For i = 2 To UBound(aa)
If aa(i, 6) = "En cours" And aa(i, 5) = "Boudry" And aa(i, "H23000").FormatConditions.Color = -16776961 Then aa(i, i).Select
Sheets("feuil2").Select
Selection.PasteSpecial Paste:=xlPasteValues
Next i
.Range("A2").Resize(UBound(aa), UBound(aa, 2)).FormulaLocal = aa
End With
End Sub
Je joins un fichier exemple.
Si quelqu'un peu m'éclairer ou m'aider à trouver une solution plus simple. J'en serai fort reconnaissant.