[vba et excel] Compter avec condition
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je cherche en vba a compter avec condition. J'ai essayé ceci :
Sub CommandButton7_Click()
Sheets("final_par_NNO").Select
Range("O130").Select
ligne = "140"
For i = 125 To ligne
suivante = i + 1
If (CountIf("C2:C1037", "O" & suivante) > 0) Then
'Cells(i, 1).Interior.ColorIndex = 6
'Cells(suivante, 1).Interior.ColorIndex = 6
'End If
Next
End Sub
Mais ca ne fonction pas, auriez vous une idée ?
Erreur de compilation
Sub ou function non défini
Merci
Je cherche en vba a compter avec condition. J'ai essayé ceci :
Sub CommandButton7_Click()
Sheets("final_par_NNO").Select
Range("O130").Select
ligne = "140"
For i = 125 To ligne
suivante = i + 1
If (CountIf("C2:C1037", "O" & suivante) > 0) Then
'Cells(i, 1).Interior.ColorIndex = 6
'Cells(suivante, 1).Interior.ColorIndex = 6
'End If
Next
End Sub
Mais ca ne fonction pas, auriez vous une idée ?
Erreur de compilation
Sub ou function non défini
Merci
14 réponses
-
:o)
Les valeurs se trouvent entre la ligne 125 et 140 de la colonne O.
Sub CommandButton7_Click() Dim ws As Worksheet 'Objet feuille Dim ligne As Long Dim plage As Range Dim Cel Dim i As Integer Dim suivante As Integer Set ws = Worksheets("final_par_NNO") Set plage = ws.Range("C2:C1037") ligne = 140 For i = 125 To ligne suivante = i + 1 For Each cel In plage If ws.Range("O" & i).Value = cel.Value Then ws.Cells(i, 1).Interior.ColorIndex = 6 ws.Cells(suivante, 1).Interior.ColorIndex = 6 End If Next cel Next i End Sub
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau -
Ton End if est mis en commentaire et il faut mettre Next i
-
Erreur de copier coller de code source ;)
Voici ce que j'ai mais qui fait le même résultat
Sub CommandButton7_Click() Sheets("final_par_NNO").Select Range("O130").Select ligne = "140" For i = 125 To ligne suivante = i + 1 If (CountIf("C2:C1037", "O" & suivante) > 0) Then 'Cells(i, 1).Interior.ColorIndex = 6 'Cells(suivante, 1).Interior.ColorIndex = 6 End If Next i End Sub -
Et en déclarant tes variables ça marche ?
dim ligne as integer dim suivante as integer
Et ta boucle s'étends sur quelle plage de cellule ?
Je n'arrive pas à voir. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
1) ligne = 140 et non ligne = "140"
2) Sheets("final_par_NNO").Select et Range("O130").Select ne servent à rien.
Il est préférable de faireDim ws As Worksheet Set ws = Worksheets("final_par_NNO")
Et ensuite :ws.Range("C2:C1037") ws.Cells(i, 1).Interior.ColorIndex = 6 'etc ...
3) Sur quelle ligne apparait le message d'erreur ?
;o)
-
Je veux voir si dans la plage c2:c1037, il y a la valeur contenu dans O + la ligne
Je pense que c'est countif qui posse problème, j'ai toujours le message d'erreur
Erreur de compilation
Sub ou function non défini
Merci -
-
Oui, :D
la réponse pour l'erreur, c'est le countif qui est surligné avec le message :
Erreur de compilation
Sub ou function non défini
Merci -
Sub CommandButton7_Click() dim i as integer For i = 2 To 1037 If cells(3, i) = cells(15 , i) Then Cells(1, i).Interior.ColorIndex = 6 End If Next i End Sub
Est-ce ceci ce que tu souhaites ? -
Pas tout à fait, car il faut que ca cherche dans toute la colonne C pas forcement sur la meme ligne et c'est la que je bloque !! :s
Merci de votre aide-
peut être comme ça, mais j'avoue n'avoir pas très bien compris ce que tu cherches exactement à faire.
Sub CommandButton7_Click() Dim ws As Worksheet 'Objet feuille Dim ligne As Long Dim palge As Range dim cel Dim suivant As Long Dim cpt As Long Set ws = Worksheets("final_par_NNO") Set plage = ws.Range("C2:C1037") ligne = 140 For i = 125 To ligne suivante = i + 1 For each cel In plage If cel.Value = "O" & suivant Then cpt = cpt + 1 Next cel If cpt > 0 Then ws.Cells(i, 1).Interior.ColorIndex = 6 ws.Cells(suivante, 1).Interior.ColorIndex = 6 End If Next i End Sub
Le traitement risque d'être long..
;o)
-
-
Je pense que ce n'est pas très loin du résultat que j'attends sauf que là, j'crois qu'on c'est pas compris lol
If cel.Value = "O" & suivant Then cpt = cpt + 1
Ou je ne comprend pas.
Voici avec un exemple, ca sera peut etre plus simple
Dans la plage c2:c1037, j'ai la valeur en c50 -> 123456789
Maintenant, en O133, j'ai également cette valeur 123456789
Je voudrais, grâce à la fonction qu'on est en train d'établir, faire en sorte que la cellule O133 ressorte avec un fond jaune car elle existe dans la plage c2:c1037
Et donc, il faut que je fasse ca pour chaque ligne de la colonne O.
Je pense que c'est plus clair ;)
Merci -
Tu veux comparer 2 cellules de la même ligne, l'une en colonne C et l'autre en colonne O.
C'est bien ça ?
Parce que à la base le sujet c'est : Je cherche en vba a compter avec condition ...
-
-