Malliki
Messages postés6Date d'inscriptionlundi 26 mars 2007StatutMembreDernière intervention26 mars 2007
-
26 mars 2007 à 09:21
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
26 mars 2007 à 22:59
Bonjour !!!
Je suis actuellement entrain de faire une macro sur excel avec l'aide de Visual Basic. Le but de la macro est de colorier l'arrière-plan d'une cellule en fonction de son texte (Ex : si le nom = UBS alors on colorie en jaune etc...). Cette macro fonctionne mais la seule chose que je n'arrive pas, c'est que la macro marche pr la première cellule d'une colonne mais ne va pas à la suivante. Pourriez-vous m'aider svp
mallika
P.S. voici en copie la macro
Application.ScreenUpdating = True
Dim feuille As String
If ActiveCell = "NOVARTIS" Then
ActiveCell.Offset(0, -9).Range("A1").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 9).Range("A1").Select
Else
If ActiveCell = "ADECCO" Then
ActiveCell.Offset(0, -9).Range("A1").Select
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 9).Range("A1").Select
Else
If ActiveCell = "ABB" Then
ActiveCell.Offset(0, -9).Range("A1").Select
With Selection.Interior
.ColorIndex = 32
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 9).Range("A1").Select
Else
If ActiveCell = "CREDIT" Then
ActiveCell.Offset(0, -9).Range("A1").Select
With Selection.Interior
.ColorIndex = 16
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 9).Range("A1").Select
Else
If ActiveCell = "NESTLE" Then
ActiveCell.Offset(0, -9).Range("A1").Select
With Selection.Interior
.ColorIndex = 23
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 9).Range("A1").Select
Else
If ActiveCell = "UBS" Then
ActiveCell.Offset(0, -9).Range("A1").Select
With Selection.Interior
.ColorIndex = 41
.Pattern = xlSolid
End With
ActiveCell.Offset(0, 9).Range("A1").Select
Else
End If
End If
End If
End If
End If
End If
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 26 mars 2007 à 11:15
Tu y est presque, je pense
Il te faudrait déclarer un "range" valide plutôt que
For Each x In Range("B")
Tu pourrais sélectionner une plage et utiliser le mot Selection
For Each x in Selection
t'assurer que c'est bien le texte que tu veux lire
If ActiveCell.Text = "NOVARTIS" Then
Ici, tu mets des 9 et des -9 selon le texte... est-ce bien cela que tu veux ?
ActiveCell.Offset(0, -9).Range("A1").Select
Si oui, tu dois t'assurer de connaître la colonne où est inscrit le texte pour éviter d'aller mettre de la couleur dans une colonne inexistante comme -9 si tu cherches en A ou B ...
Malliki
Messages postés6Date d'inscriptionlundi 26 mars 2007StatutMembreDernière intervention26 mars 2007 26 mars 2007 à 12:38
en fait ce ki foire c est qu'il exécute la macro juste pr une cellule et que j'aimerais qu'une fois la première cellule remplie par une couleur il passe à la cellule d'en dessous et qu'une fois la colonne terminée il passe à celle d apres ??