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 :

lster userform.combobox avec les infos dans un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut lster userform.combobox avec les infos dans un autre classeur
    bonjour

    pour ma combobox1 (dans userform1 du document1.xls)

    j utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim laplage As String
    Dim nodernierelig As Integer
     
    nodernierelig = 3 'pour le moment
     
    laplage = Sheets("feuil1").Range("A1:A" & nodernierelig).Address(False, False)
     
        UserForm1.ComboBox1.Clear
        UserForm1.ComboBox1.RowSource = laplage
     
     UserForm1.Show
    ca marche.

    mais si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim laplage As String
    Dim nodernierelig As Integer
    
    nodernierelig = 3 'pour le moment
    
    laplage = workbooks("données.xls").Sheets("feuil1").Range("A1:A" & nodernierelig).Address(False, False)
                
        UserForm1.ComboBox1.Clear
        UserForm1.ComboBox1.RowSource = laplage
      
     UserForm1.Show
    ma liste est vide

    comment faire reference a un autre classeur alors?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ton code est correct sauf... "UserForm1.Show" Rien à faire ici
    Si tu veux afficher ton userform ( ) alors mets cette ligne dans la macro qui le charge, dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub OuvrirUSF1()
        Load Userform1
        Userform1.Show
    end sub
    A+

  3. #3
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    merci ouskel'nord

    j ais toujours le mem souci : liste vide

    précision :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim laplage As String
    Dim nodernierelig As Integer
     
    nodernierelig = 3 'pour le moment
     
    laplage = Sheets("feuil1").Range("A1:A" & nodernierelig).Address(False, False)
     
        UserForm1.ComboBox1.Clear
        UserForm1.ComboBox1.RowSource = laplage
    ne marche que si la feuil1 est active ( si je suis sur la feuill2) j ai une liste vide
    La fonction addres ne retourne - elle pas juste les coordonnées des cellules ? (sans tenir compte de la feuille ni du classeur )

    je pense a quelquechose comme ca :

    UserForm1.ComboBox1.RowSource = nom fichier/nom feuille/laplage

  4. #4
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    comme souvent de un cas comme ca j ais finalement contourner le probleme

    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
     
    Dim laplage As String
    Dim nodernierelig As Integer
     
    Workbooks("données.xls").Activate
    Sheets("feuil1").Activate
     
    nodernierelig = 3 'pour le moment
     
    laplage = Range("A1:A" & nodernierelig).Address(False, False)
     
        UserForm1.ComboBox1.Clear
        UserForm1.ComboBox1.RowSource = laplage
     
    Workbooks("document1.xls").Activate
    la ca marche.... c est moins propre mais bon

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Afin d'éviter les mvts de feuille, ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.screenupdating = false
    en début de procédure , et repasse-le à true en fin

  6. #6
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir le fil

    essaie cette syntaxe. Tu n'as pas besoin d'activer la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    'Dim laplage As String
    Dim nodernierelig As Integer
    Dim laplage As Variant
     
    nodernierelig = 3 'pour le moment
    laplage = Sheets("Feuil1").Range("A1:A" & nodernierelig).Value '.Address(False, False)
    ComboBox1.List() = laplage
    ComboBox1.ListRows = UBound(laplage)
    ComboBox1.ListIndex = 0
    cordialement
    fred65200

Discussions similaires

  1. [LibreOffice][Tableur] Basic - Copier des colonnes et les coller dans un autre classeur
    Par ancel17 dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 21/03/2014, 11h45
  2. Réponses: 1
    Dernier message: 05/01/2014, 19h13
  3. [XL-2010] Copier les données dans un autre classeur
    Par idhmida dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2013, 15h17
  4. Créer un site avec formulaire qui renvoi les infos dans un autre formulaire.
    Par B0unti dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/07/2012, 11h22
  5. TCD avec des donnees dans un autre classeur
    Par nana85 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/04/2008, 11h24

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