Besoin d'un coup de pouce pour une macro
Résolu
dmadkami
-
dmadkami -
dmadkami -
Bonjour,
voilà j'ai un fichier excel qui répertorie tous les produits chimiques que j'utilise.
J'ai fais une macro pour "allumer" en rouge la ligne qui correspond à mon produit dès que j'ai une certaine donnée dans une cellule : des colonnes CU à DC j'entre une information sur la toxicité de mon produit et selon la donnée je veux que toute la ligne se colorie en rouge. j'ai tapé le code suivant mais ça déconne et je trouve pas pourquoi (ça fait deux jours que je suis deçu, je suis un débutant en macro, alors j'ai besoin d'aide):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Byte, plage As Range
If Intersect(Target, Range("CU3:CU999")) Is Nothing Then: Exit Sub
lig = Target.Row
Set plage = Range(Cells(lig, 1), Cells(lig, 144))
Select Case Target
Case Is = "R39 Danger d'effets irréversibles très graves."
plage.Interior.ColorIndex = 3
Case Is = "R40 Effets cancérogène suspecté : preuves insuffisantes."
plage.Interior.ColorIndex = 3
Case Is = "R45 Peut provoquer le cancer."
plage.Interior.ColorIndex = 3
Case Is = "R46 Peut provoquer des altérations génétiques héréditaires."
plage.Interior.ColorIndex = 3
Case Is = "R48 Risque d'effets graves pour la santé en cas d'exposition prolongée."
plage.Interior.ColorIndex = 3
Case Is = "R49 Peut provoquer le cancer par inhalation."
plage.Interior.ColorIndex = 3
Case Is = "R60 Peut altérer la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R61 Risque pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R62 Risque possible d'altération de la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R63 Risque possible pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R64 Risque possibles pour les bébés nourris au lait maternel."
plage.Interior.ColorIndex = 3
Case Is = "R68 Possibilité d'effets irréversibles."
plage.Interior.ColorIndex = 3
Case Else
plage.Interior.ColorIndex = -4142
End Select
Set plage = Nothing
End Sub
La ligne "lig = Target.Row" s'affiche surlignée en jaune donc je pense que l'erreur vient de là mais je vois pas où.
Merci d'avance pour votre aide
voilà j'ai un fichier excel qui répertorie tous les produits chimiques que j'utilise.
J'ai fais une macro pour "allumer" en rouge la ligne qui correspond à mon produit dès que j'ai une certaine donnée dans une cellule : des colonnes CU à DC j'entre une information sur la toxicité de mon produit et selon la donnée je veux que toute la ligne se colorie en rouge. j'ai tapé le code suivant mais ça déconne et je trouve pas pourquoi (ça fait deux jours que je suis deçu, je suis un débutant en macro, alors j'ai besoin d'aide):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Byte, plage As Range
If Intersect(Target, Range("CU3:CU999")) Is Nothing Then: Exit Sub
lig = Target.Row
Set plage = Range(Cells(lig, 1), Cells(lig, 144))
Select Case Target
Case Is = "R39 Danger d'effets irréversibles très graves."
plage.Interior.ColorIndex = 3
Case Is = "R40 Effets cancérogène suspecté : preuves insuffisantes."
plage.Interior.ColorIndex = 3
Case Is = "R45 Peut provoquer le cancer."
plage.Interior.ColorIndex = 3
Case Is = "R46 Peut provoquer des altérations génétiques héréditaires."
plage.Interior.ColorIndex = 3
Case Is = "R48 Risque d'effets graves pour la santé en cas d'exposition prolongée."
plage.Interior.ColorIndex = 3
Case Is = "R49 Peut provoquer le cancer par inhalation."
plage.Interior.ColorIndex = 3
Case Is = "R60 Peut altérer la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R61 Risque pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R62 Risque possible d'altération de la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R63 Risque possible pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R64 Risque possibles pour les bébés nourris au lait maternel."
plage.Interior.ColorIndex = 3
Case Is = "R68 Possibilité d'effets irréversibles."
plage.Interior.ColorIndex = 3
Case Else
plage.Interior.ColorIndex = -4142
End Select
Set plage = Nothing
End Sub
La ligne "lig = Target.Row" s'affiche surlignée en jaune donc je pense que l'erreur vient de là mais je vois pas où.
Merci d'avance pour votre aide
A voir également:
- Besoin d'un coup de pouce pour une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment télécharger toutes les photos de google photos d'un coup ? - Guide
- Couper une video - Guide
- Offre coup de pouce orange fibre - Accueil - Box & Connexion Internet
- Jitbit macro recorder - Télécharger - Confidentialité
3 réponses
Déjà, déclare lib comme Integer ou Long car si tu vas jusqu'à la ligne 999 tu vas avoir une erreur Dépassement de Capacité
Ensuite, tu peux me donner le numéro de l'erreur qui apparait ?
Ensuite, tu peux me donner le numéro de l'erreur qui apparait ?
Bonjour,
Dim lig As Byte ----> lig ne peut être supérieur à 255
Il faut donc déclarer lig as Integer
Bonne continuation
Dim lig As Byte ----> lig ne peut être supérieur à 255
Il faut donc déclarer lig as Integer
Bonne continuation
"f894009 44Messages postés
25 novembre 2007Date d'inscription
18 août 2010Dernière intervention
18 aoû 2010 à 18:31
Bonjour,
Dim lig As Byte ----> lig ne peut être supérieur à 255
Il faut donc déclarer lig as Integer "
Merci pour ta réponse j'ai entré le code suivant mais ça ne marche toujours pas:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Integer, plage As Range
If Intersect(Target, Range("CU3:CU999")) Is Nothing Then: Exit Sub
lig = Target.Row
Set plage = Range(Cells(lig, 1), Cells(lig, 144))
Select Case Target
Case Is = "R39 Danger d'effets irréversibles très graves."
plage.Interior.ColorIndex = 3
Case Is = "R40 Effets cancérogène suspecté : preuves insuffisantes."
plage.Interior.ColorIndex = 3
Case Is = "R45 Peut provoquer le cancer."
plage.Interior.ColorIndex = 3
Case Is = "R46 Peut provoquer des altérations génétiques héréditaires."
plage.Interior.ColorIndex = 3
Case Is = "R48 Risque d'effets graves pour la santé en cas d'exposition prolongée."
plage.Interior.ColorIndex = 3
Case Is = "R49 Peut provoquer le cancer par inhalation."
plage.Interior.ColorIndex = 3
Case Is = "R60 Peut altérer la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R61 Risque pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R62 Risque possible d'altération de la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R63 Risque possible pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R64 Risque possibles pour les bébés nourris au lait maternel."
plage.Interior.ColorIndex = 3
Case Is = "R68 Possibilité d'effets irréversibles."
plage.Interior.ColorIndex = 3
Case Else
plage.Interior.ColorIndex = -4142
End Select
Set plage = Nothing
End Sub
25 novembre 2007Date d'inscription
18 août 2010Dernière intervention
18 aoû 2010 à 18:31
Bonjour,
Dim lig As Byte ----> lig ne peut être supérieur à 255
Il faut donc déclarer lig as Integer "
Merci pour ta réponse j'ai entré le code suivant mais ça ne marche toujours pas:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Integer, plage As Range
If Intersect(Target, Range("CU3:CU999")) Is Nothing Then: Exit Sub
lig = Target.Row
Set plage = Range(Cells(lig, 1), Cells(lig, 144))
Select Case Target
Case Is = "R39 Danger d'effets irréversibles très graves."
plage.Interior.ColorIndex = 3
Case Is = "R40 Effets cancérogène suspecté : preuves insuffisantes."
plage.Interior.ColorIndex = 3
Case Is = "R45 Peut provoquer le cancer."
plage.Interior.ColorIndex = 3
Case Is = "R46 Peut provoquer des altérations génétiques héréditaires."
plage.Interior.ColorIndex = 3
Case Is = "R48 Risque d'effets graves pour la santé en cas d'exposition prolongée."
plage.Interior.ColorIndex = 3
Case Is = "R49 Peut provoquer le cancer par inhalation."
plage.Interior.ColorIndex = 3
Case Is = "R60 Peut altérer la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R61 Risque pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R62 Risque possible d'altération de la fertilité."
plage.Interior.ColorIndex = 3
Case Is = "R63 Risque possible pendant la grossesse d'effets néfastes pour l'enfant."
plage.Interior.ColorIndex = 3
Case Is = "R64 Risque possibles pour les bébés nourris au lait maternel."
plage.Interior.ColorIndex = 3
Case Is = "R68 Possibilité d'effets irréversibles."
plage.Interior.ColorIndex = 3
Case Else
plage.Interior.ColorIndex = -4142
End Select
Set plage = Nothing
End Sub