Macro sur toutes les feuilles
goffdelfo
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour à tous;
je rencontre quelques petits problème dans mon code.
Pour faire simple j'ai plusieurs feuilles avec des tableaux les uns sous les autres avec des couleurs de remplissage. Toutes les feuilles sont identiques seules les caractères et couleurs dedans changent. Le but du code est de compter le nombre de cellules rouges , vertes et oranges dans chaque feuille tant que la cellule n'est pas vide.
j'ai réalisé une macro qui fonctionne sur la feuille active dans laquelle je l'emploi; mais dès lors que je l'utilise sur une autre feuille ça fait changer le résultat obtenus dans les autres feuilles.
C'est mon premier problème.
le second problème : la dernière feuille est la feuille de synthèse.
J'aimerai qu'avec une macro; Excel puisse me retourner dans des cases différentes les 3 résultats de chaque feuille (nbre cases rouges, nbre cases vertes , nbre cases oranges).
Je vous joins le code que j'ai réalisé et qui pour l'instant fonctionne s'il est appliqué à une seule feuille. Il y'a donc une fonction différente pour calculer chaque couleur et j'aimerai n'en faire qu'une seule qui renvoit les 3 valeurs dans 3 cellules différentes.
merci pour toutes les réponses possibles
je rencontre quelques petits problème dans mon code.
Pour faire simple j'ai plusieurs feuilles avec des tableaux les uns sous les autres avec des couleurs de remplissage. Toutes les feuilles sont identiques seules les caractères et couleurs dedans changent. Le but du code est de compter le nombre de cellules rouges , vertes et oranges dans chaque feuille tant que la cellule n'est pas vide.
j'ai réalisé une macro qui fonctionne sur la feuille active dans laquelle je l'emploi; mais dès lors que je l'utilise sur une autre feuille ça fait changer le résultat obtenus dans les autres feuilles.
C'est mon premier problème.
le second problème : la dernière feuille est la feuille de synthèse.
J'aimerai qu'avec une macro; Excel puisse me retourner dans des cases différentes les 3 résultats de chaque feuille (nbre cases rouges, nbre cases vertes , nbre cases oranges).
Je vous joins le code que j'ai réalisé et qui pour l'instant fonctionne s'il est appliqué à une seule feuille. Il y'a donc une fonction différente pour calculer chaque couleur et j'aimerai n'en faire qu'une seule qui renvoit les 3 valeurs dans 3 cellules différentes.
Function CodeCouleur(CelluleCouleur As Range) As Long
'Retourne le code couleur de la CelluleCouleur
Application.Volatile
CodeCouleur = CelluleCouleur.Interior.ColorIndex
End Function
Function compterNok(couleur As Range) As Long
Dim nok As Integer
nok = 0
i = couleur.Row
j = couleur.Column
While i < 49
While Cells(i, j) <> ""
If CodeCouleur(Cells(i, j)) = 3 Then nok = nok + 1 Else nok = nok + 0
j = j + 1
Wend
i = i + 12
j = couleur.Column
Wend
compterNok = nok
'retoune le nombre de case dont la couleur de remplissage est rouge
End Function
Function compterok(couleur As Range) As Long
Dim i As Integer
Dim j As Integer
Dim ok As Integer
ok = 0
i = couleur.Row
j = couleur.Column
While i < 49
While Cells(i, j) <> ""
If CodeCouleur(Cells(i, j)) = 14 Then ok = ok + 1 Else ok = ok + 0
j = j + 1
Wend
i = i + 12
j = couleur.Column
Wend
compterok = ok
'retoune le nombre de case dont la couleur de remplissage est vert
End Function
Function compterpb(couleur As Range) As Long
Dim pb As Integer
pb = 0
i = couleur.Row
j = couleur.Column
While i < 49
While Cells(i, j) <> ""
If CodeCouleur(Cells(i, j)) = 46 Then pb = pb + 1 Else pb = pb + 0
j = j + 1
Wend
i = i + 12
j = couleur.Column
Wend
compterpb = pb
'retoune le nombre de case dont la couleur de remplissage est orange
End Function
merci pour toutes les réponses possibles
A voir également:
- Macro sur toutes les feuilles
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment faire un livret avec des feuilles a4 - Guide
- Bruler les feuilles de laurier - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
2 réponses
Bonjour,
j'ai plusieurs feuilles avec des tableaux les uns sous les autres
Quel est le Range utile pour chaque feuille?
j'ai plusieurs feuilles avec des tableaux les uns sous les autres
Quel est le Range utile pour chaque feuille?
Re-
Regarde cette fonction :
Pour rouge sur feuil1 :
=CompterCouleur(3;"Feuil1")
Pour vert sur feuil2 :
=CompterCouleur(14;"Feuil2")
Pour orange sur Feuil1, Feuil2 et Feuil3 :
=CompterCouleur(46;"Feuil1";"Feuil2";"Feuil3")
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Regarde cette fonction :
Function CompterCouleur(couleur As Long, ParamArray Feuilles() As Variant) As Long
Dim Cpt As Integer, i As Integer, j As Integer, F
Application.Volatile
For Each F In Feuilles
With Sheets(F)
i = 1
While i < 49
j = 1
While .Cells(i, j) <> ""
If .Cells(i, j).Interior.ColorIndex = couleur Then Cpt = Cpt + 1
j = j + 1
Wend
i = i + 12
Wend
End With
Next
CompterCouleur = Cpt
End Function
Pour rouge sur feuil1 :
=CompterCouleur(3;"Feuil1")
Pour vert sur feuil2 :
=CompterCouleur(14;"Feuil2")
Pour orange sur Feuil1, Feuil2 et Feuil3 :
=CompterCouleur(46;"Feuil1";"Feuil2";"Feuil3")
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je