A voir également:
- VBA-E - Appliquer macro à une colonne entière
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier colonne excel - Guide
- É - Guide
20 réponses
Bonjour,
Essaie ça :
Ça execute la macro quand on change de valeur dans une colonne. Il faudra l'adapter.
l'info vient de michel_m.
Bon courage
Essaie ça :
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("O1:O160")) Is Nothing Then: Exit Sub Application.Run "'" & Excel.ActiveWorkbook.Path & "\Monfichier.xls'!MaMacro" End Sub
Ça execute la macro quand on change de valeur dans une colonne. Il faudra l'adapter.
l'info vient de michel_m.
Bon courage
Fou_Du_Guidon
Messages postés
320
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
9 juillet 2010
38
25 juin 2009 à 10:16
25 juin 2009 à 10:16
Bonjour, trés bonne question. je vais suivre le sujet. Peut-être que je me coucherai moi con.
Tydher
Messages postés
123
Date d'inscription
vendredi 5 juin 2009
Statut
Membre
Dernière intervention
17 mai 2011
6
25 juin 2009 à 10:31
25 juin 2009 à 10:31
En gros tu veux faire une macro pour toute la colonne O.
Si elle part du 0160 et quelle continue jusqu'a 01000 par exemple il faudrait que tu fasse une boucle qui test si la case du dessous est vide, si c'est le cas la macro s'applique.
Si la colonne O va de O1 à o160 ou plus, tu effectue le meme test
Par exemple avec un compteur :
k = 1
While (Cells(k, 1).Value <> "")
ta macro
...
k = k + 1
Si elle part du 0160 et quelle continue jusqu'a 01000 par exemple il faudrait que tu fasse une boucle qui test si la case du dessous est vide, si c'est le cas la macro s'applique.
Si la colonne O va de O1 à o160 ou plus, tu effectue le meme test
Par exemple avec un compteur :
k = 1
While (Cells(k, 1).Value <> "")
ta macro
...
k = k + 1
Comme ceci ?Ca ne fonctionne pas, je n'ai pas du comprendre !
Private Sub Worksheet_SelectionChange(ByVal Target As Range) k = 1 While (Cells(k, 1).Value <> "") If Range("L160") <> "" Then Range("M160").Interior.Color = RGB(51, 51, 255) k = k + 1 Else: Range("M160").Interior.Color = RGB(255, 255, 255) End If wend end sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il me trouve une erreur lors de l'execution de ton code Lila_35 !
J'ai aussi un conflit entre 2 conditions !
entre
et
Selon que je place une macro ou l'autre en premier, une seule marche, il y a un conflit !
Il faudrait que je change la procédure d'une des macros ! mais qu'elle ressemble quand même à
merci!
J'ai aussi un conflit entre 2 conditions !
entre
Private Sub Worksheet_Change(ByVal Target As Range) If Range("M160") <> "" Then Range("L160").Interior.Color = RGB(33, 33, 255) Else: Range("L160").Interior.Color = RGB(48, 48, 255)
et
If Range("O160") <> "" Then Range("L160").Interior.Color = RGB(51, 51, 255) Else: Range("L160").Interior.Color = RGB(255, 255, 255)
Selon que je place une macro ou l'autre en premier, une seule marche, il y a un conflit !
Il faudrait que je change la procédure d'une des macros ! mais qu'elle ressemble quand même à
Private Sub Worksheet_Change(ByVal Target As Range)
merci!
Le nom de ta sub d'origine était différent essaie les différents
C'est le Intersect(Target, Range("ta colonne")) qui marche bien.
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("M1:LM160")) Is Nothing Then: Exit Sub Range("L160").Interior.Color = RGB(33, 33, 255) Else: Range("L160").Interior.Color = RGB(48, 48, 255) end sub
C'est le Intersect(Target, Range("ta colonne")) qui marche bien.
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("M1:M160")) Is Nothing Then: Exit Sub Range("L160").Interior.Color = RGB(33, 33, 255) Else: Range("L160").Interior.Color = RGB(48, 48, 255) end sub
Désolé
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("M1:M160")) Is Nothing Then: Exit Sub Range("L160").Interior.Color = RGB(33, 33, 255) Else Range("L160").Interior.Color = RGB(48, 48, 255) ENd if end subJe ne fais pas très attention a ce que je colle.
Ça devrait être mieux, non?
Merci Lila ! encore une erreur, Erreur : "else sans if", je ne comprends pas pourtant il y a un if !
Plus d'erreur, j'ai fai un retour à la ligne après then.
Mais le code ne fonctionne pas, je me place a M170 et la macro ne colorit pas la colonne L.
Une idée?
Mais le code ne fonctionne pas, je me place a M170 et la macro ne colorit pas la colonne L.
Une idée?
Peux tu exposer un petit peu plus la fonctionnalité que tu souhait mettre en place?
Que se passe t il dans la colonne M et L ?
Que se passe t il dans la colonne M et L ?
Si n'importe qu'elle cellule de la colonne M est remplit alors la cellule de la même ligne de la colonne L se met de couleur bleu, si on efface la cellule M, L redevient blanc.
Et si on entre un caractère dans L, M devient bleu, si on efface la donné dans L, M redevient blanc.
Et si on entre un caractère dans L, M devient bleu, si on efface la donné dans L, M redevient blanc.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
26 juin 2009 à 11:34
26 juin 2009 à 11:34
bonjour,
bien que je fasse des codes non fonctionnels ( ton message du 11/6)
si tu disais exactement ce que tu désirais? pour l'instant que tu changes une valeur dans M1:160 tu change la couleur dans L160 et que L160...
quand tu es dans M170 ça réagit pas puisque ta plage d'action est M1:M160...
donc
bien que je fasse des codes non fonctionnels ( ton message du 11/6)
si tu disais exactement ce que tu désirais? pour l'instant que tu changes une valeur dans M1:160 tu change la couleur dans L160 et que L160...
quand tu es dans M170 ça réagit pas puisque ta plage d'action est M1:M160...
donc
Je viens de changer la plage jusqu'a 170, et ca ne fonctionne pas, pourtant le code à l'air fonctionnel !
merci.
merci.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
26 juin 2009 à 12:01
26 juin 2009 à 12:01
de rien.
Mon code a l'air fonctionnel
alors, pourquoi poses tu des questions ?
Mon code a l'air fonctionnel
alors, pourquoi poses tu des questions ?