Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1161 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro excel

n°1940917
alex9522
Posté le 15-11-2009 à 19:56:34  profilanswer
 

Bonjour,      
Pouvez vous m'aider      
1er question      
je cherche à lancer une macro au changement de cellule ( sur toute la feuille)      
2eme question      
je cherche à changer la couleur de différentes cellules      
 
 1 2 3 4 5
A JACK    
B      
C PAUL    
,,,      
X      
si A1=jack alors A3 et A5 en rouge  
si A1= "" alors A3 et A5 en transparant  
si A1=Paul  alors A2 et A4 en vert
valable sur toute la colonne A1 à ...X1  
 
Merci par avance  

mood
Publicité
Posté le 15-11-2009 à 19:56:34  profilanswer
 

n°1941388
otobox
Maison fondée en 2005
Posté le 16-11-2009 à 23:17:43  profilanswer
 

Voilà la macro qui correspond à ton énoncé, si j'ai bien compris (il n'y a pas de lignes A à X, ce sont les colonnes qui sont repérées par des lettres).

 

Fais un clic droit sur l'onglet de la feuille où tu veux que la macro tourne puis clique sur "Visualiser le code"
Ensuite fait un copier-coller du code suivant :

 


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

 

Dim intLigne As Integer

 

'N° de ligne courante :
intLigne = ActiveCell.Row

 

'Si le numéro de ligne cliquée est inférieur ou égal à 22 (ligne "X" )
If intLigne <= 22 Then

 

   'Action suivant la valeur de la première cellule de la ligne courante :
    Select Case Cells(intLigne, 1)
        Case "Jack" 'Si la valeur de la cellule est égale à Jack :
            Cells(1, 3).Interior.Color = vbRed 'cellule A3 en rouge
            Cells(1, 5).Interior.Color = vbRed 'cellule A5 en rouge
       
        Case "Paul" 'Si la valeur de la cellule est égale à Paul :
            Cells(1, 2).Interior.Color = vbGreen 'cellule A2 en vert
            Cells(1, 4).Interior.Color = vbGreen 'cellule A4 en vert
       
        Case "" 'Si la cellule est vide
            Cells(1, 3).Interior.ColorIndex = xlNone 'cellule A3 tranparente
            Cells(1, 5).Interior.ColorIndex = xlNone 'cellule A5 tranparente
   
    End Select
   
End If
End Sub

 

De rien :)


Message édité par otobox le 16-11-2009 à 23:23:43

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1941406
alex9522
Posté le 17-11-2009 à 00:42:18  profilanswer
 

Merci de ta réponse aussi rapide
mais je n'arrive pas à la faire fonctionner
je tape "paul" en A1 rien ce passe
encore merci OtObOx

n°1941712
otobox
Maison fondée en 2005
Posté le 17-11-2009 à 19:28:59  profilanswer
 

3 pistes :
1) as tu effacé le code qui s'inscrit automatiquement après avoir fait "Visualiser le code" ? Il faut que le module soit vide avant de coller le code.
2) Tu tapes paul au lieu de Paul (cette macro est sensible à la casse)
3) Tu tapes sur la touche "entrer" et la cellule active est celle de la ligne en dessous et la macro ne marche pas (tapes plutôt la touche TAB) pour passer à la cellule à droite de la cellule A1

 

Dans le 3e cas il faut dans ce cas parcourir toute la liste A1:A22 pour mettre à jour les cellules. Je n'ai pas le temps de le faire pour le moment.


Message édité par otobox le 17-11-2009 à 19:29:21

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1941754
alex9522
Posté le 18-11-2009 à 00:43:33  profilanswer
 

Ok cela marche
je mets Paul en A1 cela change la couleur de B1 et D1 "couleur verte" donc super  
mais quand je mets Paul en A18 cela change la couleur de B1 et D1 "couleur verte"
j'aimerais Avoir la couleur sur B18 et D18
mon but est de faire un masque de saisi
donc soit "Paul ou Jack" sera ecrit de A1 à A1000
merci pour tous

n°1941856
seniorpapo​u
Posté le 18-11-2009 à 12:30:27  profilanswer
 

Bonjour,
l'usage de la mise en forme conditionnelle n'est-il pas adapté à ton problème??
Cordialement

n°1942059
otobox
Maison fondée en 2005
Posté le 18-11-2009 à 17:45:08  profilanswer
 

C'est vrai que la mise en forme conditionnelle convient parfaitement si tu veux que ça soit les cellules en face du nom qui changent de couleur.


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1942082
alex9522
Posté le 18-11-2009 à 19:31:18  profilanswer
 

Le problème de la forme conditionnelle est que Je ne marque pas en B1 et D1 Paul, je le marque juste en A1 donc A1 change de couleur mais pas B1 ni D1
Merci comme même

n°1942117
seniorpapo​u
Posté le 18-11-2009 à 21:10:31  profilanswer
 

Bonsoir,
tu mets pour b1 et d1 la formule:  =A1="jack"dans la mise en forme, tu choisis ta couleur,  
tu ajoutes une deuxième condition avec la formule: =A1="Paul", tu choisis sa couleur et tu étends sur les autres cellules.
Codialement


Message édité par seniorpapou le 18-11-2009 à 21:16:09
n°1942143
alex9522
Posté le 18-11-2009 à 22:19:13  profilanswer
 

ok nickel
est si j'ai une 4eme condition?

mood
Publicité
Posté le 18-11-2009 à 22:19:13  profilanswer
 

n°1942174
seniorpapo​u
Posté le 19-11-2009 à 06:40:02  profilanswer
 

Bonjour,
que veux tu dire ??
Quelle version d'Excel as-tu?
Cordialement

n°1942178
alex9522
Posté le 19-11-2009 à 07:43:02  profilanswer
 

version 2003 d'Excel
dans format/mise en forme conditionnelle
j'ai la possibilité de mettre que 3 conditions et j'ai besoin d'une 4eme
condition1         =A1="jack"     couleur rouge  ok
condition2         =A1="Paul"     couleur vert  ok
condition3         =A1="Alex"     couleur bleu  ok
condition4         =A1="Bob"     couleur jaune   impossible car maxi 3 conditions
Cordialement

n°1942180
seniorpapo​u
Posté le 19-11-2009 à 08:07:28  profilanswer
 

RE,
quelle idée que de définir ses besoins au compte goutte!!!!!
où veux-tu en venir exactement??
Si c'est :
j'ai des noms en colonne A, et pour chaque nom en colonne A je veux définir une couleur spécifique en colonne B et D sur la ligne correspondant au nom...
alors le problème est différent et une macro est necessaire.....retour à la case OtObOx
et je pense qu'il te faudra définir, sur une feuille, la couleur désirée pour chaque nom.  
 
A tout à l'heure


Message édité par seniorpapou le 19-11-2009 à 08:08:16
n°1942536
alex9522
Posté le 19-11-2009 à 19:28:58  profilanswer
 

Je tenais à vous remercier de votre aide à tous les 2, j'ai trouver la solution grâce à vous ( je n'avais pas besoin d'une 4eme condition )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro excel

 

Sujets relatifs
macro excel 2007Macro excel pour colorer les cellules vides
Macro Excel pour ajouter en caractère dans les cellules.Macro excel interrogeant un tableau par le nom de la colonne
[Résolu] Macro excel pour tri tableau par semaineCatcher une alerte dans une macro excel
Macro Excel : tableau dynamiqueBouton Excel associé à une macro
problème de filtre vba macro ExcelMacro Excel
Plus de sujets relatifs à : Macro excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR