Macro VBA erronée
Résolu/Fermé
Dautomne
Messages postés
20
Date d'inscription
mercredi 22 juillet 2020
Statut
Membre
Dernière intervention
30 juillet 2020
-
Modifié le 23 juil. 2020 à 18:07
yg_be Messages postés 23509 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 avril 2025 - 24 juil. 2020 à 23:17
yg_be Messages postés 23509 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 avril 2025 - 24 juil. 2020 à 23:17
A voir également:
- Macro VBA erronée
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
5 réponses
yg_be
Messages postés
23509
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 avril 2025
Ambassadeur
1 574
23 juil. 2020 à 20:09
23 juil. 2020 à 20:09
bonjour,
suggestion:
suggestion:
Option Explicit Sub cc() Dim rg As Range, cl As Range, noui As Integer, nnon As Integer, couleur As Integer Set rg = Range("$D$216:$D$218") noui = 0 nnon = 0 For Each cl In rg Select Case cl.Value Case "NON": nnon = nnon + 1 Case "OUI": noui = noui + 1 End Select Next cl If noui = 3 Then couleur = 4 'vert Else If nnon = 3 Then couleur = 3 'rouge Else If noui + nnon = 3 Then couleur = 46 'orange Else couleur = 16 'gris End If End If End If rg.Interior.ColorIndex = couleur End Sub
Dautomne
Messages postés
20
Date d'inscription
mercredi 22 juillet 2020
Statut
Membre
Dernière intervention
30 juillet 2020
24 juil. 2020 à 11:33
24 juil. 2020 à 11:33
Bonjour,
Merci pour ton aide :-)
Je suis novice en vba et donc en incapacité d'exploiter la macro que tu as eu la gentillesse de mettre à ma disposition.
Peux tu m'expliquer :
Où se trouve la référence à la case H5 (case à renseigner avec le résultat) ?
Est-ce que la macro ci-dessus doit être modifiée pour faire apparaître la référence à la feuille (Fiche de contrôle'!$D$216:$D$218) où sont contenues les cellules à exploiter ? Dans l'affirmatif, peux-tu m'indiquer comment faire?
Enfin dernière question le terme "Option Explicit" correspond à quoi ? la macro vba ne le prend pas en compte quand je copie/colle.
Merci encore pour cette aide et pour les explications à venir :-)
Merci pour ton aide :-)
Je suis novice en vba et donc en incapacité d'exploiter la macro que tu as eu la gentillesse de mettre à ma disposition.
Peux tu m'expliquer :
Où se trouve la référence à la case H5 (case à renseigner avec le résultat) ?
Est-ce que la macro ci-dessus doit être modifiée pour faire apparaître la référence à la feuille (Fiche de contrôle'!$D$216:$D$218) où sont contenues les cellules à exploiter ? Dans l'affirmatif, peux-tu m'indiquer comment faire?
Enfin dernière question le terme "Option Explicit" correspond à quoi ? la macro vba ne le prend pas en compte quand je copie/colle.
Merci encore pour cette aide et pour les explications à venir :-)
yg_be
Messages postés
23509
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 avril 2025
1 574
24 juil. 2020 à 12:11
24 juil. 2020 à 12:11
veux-tu dire que tu veux changer la couleur de H5? dans quelle feuille? j'ai adapté le code, vois ci-dessous:
"option explicit", en début de module, sert à préciser que les variables doivent être explicitement déclarées (via DIM). cela permet de détecter rapidement les fautes de frappe dans les noms de variables.
"option explicit", en début de module, sert à préciser que les variables doivent être explicitement déclarées (via DIM). cela permet de détecter rapidement les fautes de frappe dans les noms de variables.
Sub cc() Dim rg As Range, cl As Range, noui As Integer, nnon As Integer, couleur As Integer, ncel As Long Set rg = sheets("Fiche de contrôle").Range("$D$216:$D$218") noui = 0 nnon = 0 ncel = rg.Count For Each cl In rg Select Case cl.Value Case "NON": nnon = nnon + 1 Case "OUI": noui = noui + 1 End Select Next cl If noui = ncel Then couleur = 4 'vert Else If nnon = ncel Then couleur = 3 'rouge Else If noui + nnon = ncel Then couleur = 46 'orange Else couleur = 16 'gris End If End If End If sheets("Fiche de contrôle").Range("H5").Interior.ColorIndex = couleur End Sub
Dautomne
Messages postés
20
Date d'inscription
mercredi 22 juillet 2020
Statut
Membre
Dernière intervention
30 juillet 2020
24 juil. 2020 à 16:09
24 juil. 2020 à 16:09
Bonjour,
Je veux changer la cellule H5 de la feuille "Synthèse résultats ctrl période" en fonction des éléments indiqués dans les cellules D216 à D218 de la feuille "Fiche de contrôle".
Comme pour mon autre problématique peux-tu m'indiquer comment intégrer ce code dans VBA. Je n'y arrive pas.
Merci encore
Je veux changer la cellule H5 de la feuille "Synthèse résultats ctrl période" en fonction des éléments indiqués dans les cellules D216 à D218 de la feuille "Fiche de contrôle".
Comme pour mon autre problématique peux-tu m'indiquer comment intégrer ce code dans VBA. Je n'y arrive pas.
Merci encore
yg_be
Messages postés
23509
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 avril 2025
1 574
24 juil. 2020 à 16:19
24 juil. 2020 à 16:19
veux-tu changer la couleur de fond de H5? si oui, pourquoi ne l'écris-tu pas?
et pourquoi n'expliques-tu pas tout cela dés le début?
prends ton temps pour rédiger des demandes précises.
en ligne 28, tu dois donc préciser le nom de la feuille où se trouve H5.
tu emploies un vocabulaire bizarre, essaie peut-être avec des mots plus simples. cela veut dire quoi "intégrer du code dans VBA"?
et pourquoi n'expliques-tu pas tout cela dés le début?
prends ton temps pour rédiger des demandes précises.
en ligne 28, tu dois donc préciser le nom de la feuille où se trouve H5.
tu emploies un vocabulaire bizarre, essaie peut-être avec des mots plus simples. cela veut dire quoi "intégrer du code dans VBA"?
Dautomne
Messages postés
20
Date d'inscription
mercredi 22 juillet 2020
Statut
Membre
Dernière intervention
30 juillet 2020
24 juil. 2020 à 17:26
24 juil. 2020 à 17:26
Tu as effectivement raison je ne parle pas le langage "informatique" d'où les incompréhensions.
A la question 1, oui je souhaite changer la couleur de fond de la cellule H5.
A la question 2, je n'arrive tout simplement pas à coller le code fournit dans ma macro VBA n°17.
Comme je l'indiquais je n'ai jamais fait de VBA de ma vie donc pour moi c'est "obscure". Tout ce que je veux c'est juste que :
la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en gris si les cellules
D216-D218 de le feuille "Fiche de contrôle" sont vides
la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en rouge si les cellules D216-D218 de le feuille "Fiche de contrôle" sont toutes à "NON"
la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en vert si les cellules D216-D218 de le feuille "Fiche de contrôle" sont toutes à "OUI"
Enfin, que la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en orange si par exemple les cellules D216-D218 de le feuille "Fiche de contrôle" contiennent 1 OUI et 2 NON ou encore 1 NON et 2 OUI.
Je veux par ailleurs que tu m'expliques en langage simple où je dois coller le code car ça ne fonctionne visiblement pas dans une macro. Il faut peut être que je le colle dans un module ?
J'espère être plus claire :-) Merci encore pour ton aide.
Cordialement.
A la question 1, oui je souhaite changer la couleur de fond de la cellule H5.
A la question 2, je n'arrive tout simplement pas à coller le code fournit dans ma macro VBA n°17.
Comme je l'indiquais je n'ai jamais fait de VBA de ma vie donc pour moi c'est "obscure". Tout ce que je veux c'est juste que :
la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en gris si les cellules
D216-D218 de le feuille "Fiche de contrôle" sont vides
la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en rouge si les cellules D216-D218 de le feuille "Fiche de contrôle" sont toutes à "NON"
la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en vert si les cellules D216-D218 de le feuille "Fiche de contrôle" sont toutes à "OUI"
Enfin, que la cellule H5 de la feuille "Synthèse résultats ctrl période" soit remplit en orange si par exemple les cellules D216-D218 de le feuille "Fiche de contrôle" contiennent 1 OUI et 2 NON ou encore 1 NON et 2 OUI.
Je veux par ailleurs que tu m'expliques en langage simple où je dois coller le code car ça ne fonctionne visiblement pas dans une macro. Il faut peut être que je le colle dans un module ?
J'espère être plus claire :-) Merci encore pour ton aide.
Cordialement.
yg_be
Messages postés
23509
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 avril 2025
1 574
24 juil. 2020 à 17:35
24 juil. 2020 à 17:35
"ça ne fonctionne visiblement pas dans une macro": qu'as-tu essayé, qu'as-tu observé?
dans quoi se trouve le code que tu as partagé? n'est-il pas dans un module?
commence peut-être par investir quelques heures et apprendre quelques bases en VBA, peut-être via un ou deux tutoriels.
dans quoi se trouve le code que tu as partagé? n'est-il pas dans un module?
commence peut-être par investir quelques heures et apprendre quelques bases en VBA, peut-être via un ou deux tutoriels.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dautomne
Messages postés
20
Date d'inscription
mercredi 22 juillet 2020
Statut
Membre
Dernière intervention
30 juillet 2020
Modifié le 24 juil. 2020 à 21:39
Modifié le 24 juil. 2020 à 21:39
Dernière question sur cette thématique.
Le code fonctionne parfaitement mais je n'arrive pas à modifier la couleur verte je veux remplacer par le
Merci encore pour cet accompagnement.
Cordialement
Le code fonctionne parfaitement mais je n'arrive pas à modifier la couleur verte je veux remplacer par le
couleur = 4par
couleur = 5287936as tu une solution ?
Sub TESSI_ICBS_S1()
Dim rg As Range, cl As Range, noui As Integer, nnon As Integer, couleur As Integer, ncel As Long
Set rg = Sheets("Fiche de contrôle").Range("$D$216:$D$218")
noui = 0
nnon = 0
ncel = rg.Count
For Each cl In rg
Select Case cl.Value
Case "NON":
nnon = nnon + 1
Case "OUI":
noui = noui + 1
End Select
Next cl
If noui = ncel Then
couleur = 4 'vert
Else
If nnon = ncel Then
couleur = 3 'rouge
Else
If noui + nnon = ncel Then
couleur = 46 'orange
Else
couleur = 16 'gris
End If
End If
End If
Sheets("Synthèse résultats ctrl période").Range("H5").Interior.ColorIndex = couleur
End Sub
Merci encore pour cet accompagnement.
Cordialement
yg_be
Messages postés
23509
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 avril 2025
1 574
24 juil. 2020 à 23:17
24 juil. 2020 à 23:17
lis alors ceci: https://www.excel-pratique.com/fr/vba/couleurs