EXCEL --> pb cellule sélectionnée coloriée

Résolu
yannperceval1 Messages postés 6 Statut Membre -  
pecheur67 Messages postés 5 Statut Membre -
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.

9 réponses

  1. Katarinas Messages postés 26 Statut Membre 2
     
    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 ?

    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    If Target.Address = "$C$1" Then..

    eric
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  4. yannperceval1 Messages postés 6 Statut Membre
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yannperceval1 Messages postés 6 Statut Membre
     
    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.
    0
  7. yannperceval1 Messages postés 6 Statut Membre
     
    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
    0
  8. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  9. Papou93 Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   59
     
    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.
    0
  10. pecheur67 Messages postés 5 Statut Membre 1
     
    probleme je n'arrive pas à travailler avec excel car à chaque fois ke j'ouvre classeur je selectionne une cellule plusieurs selectionnes comment faire pour rendre feuille excel normale
    0