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 :

Ouvrir un workbook en fonction d une combobox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 34
    Par défaut Ouvrir un workbook en fonction d une combobox
    Bonjour a tous et merci pour votre aide.

    Voici ma problematique: j'aimerai ouvrir un fichier en fonction de ce qui est choisi dans ma combo box. Dans le fichier joint vous verrez en dans le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wb1 = Workbooks.Open("C:\Documents and Settings\Bureau\XXXXX\YYYYYY\FIE_" & ComboBox1 & ".xls")
    je souhaiterai que :
    si le caractère 4 en partant de la gauche de la combobox est un "C" alors XXXX= "C"
    si le caractère 4 en partant de la gauche de la combobox est un "P" alors XXXX= "PC"
    si le caractère 8 en partant de la gauche de la combobox est un "F" alors YYYYY= "Fed"
    si le caractère 8 en partant de la gauche de la combobox est un "B" alors YYYYY= "Bat"

    en vous remerciant
    cordialement combobox essai.xls

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne vois pas où est ton problème puisque dans ta question tu as quasiment écrit le code dont tu as besoin.
    En supposant que ta combobox s'appelle MaComb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim XXX as String, YYY as String
     
    If Mid(MaComb,4,1) = "C" Then XXX = "C"
    If Mid(MaComb,4,1) = "P" Then XXX = "PC"
    If Mid(MaComb,8,1) = "F" Then YYY = "Fed"
    If Mid(MaComb,8,1) = "B" Then YYY = "Bat"
     
    Set wb1 = Workbooks.Open("C:\Documents and Settings\Bureau\" & XXX & "\" & YYY & "\FIE_" & ComboBox1 & ".xls")
    Fais attention : il faudrait que tu prévois les cas qui ne correspondent pas aux conditions des tests.
    Si le 4è caractère n'est pas C ou P et si le 8è n'est pas F ou B.

    Citation Envoyé par nicroq Voir le message
    Dans le fichier joint vous verrez
    http://www.developpez.net/forums/d84...s-discussions/

  3. #3
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 34
    Par défaut
    ok super merci!

    par contre comment faire pour faire :

    si le 8ème caractère en partant de la droite de la combobox est un "F" alors YYYYY= "Fed"

    cordialment

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu utilises la fonction Mid().
    Pour donner la position, tu utilises la fonction Len() qui donne ta longueur de chaine et tu fais une soustraction.

  5. #5
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 34
    Par défaut
    etant novice en vba pourriez vous mettre l exemple que j'adapeterai apres?
    merci beaucoup
    cordialement

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ma fille de 8 ans vient de rentrer de l'école.
    Je lui ai posé le problème : si un train fait 32 wagons et que le wagon rouge est 8 positions avant la fin, quelle est la position du wagon rouge en partant du début ?
    Elle a trouvé la solution en quelques secondes.

    Là, je crois que tu abuses un peu...

  7. #7
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 34
    Par défaut
    oui desolé j'ai compris comment marché la fonction mid !! merci pour votre aide en tout cas.

    Par contre comment dois je mettre le code pour que lorsque l'une de ces 4 conditions ne sont pas remplies qu' il y est "exit sub"?

    surement quelque chose comme : if not exit sub mais ca ne marche pas...

    merci

    cordialement

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par nicroq Voir le message
    j'ai compris comment marché la fonction mid !!
    N'oublie pas que l'aide VBA intégrée à Excel est très précieuse.
    Tu cliques sur le point d'interrogation dans la barre de menu, tu tapes "mid" dans le champ de recherche et tu auras la description, la syntaxe et des exemples pour cette fonction.

    Par contre comment dois je mettre le code pour que lorsque l'une de ces 4 conditions ne sont pas remplies qu' il y est "exit sub"?
    Il y a de nombreuses solutions.
    Les plus propres sont à base de "Select Case" terminé par un "Case Else" ou de "Else If" terminés par un "Else".
    La plus simple est de mettre à la suite de tes If un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not ((XXX = "C" Or XXX = "PC") And (YYY = "Fed" Or YYY = "Bat")) Then Exit Sub
    surement quelque chose comme : if not exit sub mais ca ne marche pas...
    Non.
    Regarde la syntaxe de la structure If dans l'aide VBA d'Excel.
    Je pense aussi que tu aurais besoin de lire un didacticiel sur VBA Excel pour apprendre les bases.
    http://bidou.developpez.com/article/VBA/
    http://mhubiche.developpez.com/vba/f...yntaxes/bases/

    La structure d'un If c'est :
    If condition Then Action

    Dans ce que tu as écris, tu essayes de faire en même temps la condition et l'action.
    Il n'y a JAMAIS de If sans Then.

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

Discussions similaires

  1. [Toutes versions] Affichage d'une diapositive en fonction d'une combobox
    Par Harry Covair dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 23/03/2009, 21h00
  2. Ouvrir un form en fonction d'une donnée
    Par AndréPe dans le forum IHM
    Réponses: 3
    Dernier message: 06/11/2007, 11h36
  3. pb ouvrir flash (.swf) en fonction d'une variable
    Par leferolliot dans le forum Flash
    Réponses: 2
    Dernier message: 23/08/2007, 20h22
  4. Afficher le résultat d'une fonction dans une comboBox
    Par poussin_44 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/07/2007, 16h06
  5. Réponses: 6
    Dernier message: 08/11/2005, 16h44

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