EXCEL --> pb cellule sélectionnée coloriée
Résolu
yannperceval1
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
pecheur67 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
pecheur67 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
salut, je voudrais que la cellule sélectionnée soit coloriée et que les autres soit blanche/transparente. Mais que ceci fonctionne pour tout le temps ou j'utilise excel et ceci pour quelques cellules(ou toutes).
J'ai pensé à faire:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1:B9]="FAUX"
If Target.Select = "$C$1" Then
[B1] = "VRAI"
End If
If Target.Select = "$C$2" Then
[B2] = "VRAI"
End If
End Sub
et sur C1, C2...C9 mettre une mise en forme conditionnel a partir de B1, B2, .... B9
Si je fait un sub simple, ca marche quand je fait executer la macro.
Cependant, j'aimerai que ca fonctionne tout le temps à chaque changement de cellule sélectionnée.
Merci.
J'ai pensé à faire:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1:B9]="FAUX"
If Target.Select = "$C$1" Then
[B1] = "VRAI"
End If
If Target.Select = "$C$2" Then
[B2] = "VRAI"
End If
End Sub
et sur C1, C2...C9 mettre une mise en forme conditionnel a partir de B1, B2, .... B9
Si je fait un sub simple, ca marche quand je fait executer la macro.
Cependant, j'aimerai que ca fonctionne tout le temps à chaque changement de cellule sélectionnée.
Merci.
A voir également:
- EXCEL --> pb cellule sélectionnée coloriée
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Word et excel gratuit - Guide
9 réponses
Si tu veu que ta macro soit activé a chaque changement que tu fais sur ta feuille alors il te suffis de lancer ta macro a partir de Worksheet_SelectionChange
Cela fonctionne il ?
Cela fonctionne il ?
et si tu veux faire plus court:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1:B9] = "FAUX"
Set i = Application.Intersect(Range("C1:C9"), Target)
If i Is Nothing Then
'la cellule n'appartient pas à la zone C1:C9
Else
Target.Offset(0, -1) = "VRAI"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1:B9] = "FAUX"
Set i = Application.Intersect(Range("C1:C9"), Target)
If i Is Nothing Then
'la cellule n'appartient pas à la zone C1:C9
Else
Target.Offset(0, -1) = "VRAI"
End If
End Sub
merci eriiic mais ca ne marche pas...
enfin Worksheet_SelectionChange ne marche pas (les cellules B1 à B9 restent vides)
c'est ca qui me pose problème: je ne comprend pas pourquoi
mon code (bien que long) ne me pose pas de problème. en fait je pensais meme à le mettre dans une autre macro
Pour n'importe quel code, ca ne marche pas
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1:B9] = "FAUX"
Application.run("macro2")
End If
End Sub
Sub macro2
'mon code
MsgBox "Ca marche"
End Sub
enfin Worksheet_SelectionChange ne marche pas (les cellules B1 à B9 restent vides)
c'est ca qui me pose problème: je ne comprend pas pourquoi
mon code (bien que long) ne me pose pas de problème. en fait je pensais meme à le mettre dans une autre macro
Pour n'importe quel code, ca ne marche pas
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B1:B9] = "FAUX"
Application.run("macro2")
End If
End Sub
Sub macro2
'mon code
MsgBox "Ca marche"
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de m'apercevoir que Private sub ne démarre pas tout seul quand on ouvre le classeur excel.
si je met
Private Sub tedf()
MsgBox "Ca marche."
End Sub
ca marche pas
par contre, si je mets
Private Sub auto_open()
MsgBox "Ca marche."
End Sub
ca fonctionne. est-ce que c'est pour la meme raison que Private Sub Worksheet_SelectionChange ne marche pas.
ne faudrait-il pas ajouter un auto_open à Private Sub Worksheet_SelectionChange? ......ou autre.
si je met
Private Sub tedf()
MsgBox "Ca marche."
End Sub
ca marche pas
par contre, si je mets
Private Sub auto_open()
MsgBox "Ca marche."
End Sub
ca fonctionne. est-ce que c'est pour la meme raison que Private Sub Worksheet_SelectionChange ne marche pas.
ne faudrait-il pas ajouter un auto_open à Private Sub Worksheet_SelectionChange? ......ou autre.
J'ai trouver. en fait je n'avais pas écrit Private Sub Worksheet_SelectionChange dans ThisWorkbook.
Pour les débutants comme moi, qui n'ont pas encore trouver la solution, ceci peut les interesser.
Il faut faire Alt+F11, puis explorateur de projet (aller dans ThisWorkbook). utiliser l'évennement voulu (répertorié dans explorateur d'objet)
petite adresse utile: pb private sub worksheet selectionchange
Merci
Pour les débutants comme moi, qui n'ont pas encore trouver la solution, ceci peut les interesser.
Il faut faire Alt+F11, puis explorateur de projet (aller dans ThisWorkbook). utiliser l'évennement voulu (répertorié dans explorateur d'objet)
petite adresse utile: pb private sub worksheet selectionchange
Merci
Dans la feuille (worksheet) plutôt pour un tel évènement. A mon avis si ta macro marche c'est qu'elle y est aussi présente.
Pour voir les évènement d'une feuille le plus simple est de faire un clic droit sur le nom de l'onglet en bas et de choisir "visualiser le code".
VBA s'ouvrira directement dans la bonne fenetre de code.
Dans la liste deroulante de gauche choisir "worksheet", la liste deroulante de droite contiendra automatiquement tous les evenements gérables.
Afficher maintenant "ThisWhorkbook" et là on peut voir les evenements d'un classeur de la même manière.
eric
Pour voir les évènement d'une feuille le plus simple est de faire un clic droit sur le nom de l'onglet en bas et de choisir "visualiser le code".
VBA s'ouvrira directement dans la bonne fenetre de code.
Dans la liste deroulante de gauche choisir "worksheet", la liste deroulante de droite contiendra automatiquement tous les evenements gérables.
Afficher maintenant "ThisWhorkbook" et là on peut voir les evenements d'un classeur de la même manière.
eric
Bonjour yanneperceval1,
Voici une routine à écrire dans un module de code :
Sub CoulFond(Plage As Range)
' Réinitialise la couleur de fond de la feulle
ActiveSheet.Cells.Interior.ColorIndex = xlAutomatic
' Balaie la plage nommée
For Each cel In [Plage].Cells
If cel.Address = ActiveCell.Address Then
cel.Interior.ColorIndex = 6
End If
Next
End Sub
Il ne te reste plus qu'à nommer un groupe de cellules (avec un nom différent pour chaque feuille), et à faire appel à cette procédure dans l'événement 'SelectionChange' de chaque feuille. Exemple :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CoulFond [maplage]
End Sub
Dans cet exemple, 'maplage' est le nom du groupe de cellules; cette plage peut être constituée de colonnes contigües ou non contigües. (ColorIndex = 6" définit la couleur de fond à Jaune.
Espérant t'avoir aidé.
Cordialement.
Voici une routine à écrire dans un module de code :
Sub CoulFond(Plage As Range)
' Réinitialise la couleur de fond de la feulle
ActiveSheet.Cells.Interior.ColorIndex = xlAutomatic
' Balaie la plage nommée
For Each cel In [Plage].Cells
If cel.Address = ActiveCell.Address Then
cel.Interior.ColorIndex = 6
End If
Next
End Sub
Il ne te reste plus qu'à nommer un groupe de cellules (avec un nom différent pour chaque feuille), et à faire appel à cette procédure dans l'événement 'SelectionChange' de chaque feuille. Exemple :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CoulFond [maplage]
End Sub
Dans cet exemple, 'maplage' est le nom du groupe de cellules; cette plage peut être constituée de colonnes contigües ou non contigües. (ColorIndex = 6" définit la couleur de fond à Jaune.
Espérant t'avoir aidé.
Cordialement.