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 :

Choix d'une liste dans un CB suivant la feuille active [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut Choix d'une liste dans un CB suivant la feuille active
    Bonjour à tous,

    J'utilise deux CB dans un UF pour alimenter plusieurs feuilles d'un classeur (6 feuilles), pour afficher la liste des CB j'utilise les données d'une feuille nommée "Données!".
    Par contre les données des CB ne sont pas les mêmes suivant les feuilles utilisées et comme je veux éviter de créer un nouvel UF pour chaque feuille du classeur, j'aimerais savoir s'il est possible d'alimenter les CB suivant la feuille active ?
    C'est à dire que les données des CB de la feuil1! sont en A2:B20 et B2:B20 dans la feuille "Données!", celles de la feuil2! sont en C2:C20 et D2 : D20 , celles de la feuil3! en E2:E20 et F2:F20 etc...

    Merci d'avance pour vos réponses...

    Voici une partie de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
    Dim F As String
        ' Ici je déclare une variable avec le nom de la feuille active et après je bloque !
        F = ActiveWorkbook.ActiveSheet.Name 
     
       'Pour la liste déroulante OPERATION (MODE-OPERATION = Combobox1)
        Me.MODE_OPERATION.RowSource = "Données!A2:A" & Sheets("Données").Cells(1, 1).End(xlDown).Row
     
    ' Pour la liste déroulante TYPE (MODE_TYPE = Combobox2)
        Me.MODE_TYPE.RowSource = "Données!B2:B" & Sheets("Données").Cells(1, 1).End(xlDown).Row
     
    End Sub

  2. #2
    Membre expérimenté Avatar de EBRAG
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Avril 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 125
    Par défaut
    Bonjour,

    Un petit select case, cela te dit ou il faut aller plus loin ?

    Bon courage, car il en faut !

  3. #3
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Bonjour EBRAG,

    Je suis vraiment débutant, alors un petit peu d'aide sur le code serait pas de refus.

    Merci d'avance

  4. #4
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Bonjour à tous,

    Je reviens à la charge....
    Bon en attendant de me débrouiller avec le Select Case, je me suis arrangé avec des If Then Else End If... c'est plus long mais ça fonctionne pour l'instant, une bataille à la fois !

    Par contre pour afficher la liste déroulante dans mon ComBoBox ça ne marche plus depuis que mon Numéro de colonne est une variable !

    Quand la plage à sélectionner était fixe, ça donnait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ComBoBox1.RowSource = "Données!A2:A" & Sheets("Données").Cells(1, 1).End(xlDown).Row
    Et ça marchait très bien...
    Alors j'ai essayé ceci (et plein d'autres combinaisonsssss), il y a toujours des messages d'erreurs : Valeur de propriété non valide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     ' C étant la variable pour le numéro de colonne
    Me.ComBoBox1.RowSource = Sheets("Données").Cells(2, C) & Sheets("Données").Cells(1, 1).End(xlDown).Row 
    ' J'ai essayé d'autre combinaisons, on dirait qu'il refuse le Sheets après le RowSource !!
    ça ne doit pas être grand chose, mais je ne trouve pas.

    Merci pour votre aide...

  5. #5
    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
    Bonjour,

    si c'est grand chose car incompréhension évidente de la donnée attendue ‼
    Là tu envoies la concaténation d'une cellule avec le n° de ligne d'une autre cellule !
    (Et ce n'est pas difficile de contrôler soit même via un Debug.Print ou un MsgBox ! )

    Au lieu de simplement une adresse d'une plage du genre Range(Range1, Range2).Address
    Voir l'aide VBA interne de Range et de Address.

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  6. #6
    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
    Je ne vais pas te dire ce que tu devrais écrire (ce ne serait pas te rendre service), mais te guider pour que tu y parviennes seul :
    - La propriété RowSource est une chaîne de caractères, composée d'un nom de feuille, suivi d'un !, suivi d'une adresse de plage
    - Une feuille a une propriété Name
    Te reste à utiliser tout cela en concaténation.
    Vas-y seul, car c'est vraiment élémentaire, là ...

  7. #7
    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

    Salut Jacques !

    Pas besoin de concaténation en utilisant juste la propriété Address bien paramétrée (External)
    pouvant retourner l'adresse complète du Range avec Classeur / Feuille / Plage …

  8. #8
    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
    Salut Marc
    Très juste !

  9. #9
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Re bonjour,

    Merci à vous deux de m'avoir répondu... Je vais continuer de chercher et m'arracher les cheveux ! (Ah non j'en ai plus !!)

    Si je trouve je viendrais mettre mon résultat et le post en résolu.

    Bonne journée et bon week end

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

Discussions similaires

  1. [debutante] insertion d'une image suivant le choix d'une liste
    Par canary dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/03/2009, 14h09
  2. Réponses: 1
    Dernier message: 06/01/2009, 14h01
  3. choix d'une valeur dans un zone de liste deroulante
    Par Chikatilo dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/08/2008, 14h29
  4. Réponses: 7
    Dernier message: 09/12/2007, 11h51
  5. Réponses: 0
    Dernier message: 24/10/2007, 20h29

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