Obtenir la colonne d'un objet type Variant si critère = true

Dfordanger Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Voici mon problème : j'aimerais pouvoir compter le nombre d'occurrence d'une même valeur à l'intérieur d'une plage de cellules et noter au passage les colonnes où l'on trouve cette valeur.

Pour l'instant, ça donne ça :
Dim c As Variant 'la valeur qui nous intéresse
Dim valueCol As String 'colonne où se trouve la valeur "c"
Dim cCount As Integer 'nombre d'occurrences de la valeur "c"

valueCol = ""
cCount = Application.WorksheetFunction.CountIf(Range("PLAGE"), 5) '(à titre d'exemple, 5 est la valeur que nous recherchons dans le tableau)

For Each c in Range("PLAGE")
 if c=5 then
  valueCol = valueCol & ", " & c.Column
 end
Next c

Range("G5").Value = valueCol 'pour l'instant j'essaye d'inscrire "valueCol" dans une cellule à part pour tester si le système marche

end Sub


Pour une raison que j'ignore, la boucle For Each semble poser problème et rien ne s'affiche en cellule G5...

Merci d'avance pour votre aide !

Dfordanger
A voir également:

2 réponses

Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   40
 
Bonjour, dans cette partie :

if c=5 then
valueCol = valueCol & ", " & c.Column
end
Il manque End If (au lieu de end) à la fin de la condition, remplacez par :

if c=5 then
valueCol = valueCol & ", " & c.Column
End If
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

De plus

Dim C as Range

dim ValueCol as Integer

C.column te renvoie le numéro de la colonne et non un texte

Si tu veux la lettre (A à Z)
dim valuecol as string
Mid(tacellule.Address, 2, 1)

si tu dépasse la colonne 26
if c.column>26 abd C;column<=52 then valueCol = valueCol & ", " & Mid(tacellule.Address, 2, 2)

Michel
0