Erreur compilation excel
dine85000
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
bonjour,
j'ai créer une macro qui me permet de colorier une image suivant certains critères pour faire une carte (Vendée)
la formule fonctionne bien, mais dès que j'ajoute trop de commune cela ne fonctionne plus, message d'erreur de compilation, macro trop grande.
voici un exemple sur quelque lignes (j'ai en tous 285 communes sur ma carte)
je ne sais pas comment faire pour la réduire, soit par une boucle ou autre.
Sub carte()
'roche
If [AA2].Value > 0 Or [AC2].Value > 0 Or [AE2].Value > 0 Then ActiveSheet.Shapes("roche").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("roche").Fill.ForeColor.RGB = RGB(255, 255, 255)
'aizenay
If [AA3].Value > 0 Or [AC3].Value > 0 Or [AE3].Value > 0 Then ActiveSheet.Shapes("aizenay").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("aizenay").Fill.ForeColor.RGB = RGB(255, 255, 255)
'angles
If [AA4].Value > 0 Or [AC4].Value > 0 Or [AE4].Value > 0 Then ActiveSheet.Shapes("angles").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("angles").Fill.ForeColor.RGB = RGB(255, 255, 255)
'antigny
If [AA5].Value > 0 Or [AC5].Value > 0 Or [AE5].Value > 0 Then ActiveSheet.Shapes("antigny").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("antigny").Fill.ForeColor.RGB = RGB(255, 255, 255)
'apremont
If [AA6].Value > 0 Or [AC6].Value > 0 Or [AE6].Value > 0 Then ActiveSheet.Shapes("apremont").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("apremont").Fill.ForeColor.RGB = RGB(255, 255, 255)
'aubignylesclouzeaux
If [AA7].Value > 0 Or [AC7].Value > 0 Or [AE7].Value > 0 Then ActiveSheet.Shapes("aubignylesclouzeaux").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("aubignylesclouzeaux").Fill.ForeColor.RGB = RGB(255, 255, 255)
'auchaysurvendee
If [AA8].Value > 0 Or [AC8].Value > 0 Or [AE8].Value > 0 Then ActiveSheet.Shapes("auchaysurvendee").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("auchaysurvendee").Fill.ForeColor.RGB = RGB(255, 255, 255)
'avrille
If [AA9].Value > 0 Or [AC9].Value > 0 Or [AE9].Value > 0 Then ActiveSheet.Shapes("avrille").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("avrille").Fill.ForeColor.RGB = RGB(255, 255, 255)
'barbatre
If [AA10].Value > 0 Or [AC10].Value > 0 Or [AE10].Value > 0 Then ActiveSheet.Shapes("barbatre").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("barbatre").Fill.ForeColor.RGB = RGB(255, 255, 255)
'bazogesenpaillers
If [AA11].Value > 0 Or [AC11].Value > 0 Or [AE11].Value > 0 Then ActiveSheet.Shapes("bazogesenpaillers").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("bazogesenpaillers").Fill.ForeColor.RGB = RGB(255, 255, 255)
'bazogesenpareds
If [AA12].Value > 0 Or [AC12].Value > 0 Or [AE12].Value > 0 Then ActiveSheet.Shapes("bazogesenpareds").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("bazogesenpareds").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beaufou
If [AA13].Value > 0 Or [AC13].Value > 0 Or [AE13].Value > 0 Then ActiveSheet.Shapes("beaufou").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beaufou").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beaulieusouslaroche
If [AA14].Value > 0 Or [AC14].Value > 0 Or [AE14].Value > 0 Then ActiveSheet.Shapes("beaulieusouslaroche").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beaulieusouslaroche").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beaurepaire
If [AA15].Value > 0 Or [AC15].Value > 0 Or [AE15].Value > 0 Then ActiveSheet.Shapes("beaurepaire").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beaurepaire").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beauvoirsurmer
If [AA16].Value > 0 Or [AC16].Value > 0 Or [AE16].Value > 0 Then ActiveSheet.Shapes("beauvoirsurmer").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beauvoirsurmer").Fill.ForeColor.RGB = RGB(255, 255, 255)
'bellevigny
If [AA17].Value > 0 Or [AC17].Value > 0 Or [AE17].Value > 0 Then ActiveSheet.Shapes("bellevigny").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("bellevigny").Fill.ForeColor.RGB = RGB(255, 255, 255)
merci de votre retour
Cordialement, Dine
j'ai créer une macro qui me permet de colorier une image suivant certains critères pour faire une carte (Vendée)
la formule fonctionne bien, mais dès que j'ajoute trop de commune cela ne fonctionne plus, message d'erreur de compilation, macro trop grande.
voici un exemple sur quelque lignes (j'ai en tous 285 communes sur ma carte)
je ne sais pas comment faire pour la réduire, soit par une boucle ou autre.
Sub carte()
'roche
If [AA2].Value > 0 Or [AC2].Value > 0 Or [AE2].Value > 0 Then ActiveSheet.Shapes("roche").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("roche").Fill.ForeColor.RGB = RGB(255, 255, 255)
'aizenay
If [AA3].Value > 0 Or [AC3].Value > 0 Or [AE3].Value > 0 Then ActiveSheet.Shapes("aizenay").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("aizenay").Fill.ForeColor.RGB = RGB(255, 255, 255)
'angles
If [AA4].Value > 0 Or [AC4].Value > 0 Or [AE4].Value > 0 Then ActiveSheet.Shapes("angles").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("angles").Fill.ForeColor.RGB = RGB(255, 255, 255)
'antigny
If [AA5].Value > 0 Or [AC5].Value > 0 Or [AE5].Value > 0 Then ActiveSheet.Shapes("antigny").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("antigny").Fill.ForeColor.RGB = RGB(255, 255, 255)
'apremont
If [AA6].Value > 0 Or [AC6].Value > 0 Or [AE6].Value > 0 Then ActiveSheet.Shapes("apremont").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("apremont").Fill.ForeColor.RGB = RGB(255, 255, 255)
'aubignylesclouzeaux
If [AA7].Value > 0 Or [AC7].Value > 0 Or [AE7].Value > 0 Then ActiveSheet.Shapes("aubignylesclouzeaux").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("aubignylesclouzeaux").Fill.ForeColor.RGB = RGB(255, 255, 255)
'auchaysurvendee
If [AA8].Value > 0 Or [AC8].Value > 0 Or [AE8].Value > 0 Then ActiveSheet.Shapes("auchaysurvendee").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("auchaysurvendee").Fill.ForeColor.RGB = RGB(255, 255, 255)
'avrille
If [AA9].Value > 0 Or [AC9].Value > 0 Or [AE9].Value > 0 Then ActiveSheet.Shapes("avrille").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("avrille").Fill.ForeColor.RGB = RGB(255, 255, 255)
'barbatre
If [AA10].Value > 0 Or [AC10].Value > 0 Or [AE10].Value > 0 Then ActiveSheet.Shapes("barbatre").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("barbatre").Fill.ForeColor.RGB = RGB(255, 255, 255)
'bazogesenpaillers
If [AA11].Value > 0 Or [AC11].Value > 0 Or [AE11].Value > 0 Then ActiveSheet.Shapes("bazogesenpaillers").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("bazogesenpaillers").Fill.ForeColor.RGB = RGB(255, 255, 255)
'bazogesenpareds
If [AA12].Value > 0 Or [AC12].Value > 0 Or [AE12].Value > 0 Then ActiveSheet.Shapes("bazogesenpareds").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("bazogesenpareds").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beaufou
If [AA13].Value > 0 Or [AC13].Value > 0 Or [AE13].Value > 0 Then ActiveSheet.Shapes("beaufou").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beaufou").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beaulieusouslaroche
If [AA14].Value > 0 Or [AC14].Value > 0 Or [AE14].Value > 0 Then ActiveSheet.Shapes("beaulieusouslaroche").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beaulieusouslaroche").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beaurepaire
If [AA15].Value > 0 Or [AC15].Value > 0 Or [AE15].Value > 0 Then ActiveSheet.Shapes("beaurepaire").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beaurepaire").Fill.ForeColor.RGB = RGB(255, 255, 255)
'beauvoirsurmer
If [AA16].Value > 0 Or [AC16].Value > 0 Or [AE16].Value > 0 Then ActiveSheet.Shapes("beauvoirsurmer").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("beauvoirsurmer").Fill.ForeColor.RGB = RGB(255, 255, 255)
'bellevigny
If [AA17].Value > 0 Or [AC17].Value > 0 Or [AE17].Value > 0 Then ActiveSheet.Shapes("bellevigny").Fill.ForeColor.RGB = RGB(255, 255, 0) Else ActiveSheet.Shapes("bellevigny").Fill.ForeColor.RGB = RGB(255, 255, 255)
merci de votre retour
Cordialement, Dine
A voir également:
- Erreur compilation excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
je suggère ceci, qui suppose que les noms de communes sont dans la colonne ZZ.
à adapter, comme les noms de communes sont probablement ailleurs, ou pas...
je suggère ceci, qui suppose que les noms de communes sont dans la colonne ZZ.
For lig = 2 To 286 If Cells(lig, "AA").Value > 0 Or Cells(lig, "AC").Value > 0 Or Cells(lig, "AE").Value > 0 Then couleur = RGB(255, 255, 0) Else couleur = RGB(255, 255, 255) End If ActiveSheet.Shapes(Cells(lig, "ZZ")).Fill.ForeColor.RGB = couleur Next lig
à adapter, comme les noms de communes sont probablement ailleurs, ou pas...
bonjour,
merci de vos retour, je pense que je suis vraiment débutante car en essayant d'adapter, j'ai une erreur sur la ligne pour coloriser l'image
le nom de mes communes est en colonne z
Sub carte()
For lig = 2 To 286
If Cells(lig, "AA").Value > 0 Or Cells(lig, "AC").Value > 0 Or Cells(lig, "AE").Value > 0 Then
couleur = RGB(255, 255, 0)
Else
couleur = RGB(255, 255, 255)
End If
ActiveSheet.Shapes(Cells(lig, "Z")).Fill.ForeColor.RGB = couleur
Next lig
End Sub
Merci
Dine
merci de vos retour, je pense que je suis vraiment débutante car en essayant d'adapter, j'ai une erreur sur la ligne pour coloriser l'image
le nom de mes communes est en colonne z
Sub carte()
For lig = 2 To 286
If Cells(lig, "AA").Value > 0 Or Cells(lig, "AC").Value > 0 Or Cells(lig, "AE").Value > 0 Then
couleur = RGB(255, 255, 0)
Else
couleur = RGB(255, 255, 255)
End If
ActiveSheet.Shapes(Cells(lig, "Z")).Fill.ForeColor.RGB = couleur
Next lig
End Sub
Merci
Dine
peux-tu utiliser les balises de code quand tu partages du code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code (en utilisant "basic" pour du VBA)
quel est exactement le message d'erreur?
le nom de la commune en colonne Z est-il exactement identique au nom utilisé précédemment dans le code?
avec ceci, sur quelle ligne l'erreur se produit-elle?
quel est exactement le message d'erreur?
le nom de la commune en colonne Z est-il exactement identique au nom utilisé précédemment dans le code?
avec ceci, sur quelle ligne l'erreur se produit-elle?
Dim lig As Long, couleur As Long, sh As Shape For lig = 2 To 286 If Cells(lig, "AA").Value > 0 Or Cells(lig, "AC").Value > 0 Or Cells(lig, "AE").Value > 0 Then couleur = RGB(255, 255, 0) Else couleur = RGB(255, 255, 255) End If Set sh = ActiveSheet.Shapes(Cells(lig, "Z")) sh.Fill.ForeColor.RGB = couleur Next lig
c'est bien ce que je suspectais: les noms en colonne Z ne sont pas les mêmes noms que les noms des Shape.
ceci devrait peut-être faire mieux.
si tu as encore l'erreur, peux-tu passer en mode débogage, puis positionner le curseur, dans le code, sur "nom", puis sur "lig", pour découvrir quelle commune a un soucis?
EDIT: changé le code pour remplacer é par e
ceci devrait peut-être faire mieux.
Dim lig As Long, couleur As Long, sh As Shape, nom As String For lig = 2 To 286 If Cells(lig, "AA").Value > 0 Or Cells(lig, "AC").Value > 0 Or Cells(lig, "AE").Value > 0 Then couleur = RGB(255, 255, 0) Else couleur = RGB(255, 255, 255) End If nom = LCase(Cells(lig, "Z")) nom = Replace(nom, " ", "") nom = Replace(nom, "-", "") nom = Replace(nom, "â", "a") nom = Replace(nom, "é", "e") Set sh = ActiveSheet.Shapes(nom) sh.Fill.ForeColor.RGB = couleur Next lig
si tu as encore l'erreur, peux-tu passer en mode débogage, puis positionner le curseur, dans le code, sur "nom", puis sur "lig", pour découvrir quelle commune a un soucis?
EDIT: changé le code pour remplacer é par e
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
l'erreur est en ligne 13 sur le nom, j'ai passé ma souris dans le code sur nom et en exemple il m'indique larochesuryon tout attaché, le nom que j'avais donné a ma forme en premier mais depuis je l'ai renommé est-ce dû a cela ?
je désespère pas facile quand on connait pas grand chose.
l'erreur est en ligne 13 sur le nom, j'ai passé ma souris dans le code sur nom et en exemple il m'indique larochesuryon tout attaché, le nom que j'avais donné a ma forme en premier mais depuis je l'ai renommé est-ce dû a cela ?
je désespère pas facile quand on connait pas grand chose.