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 :

Lancer un sub à l'ouverture d'excel depuis une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut Lancer un sub à l'ouverture d'excel depuis une feuille
    Bonjour à tous, je viens vers vous car apres avoir fouiner un peu partout sur le net je n'y arrive toujours pas, je suis entrain de fissurer !

    Je vous expose mon probleme:
    Je veux donc lancer un sub (en l'occurence une combobox dont le code de remplissage est dans la feuil1) quand excel s'ouvre.
    Pourquoi je veux faire ca ? Car pour l'instant quand j'ouvre excel ma combobox ne se remplit pas, il faut que j'aille dans le code et que je lance le sub manuellement pour avoir les propositions dans le menu déroulant.
    Je ne veux pas qu'il y ait du code dans thisworkbook du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub thisworkbook_open 
    Call combobox1 
    End sub
    Il faut que tout le code soit dans la feuil1 !

    D'ailleurs ca ne marche pas il ne reconnait pas combobox, j'ai essayé callbyname mais sans succes.

    Je pourrai faire un userform qui s’ouvrirait au demarrage puis un bouton pour lancer combobox mais c'est pareil je vais devoir ecrire dans thisworkbook pour lancer le userform et ca je ne veux pas.

    Voici le code présent dans la feuil1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ComboBox1_Change()
          With Me.ComboBox1
                ComboBox1.AddItem "Bleu"
                ComboBox1.AddItem "Blanc"
                ComboBox1.AddItem "Rouge"
          End With
    End Sub
    J'espere avoir été clair et que vous allez pouvoir m'aider, ce serait tellement génial !!

    Merci par avance pour vos réponses.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    ce qui serait "génial", serait que tu t'intéresses un tout petit peu (vraiment peu) plus sérieusement à ce que tu fais.
    - Combobox1 est un objet. Il ne saurait être en soi une procédure (sub, fonction, ou autre ...)
    - Combobox1_change est un évènement. Il ne saurait intervenir, comme l'indique le nom de cet évènement, que lorsqu'est modifiée (pour quelque cause que ce soit) la zone d'édition de cette combobox.
    Tu veux quoi ? Ajouter des items à ta combo à l'ouverture ? Ben ===>>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ComboBox1.AddItem "Bleu"
    ComboBox1.AddItem "Blanc"
    ComboBox1.AddItem "Rouge"
    à l'ouverture de ton classeur fera l'affaire !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut
    Deja merci de repondre. Je suis debutant en vba donc un peu ignare!
    Je viens d'essayer de mettre le code en brut en dehors du sub dans la feuil1 et il m’envoie bouler en me disant "Instruction incorrecte à l'exterieur d'une procedure"
    J'ai peut etre pas compris ce que tu m'as dit de faire... Aide ???

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    "Instruction incorrecte à l'exterieur d'une procedure"
    est clair
    Toute instruction doit se trouver dans une procédure, soit directement évènementielle, soit, indirectement, dans une procédure elle-même appelée dans une procédure évènementielle.
    Je suis debutant en vba donc un peu ignare
    "Un peu" est là un euphémisme. Tu as vraiment besoin de commencer par le tout début de l'apprentissage. Tu as sur ce site des tutoriels qui, correspondant à ton cas, sont à lire, avant de tenter de foncer, tête baissée !

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonsoir,

    Exemple1: Avec formulaire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
       UserForm1.Show
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub UserForm_Initialize()
      Me.ComboBox1.AddItem "bleu"
      Me.ComboBox1.AddItem "blanc"
      Me.ComboBox1.AddItem "rouge"
    End Sub
     
    Private Sub ComboBox1_Change()
       Me.TextBox1 = Me.ComboBox1
    End Sub

    Exemple2: Sans Formulaire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub ComboBox1_DropButtonClick()
      Me.ComboBox1.Clear
      Me.ComboBox1.AddItem "bleu"
      Me.ComboBox1.AddItem "blanc"
      Me.ComboBox1.AddItem "rouge"
    End Sub
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ComboBox1_DropButtonClick()
      Me.ComboBox1.List = Array("bleu", "blanc", "rouge")
    End Sub
    Boisgontier
    http://boisgontierjacques.free.fr
    Fichiers attachés Fichiers attachés

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut
    Merci beaucoup boisgontierjacques, tu es au top !
    Ca m'a grandement aidé je ne connaissais pas cet evenement, je n'ai eu qu'a rajouter une boucle while pour qu'il ne le remplisse qu'une fois du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ComboBox1_DropButtonClick()
    While z = 0
    Me.ComboBox1.AddItem "bleu"
    Me.ComboBox1.AddItem "blanc"
    Me.ComboBox1.AddItem "rouge"
    z = z + 1
    Wend
    End Sub
    J'ai une autre question, je voudrais lancer un sub des l'ouverture d'Excel, je connais Private sub workbook_open mais ca ne marche que si tu le mets dans thisworkbook pas dans Feuil1.

    Une idée de comment je pourrai contourner le probleme ? Je ne souhaite pas utiliser d'userform. Ca me servirai à directement inserer des valeurs dans mes tableaux vba des l'ouverture d'Excel.

Discussions similaires

  1. Faire appel à un autre fichier excel depuis une feuille excel
    Par dammswell dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/10/2009, 09h24
  2. Ouverture fichier excel depuis une servlet
    Par cecjahan dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 08/09/2008, 14h03
  3. [VB 6] Problème lors de l'ouverture d'Excel depuis VB
    Par pom dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 10/02/2007, 20h50
  4. [EXCEL] lancer excel depuis une jsp
    Par biozaxx dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 23/10/2006, 11h02
  5. lancer une macro excel depuis une appli access
    Par LostIN dans le forum Access
    Réponses: 1
    Dernier message: 22/08/2006, 11h10

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