Choix et comptage avec condition
Bonjour a tous,
n’étant un fin spécialiste du vba j'aurai besoin d'aide pour un bout de code.je souhaiterai que le code recherche sur une colonne tout les "X" et les sélectionne puis une fois sélectionné qu'il recherche sur une autre colonne ceux marqué avec "URG" "URG 40" pour les comptabiliser et les marquer sur une autre feuille.
je sais marquer les données mais la ou je bloque c'est rechercher uniquement les "X" et ensuite trouver les "URG" dans ses "X" là.
j’espère avoir été clair et je me tiens a votre disposition pour plus de détail.
merci d'avance
cordialement,
voici ma partie de codes.
ps je vous mets en balise tous ce que j'ai fait la partie concerné que je n'arrive pas s'intitule " Compte le nombre ED dans DU et la part d'urgence d'ED"
Private Sub Automatisation()
' Variable pour les BEM
Dim CompterUrg1 As Integer
Dim CompterUrg2 As Integer
Dim CompterUrg3 As Integer
Dim CompterUrg4 As Integer
Dim CompterUrg5 As Integer
Dim DerniereLigne As Integer
Dim CompteED As Integer
' compte le nombre de ligne et selectionne la feuille BEM
Worksheets("BEM").Select
DerniereLigne = Application.WorksheetFunction.Count(Range("c1:c" & Range("C65536").End(xlUp).Row))
' compte le nombre d'urgence en selectionnant point de déchargement
CompteUrg1 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "URG")
CompteUrg2 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "40 URG")
CompteUrg3 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "51 URG")
CompteUrg4 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "40")
CompteUrg5 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "51")
' compte les ED dans la feuille BEM en selectionnant la colonne Skip
CompteED = Application.WorksheetFunction.CountIf(Range("U1:U65536"), "X")
' écrire les résultats
Worksheets("RECEPTION").Select
Range("BB4").End(xlToLeft)(1, 2).Select
ActiveCell.Value = DerniereLigne
Range("BB10").End(xlToLeft)(1, 2).Select
ActiveCell.Value = CompteUrg1 + CompteUrg2 + CompteUrg3 + CompteUrg4 + CompteUrg5
Range("BB16").End(xlToLeft)(1, 2).Select
ActiveCell.Value = CompteED
'supprime les données feuille BEM
Worksheets("BEM").Select
Cells.Select
Selection.ClearContents
' Variable pour les DU
Dim LigneDU As Integer
Dim CompteED2 As Integer
Dim UrgED As Integer
Dim UrgED2 As Integer
Dim UrgED3 As Integer
' Compte le nombre de DU et selectionne la feuille DU
Worksheets("DU").Select
LigneDU = Application.WorksheetFunction.Count(Range("c1:c" & Range("C65536").End(xlUp).Row))
' Compte le nombre ED dans DU et la part d'urgence d'ED
CompteED2 = Application.WorksheetFunction.CountIf(Range("U1:U65536"), "X")
ce que je souhaiterai faire : SI il y a des croix dans la colonne U alors sélectionne et recherche dans la colonne "AU" les "URG","40" pour les comptabiliser.
Else
If Range("U1:U65536")("X").Select Then
UrgED = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "URG") And UrgED2 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "40") And UrgED3 = Application.WorksheetFunction.CountIf(Range("AU1:AU65536"), "40 URG")
Worksheets("ENTREE ED & EC").Select
Range("BB12").End(xlToLeft)(1, 2).Select
ActiveCell.Value = UrgED + UrgED2 + UrgED3
' écrire les résultats
Worksheets("ENTREE ED & EC").Select
Range("BB4").End(xlToLeft)(1, 2).Select
ActiveCell.Value = LigneDU
Range("BB8").End(xlToLeft)(1, 2).Select
ActiveCell.Value = CompteED2
' Compte le nombre de litige ED et EC
End If
End SubBonjour Noctam et
rechercher uniquement les "X" et ensuite trouver les "URG" dans ses "X" là.
Euh !!!!!
un classeur exemple ne serait pas de trop, tu ne crois pas ?
A+
oui pardon pris d'un appel téléphonique important j'ai oublié de l’intégrer avec.
j'ai enlevé le reste des informations de la feuille DU ou je souhaite faire les manips car elle son confidentielles j'ai juste laissé les X et les URG pour que ce soit plus explicite.
encore merci
Tu peux intégrer cette partie de code
' Compte le nombre ED dans DU et la part d'urgence d'ED
Dim Plage As Range, Cel As Range
Dim Compteur As Integer
Set Plage = Range("U1:U" & Range("U" & Rows.Count).End(xlUp).Row)
CompteED2 = Application.WorksheetFunction.CountIf(Plage, "X")
If CompteED2 > 0 Then
For Each Cel In Plage
If Cel.Offset(0, 26) Like "*URG*" Then
Compteur = Compteur + 1
End If
Next Cel
Set Plage = Nothing
End IfA+
Merci beaucoup je viens de l’intégrer et de modifier 2-3 petites choses et ça marche nickel
encore un grand merci a toi