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 :

[VBA-E]Selection multiple


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut [VBA-E]Selection multiple
    Bonjour!
    Voila, j'ai un petit soucis pour l'utilisation de "Target.Value" dans une fonction Worksheet.change.
    En fait, cette fonction pose en premier une condition sur la valeur de la "target.value":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim jour As Date 
    Dim dateF As Date 
     
    If Target.Value = "Formation" Or Target.Value = "Vacances" Or ...
    le probleme se pose lorsque dans ma feuille je procède a des selections multiples...vba me remvoit une erreur, ce qui semble logique puisqu'il ny a pas 1 target.value mais un ensemble de cellule active.
    je comprend donc bien pkoi ca ne marche pas.... mais je ne sais pas comment y remédier!!!
    Il faudrait que je pose une condition superieur, pour laquelle on teste la target value seulement si la selection nest pas multiple ou qqchose dans le genre...
    enfin tout ca pour dire que je ne sait absolument pas comment procéder..
    si qqun a une réponse..merci davances!![/code]

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Target.Cells.Count te dira si tu as une selection multiple

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Sinon en traitant chaque cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim c As Range
        For Each c In Target.Cells
            Select Case True
                Case c = "Formation"
                    MsgBox c
                Case c = "Vacances"
                    MsgBox c
            End Select
        Next
    End Sub

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Normalement, avec l'évènement Change, tu ne dois pas avoir de problèmes car dans ce cas, Target renvoie la cellule active et non la plage sélectionnée.

    Par contre, le problème surviendra avec l'évènement SelectionChange, car target renvoie la plage sélectionnée, qu'elle soit uni ou multi cellulaire.

    De toutes façons, quel que soit l'évènement considéré, tu peux tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if target.cells.count=1 and (target.value = ... or target value = ...) then
    Ok?

    Pierre Fauconnier
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut
    Ca marche super avec le count!!! merci beaucoup!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Select multiple
    Par lfournial dans le forum Struts 1
    Réponses: 20
    Dernier message: 24/02/2011, 12h14
  2. [VBA-excel] Selection multiple de ligne
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/10/2006, 12h32
  3. <select multiple ...>
    Par ayobo dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 08h49
  4. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16
  5. [VBA-E] Sélection feuilles sous excel
    Par Mystic eyes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2004, 13h27

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