IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Evenementiel sur Range avec plusieurs cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut Evenementiel sur Range avec plusieurs cellules
    Salut!

    Je suis en train de travailler sur une macro évènementielle qui doit se déclencher quand je me mets sur certaines cellules mais je n'arrive pas a le faire fonctionner.

    Voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        'permet de sortir de la procédure si plus d'une cellule est sélectionnée
        '(sinon la suite de la macro renvoie un message d'erreur)
        If Target.Count > 1 Then
     
        Exit Sub
     
        MsgBox "Vous venez de modifier la cellule " & Target.Address & _
            " (" & Target.Value & ")"
     
        Else
        'recherche si la cellule selectionnée correspond a l'une des cellules de l'emploi du temps
        cell = ActiveCell.Address
        For Each cell In TableauCible
            If Target.Address = cell Then
     
            ' code a executer
     
            End If
     
     
        Next cell
     
     
        End If
     
    End Sub
    Le code est groso modo un exemple trouvé sur le net avec quelques modifs.

    Quelqu'un a des indications pour réussir a lançer le traitement dès qu'un certain range de cellules est changé ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    Bonjour,
    Je comprends pas tout pcq les variables sont pas déclarées
    C'est quoi Tableaucible ?

  3. #3
    Membre très actif Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 563
    Par défaut
    Voilà le bout de code qui manquait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Dim Tableaucible As String
    Tableaucible = Range("B2:F10")

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    Je suis en train d'essayer de voir pour ton code mais tu as un soucis avec les types apparemment : tu déclare Tableau As String, tu peux pas lui affecter un Objet Range !!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    J'ai trouvé un code qui fonctionne, mais il utilise une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim ZoneRose, Cellule As Range
    'J'ai défini arbitrairement cette plage pour tester :)
    Set ZoneRose = Range("A1:B10")
    'Pour bien visualiser :
    ZoneRose.Interior.ColorIndex = 38
     
    For Each Cellule In ZoneRose
        If Cellule.Address = Target.Address Then
            MsgBox "Je suis dans la zone ROSE !!!"
        End If
    Next Cellule
     
    End Sub
    Reste à voir si l'exécution deviendrait longue pour une grande plage

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    tu peux utiliser la méthode Intersect:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim ZoneCible As Range, Cellule As Range
     
        Set ZoneCible = Range("A1:B10")
     
        If Not Intersect(ZoneCible, Target) Is Nothing Then _
            MsgBox "Je suis dans la zone " & ZoneCible.Address
     
    End Sub


    bon week end
    michel

Discussions similaires

  1. [Toutes versions] compter le nombre de ligne ecrites dans un range de plusieurs cellules fusionnée
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2012, 16h55
  2. IF sur valeurs de plusieurs cellules
    Par yieiii dans le forum IHM
    Réponses: 3
    Dernier message: 20/08/2010, 21h47
  3. [XL-2007] Comparaison avec plusieurs cellules
    Par AMO05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2009, 13h58
  4. [VBA-E] selection de plusieurs rangés avec des cellules définies
    Par noir_desir dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 24/02/2007, 14h26
  5. Regexp : sur expression avec plusieurs itération
    Par Yann F-FLYC dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/09/2006, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo