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 :

Liste en cascade avec choix multiples et Recherche V [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut Liste en cascade avec choix multiples et Recherche V
    Bonjour,

    Des posts sur les listes déroulantes en cascade, j'en ai trouvé pas mal sur le forum mais cela ne correspond pas a ce que je voudrais faire.

    Je dispose de 2 feuilles, l'une nommée Links contenant des tableaux et la seconde nommée Actions dans laquelle je souhaiterais avoir des listes en cascade.
    Il faudrait que parmi les listes en cascades, je puisse faire des choix multiples sur la feuille "Actions" et qu'en fonction de ces choix, Excel puisse renseigner certaines cellules (comme pour les recherche V)

    Je joins un fichier pour plus de clarté.

    Cordialement
    Graphikris.

  2. #2
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Voici ce que j'ai trouvé aujourd'hui sur les recherches multiples mais je n'arrive pas a faire fonctionner l'exemple : j'ai bien crée un module en y insérant le code ci dessous mais j'ai "Erreur de syntaxe" sur la ligne 5

    http://boisgontierjacques.free.fr/pa...hercheMultiple

    Recherche multiple
    Sur l'exemple, on recherche plusieurs codes séparés par le caractère ",".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function RechercheMult(couleur As String, maTable As Range)
    **Application.Volatile
    **a = Split(couleur, ",")
    **b = maTable
    **For i = LBound(a) To UBound(a)
    *****For j = LBound(b) To UBound(b)
    ********If UCase(a(i)) = UCase(b(j, 1)) Then tmp = tmp & b(j, 2) & ","
    ****Next j
    **Next i
    **If tmp <> "" Then tmp = Left(tmp, Len(tmp) - 1)
    **RechercheMult = tmp
    End Function
    Nouveau fichier avec Function Boisgontier

  3. #3
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Bonjour,
    En fait 2 problèmes:
    a) dans le code de la fonction il y a des caractères vu comme des espaces mais qui n'en sont pas ?!! De ce fait, le blocage de la macro (avec apparition d'un carré noir sur le caractère où cela bloque) !
    Ainsi ce code marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function RechercheMult(Process As String, TableProcess As Range)
    Application.Volatile
    a = Split(Process, "-")    '--- delimiter = 1 caractère (par défaut: " ")
    b = TableProcess
    For i = LBound(a) To UBound(a)
    For j = LBound(b) To UBound(b)
    If UCase(a(i)) = UCase(b(j, 1)) Then tmp = tmp & b(j, 2) & ","
    Next j
    Next i
    If tmp <> "" Then tmp = Left(tmp, Len(tmp) - 1)
    RechercheMult = tmp
    End Function
    b) dans la fonction Split, le 'délimiteur' doit être 1 caractère (et pas une chaine de caractères).

    Cordialement

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    le 'délimiteur' doit être 1 caractère (et pas une chaine de caractères).
    Bonjour Eric,

    Split accepte une chaîne d'un ou plusieurs caractères comme délimiteur …

    ___________________________________________________________________________________________________________
    Je suis Paris, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Effectivement Marc, Split() admet comme délimiteur une chaine de caractères.
    L'aide en français n'est pas claire sur ce point ("Tout caractère unique"), mais en anglais c'est clair ("Any string of characters"). Cependant les exemples sont bien éclairants.
    Cdt

  6. #6
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonjour Eric et Marc,

    Ok le code ne bloque plus mais le résultat escompté ne fonctionne pas.
    Effectivement si je mets en A2, un processus, j'ai bien comme résultat en B2, son titre mais dès que je saisi deux processus, au lieu d'avoir les 2 titres avec mise a la ligne, j'obtiens comme resultat : 0
    Idem si je saisi un processus (ex M10) et une Fonction en A1, j'obtiens 0 comme résultat.

    Auriez vous une idée du comment faire ?
    car normalement avec le code ça aurait dû fonctionner
    Merci à vous

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

Discussions similaires

  1. [XL-2016] Liste déroulante avec choix multiple
    Par letoutcasse2000 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 19/07/2018, 14h28
  2. [Débutant] Liste déroulante avec choix multiple (checkbox)
    Par Genyuumaru dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 20/11/2012, 09h42
  3. [AC-2010] listes en cascades avec affichage restreint
    Par maitydeal dans le forum Modélisation
    Réponses: 1
    Dernier message: 13/08/2010, 08h01
  4. case a cocher avec choix multiple
    Par ikramta dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2009, 17h45
  5. pb de select avec size avec choix multiple
    Par La_picolle dans le forum ASP
    Réponses: 10
    Dernier message: 28/08/2003, 15h21

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