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 :

Userform avec deux combobox [XL-2013]


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
    Inscrit en
    Septembre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 36
    Par défaut Userform avec deux combobox
    bonjour

    j'ai une form ou une combobox (date) avec en rowsource janvier, février, ect qui doit sélectionnées une feuil selon le mois :

    ex : feuil1 janvier
    feuil2 février

    j'ai fouillait partout sur Internet mais j'ai rien trouver.

    et dans la même form une combobox (catégorie) doit sélectionnées dans un des tableau de janvier par exemple soit dans recette divers ou ventes tableaux ou employé etc

    pouvez vous m'aider svp

    Nom : userform - copie.jpg
Affichages : 2359
Taille : 251,9 Ko

    Nom : tableau  - copie.jpg
Affichages : 2401
Taille : 290,0 Ko

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La propriété RowSource est une chaîne de caractères qui doit contenir au minimum le nom de la feuille suivi du point d'exclamation et l'adresse de la plage.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rowsource = "Janvier!$A$2:$A$500"
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Me.cboMember
    .RowSource = rng.Address(external:=True)
    .ListIndex = 0 ' Force la sélection du premier enregistrement
    End With
    Dans ce code cboMember est le nom du ComboBox, rng est la variable objet représentant la plage de données et qui est obtenu par cette procédure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set rng = shtMember.Range("A1").CurrentRegion
      ' Redimensionnement de l'objet rng pour garder la partie Data (à partir de la deuxième ligne)
     Set rng = shtMember.Range("A1").CurrentRegion
     With rng
      Set rng = .Offset(1).Resize(.Rows.Count - 1)
     End With
    Dans cet exemple, shtMember est la propriété CodeName de la feuille
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 36
    Par défaut précision
    merci de votre attention mais pour que je comprene bien combobox qui se nomme cmdMois doit sélectionnées une feuille et non une colonne

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Je ne pense pas avoir évoqué une colonne mais bien une plage de données mais il est vrai que mon exemple pouvait prêter à confusion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rowsource = "Janvier!$A$2:$A$500"
    Pourrait parfaitement être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rowsource = "Janvier!$A$2:$L$500"
    La propriété RowSource des contrôles Combobox et ListBox permet d'afficher une liste de données constituées en général de lignes et colonnes donc une plage de cellules et pas une feuille.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    Citation Envoyé par dubdub87 Voir le message
    merci de votre attention mais pour que je comprene bien combobox qui se nomme cmdMois doit sélectionnées une feuille et non une colonne
    bonsoir,

    je fais un exemple de sélection de mois :
    je cree une feuille par mois et aussi une feuille "donnees" qui recois les données du formulaire.
    A chaque changement de donnée dans la feuille on active la feuille corespondante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target
    Case Feuil4.Range("D2")
       Worksheets(Feuil4.Range("D2").value).Activate
    'case ...
    'case ... en fonction de la saisie du formulaire
     
    End Select
     
    End Sub
    que j'installe dans la feuille "donnees"

    On peut initialiser les rowsource et controlsource dans les propriétés du combobox ou dans l'initialisation du "userform" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize()
    Me.ComboBox1.ControlSource = "donnees!D2"
    Me.ComboBox1.RowSource = "donnees!A1:A4"
    End Sub
    Nom : mois choisi.jpg
Affichages : 1508
Taille : 83,0 Ko

    a vous...

    geogeo70

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 36
    Par défaut
    bonjour

    je suis vraiment dslé je vous ai mis le fichier pour que vous puissiez me faire un exemple plus concret se fichier n'est pas le définitive c'est un brouillon

    merci encore de votre aide.

    essais.xlsm

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Plutôt que placer un fichier à télécharger, il serait préférable que tu expliques ce qui ne va pas et que tu affiches ici la procédure VBA qui te pose un problème .
    As-tu un message d'erreur ?
    Si oui, quel est le message que tu reçois et quel est son numéro et bien entendu il faut que l'on visualise le code où a lieu cette erreur.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut userform...
    bonsoir,

    voici quelques modif que je ferai, utilisation de votre feuille combo pour mettre les données courantes du formulaire, utiliser les "controlsource" de vos box et " rowsource". il faudra faire les contrôles de saisie sinon... Quand vous choisissez le mois la feuille se sélectionne, elle est initialisée à janvier. Vous aviez mis un espace sur janvier !!! attention il faut les mêmes valeurs de titre...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Sub cmbvalider_Click()
     
    Dim ws As Worksheet
    Dim newRow As Integer
     
    Set ws = ActiveWorkbook.Worksheets(Feuil2.Range("B18").Value)
     
    Select Case Me.ComboBox4.Value
    Case "RECETTES divers"
        newRow = 2
        Do
        newRow = newRow + 1
        Loop Until ws.Cells(newRow, 1) = ""
     
        ws.Cells(newRow, 1) = DateSerial(2015, Feuil2.Range("D18").Value, Me.ComboBox3.Value) 'date construite
        ws.Cells(newRow, 6) = Feuil2.Cells(24, 2).Value
        ws.Cells(newRow, 2) = Feuil2.Cells(19, 2).Value
        '.....
        'suite des affectations de données
     
    Case "Ventes de Tableaux"
        newRow = 10
        Do
        newRow = newRow + 1
        Loop Until ws.Cells(newRow, 1) = ""
        ws.Cells(newRow, 1) = DateSerial(2015, Feuil2.Range("D18").Value, Me.ComboBox3.Value)
        '.....
        'suite des affectations de données
     
    'Case....   les autres cas
     
    End Select
     
    'ws.Cells(newRow, 2).Value = Me.TextBox4.Value 'objet
    'ws.Cells(newRow, 6).Value = Me.TxtSommes.Value
    'ws.Cells(newRow, 1).Value = Me.ComboBox3.Value 'jours
    End Sub
     
     
    Private Sub cmdFermer_Click()
     
    Me.Hide
     
    End Sub
     
    Private Sub ComboBox2_Change()
    Worksheets(Me.ComboBox2.Text).Activate
    End Sub
     
    Private Sub UserForm_Initialize()
    ComboBox2.Text = "janvier"
    Worksheets(Me.ComboBox2.Text).Activate
    'Me.cmdmois.ControlSource = "donnees!D2"
    'Me.cmdmois.RowSource = "donnees!A1:A4"
     
    End Sub
    Nom : userform.jpg
Affichages : 1573
Taille : 86,3 Ko

    Le fichier :

    userform.xlsm

    geogeo70

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

Discussions similaires

  1. [XL-2007] utilisation de deux ComboBox avec if then
    Par presser dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/06/2009, 19h57
  2. [Developpement] : FieldType avec deux combobox
    Par loueti dans le forum SharePoint
    Réponses: 0
    Dernier message: 02/06/2008, 16h03
  3. Remplir une ComboBox avec DEUX colonnes (ou plus ^_^)
    Par DashRendar dans le forum VB.NET
    Réponses: 3
    Dernier message: 07/02/2008, 08h54
  4. Combobox avec deux champs
    Par hajarussa dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/10/2007, 10h11
  5. Datagrid et combobox avec deux datasource différents
    Par RaelRiaK dans le forum VB.NET
    Réponses: 9
    Dernier message: 07/02/2007, 09h20

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