OVH Cloud OVH Cloud

Macro

1 réponse
Avatar
fornstep
Bonjour,

Je fais un tableau pour calculer le nombre de dossier pour mon entreprise.
Dans ce tableau j'ai l'année de la dernière visite (colone J) et avec une
formule j'ai, dans la colone K l'année de la prochaine visite. Cependant ce
tableau contient des couleurs sur les lignes qui signifie le nombre de
dossier concernant un client.

Avec la macro ci-dessous, je veux compter le nombre de dossier pour l'année
2005 à visiter en tenant compte des couleurs. Seulement ladite macro tient
compte des années en J et K ce qui fausse mon résultat. Merci de m'aider à
comprendre mon erreur. (je ne veux que la colonne K)

sub visite ()

Dim cells As Range, compteur AS Byte
Dim derligne
compteur = 0
derligne = sheets ("donnees").Range("K65536").End(xlUp).Row
For each cells In Sheets ("donnees").range("k1:i" & derligne)
If cells = 2005 and Abs(cells.Interior.ColorIndex = 34) Then
compteur = compteur + 1
End If
Next
sheets("recap").range("a1").Value = compteur
end sub

Encore merci

Stephane

1 réponse

Avatar
anonymousA
bonjour,

ben, range("k1:i&derligne) inclut bien sur la colonne J car qu'on présente
range("k:i") ou range("i:k") c'est pareil pour Excel et on voit bien que I, J
et K sont dans le même range.
Par ailleurs, je ne saurais trop te conseiller d'éviter d'utiliser des
variables portant un nom prédéfini d'Excel à a savoir ici la variable Cells.

A+


Bonjour,

Je fais un tableau pour calculer le nombre de dossier pour mon entreprise.
Dans ce tableau j'ai l'année de la dernière visite (colone J) et avec une
formule j'ai, dans la colone K l'année de la prochaine visite. Cependant ce
tableau contient des couleurs sur les lignes qui signifie le nombre de
dossier concernant un client.

Avec la macro ci-dessous, je veux compter le nombre de dossier pour l'année
2005 à visiter en tenant compte des couleurs. Seulement ladite macro tient
compte des années en J et K ce qui fausse mon résultat. Merci de m'aider à
comprendre mon erreur. (je ne veux que la colonne K)

sub visite ()

Dim cells As Range, compteur AS Byte
Dim derligne
compteur = 0
derligne = sheets ("donnees").Range("K65536").End(xlUp).Row
For each cells In Sheets ("donnees").range("k1:i" & derligne)
If cells = 2005 and Abs(cells.Interior.ColorIndex = 34) Then
compteur = compteur + 1
End If
Next
sheets("recap").range("a1").Value = compteur
end sub

Encore merci

Stephane