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 :

combobox en cascade avec feuille differente de l'usf [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut combobox en cascade avec feuille differente de l'usf
    Bonsoir le forum,

    Je souhaite utilisé deux combobox CBox "Categorie" et "Civilite" (colonne J pour catégorie et colonne K pour civilité) en cascade sachant que l'userform se déclenche en cliquant sur bouton de la feuille1 et que les données se trouves sur feuille3 " Listes"
    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Categorie_Change()
     
    Application.ScreenUpdating = False                                                  
     
    Dim i As Integer
     
    Me.Civilite.Clear
    With ThisWorkbook.Sheets("Listes")
        For i = 2 To .Range("J65536").End(xlUp).Row
            If .Range("J" & i) = Categorie.Value Then Me.Civilite.AddItem .Range("K" & i)
        Next
    End With
     
    Application.ScreenUpdating = True
    et
    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
    Private Sub UserForm_Initialize()
     
    Application.ScreenUpdating = False
     
    'Déclarations
    Dim i As Integer
     
    'Run
    For i = 2 To Sheets("Listes").Range("J65536").End(xlUp).Row
      Categorie = Sheets("Listes").Range("J" & i)
      If Categorie.ListIndex = -1 Then Categorie.AddItem Sheets("Liste").Range("J" & i)
    Next i
    Categorie = ""
     
    Application.ScreenUpdating = True
    marche avec bouton sur la même feuille Listes mais pas dans ma situation, erreur d'execution 9 : L'indice n'appartient pas à la sélection.

    Que se passe t-il ?

    Je n'ai pas trouvé la solution sur cette page ici http://excel.developpez.com/faq/inde...omboboxCascade.

    Merci d'avance, pour l'aide que vous m'apporter,

    Stéphanie

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ligne 11, 2ème code, nom de feuille sans s (Liste ou Listes)?

    Utilise plutôt (comme pour le code 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with thisworkbook.worksheets("Listes")
    '....
    end with

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Bonjour le forum,

    Merci Mercatog, ça fonctionne bien, il faut vraiment être vigilant.

    J'ai une autre question pour finir mon raisonnement initial : Comment-faire quand je sélectionne, Particulier du combobox Categorie, Particulier s'affiche dans une combobox CategorieTarif que je peux modifier quand meme car je veux qu'il soit lié à la colonne I?

    exemple :

    Colonne I (CategorieTarif) Colonne J (Categorie) Colonne K (Civilite)
    Administration                  Administration -
    Association                       Association -
    Particulier                         Particulier                 Mlle
    Particulier                         Particulier                 Mme               
    Particulier                         Particulier                 M.
    Professionnel                    Entreprise                 EARL
    Professionnel                    Entreprise                 EI
    etc.
    Professionnel                    Société                     SA
    Professionnel                    Société                     SARL
    etc.

    J'espère que j'ai été clair sinon je transmet un aperçu écran.

    En vous remerciant,

    Stéphanie

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Bonsoir le forum,

    J'ai répondu à ma question mais y-a-t-il moyen de simplifier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        If Categorie.Value = "Particulier" Then
            Categorie_client = Categorie.Value
        ElseIf Categorie.Value = "Association" Then
            Categorie_client = Categorie.Value
        ElseIf Categorie.Value = "Entreprise" Then
            Categorie_client = "Professionnel"
        ElseIf Categorie.Value = "Société" Then
            Categorie_client = "Professionnel"
        ElseIf Categorie.Value = "Administration" Then
             Categorie_client = "Professionnel"
        ElseIf Categorie.Value = "Autre" Then
            Categorie_client = ""
    End If
    Merci

    Stéphanie

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 021
    Par défaut
    Salut

    Juste regrouper utiliser des Or à 2 endroits


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        If (Categorie.Value = "Particulier") Or (Categorie.Value = "Association") Then
            Categorie_client = Categorie.Value
        ElseIf (Categorie.Value = "Société") Or (Categorie.Value = "Administration") Or (Categorie.Value = "Entreprise") Then
            Categorie_client = "Professionnel"
        ElseIf Categorie.Value = "Autre" Then
            Categorie_client = ""
        End If
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Par défaut
    Bonjour le forum et Qwazerty,

    Merci Qwazerty, c'est exactement ce que je voulais.

    Stéphanie

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Select case
    Bonjour Stéphanie, Qwazerty, Le Forum,

    Si je peux me permettre,

    On peut aussi appliquer la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub ESSAI2()
    Select Case Categorie.Value
            Case "Particulier", "Association"
                    Categorie_client = Categorie.Value
            Case "Société", "Administration", "Entreprise"
                    Categorie_client = "Professionnel"
            Case "Autre"
                    Categorie_client = ""
    End Select
    End Sub
    Bonne semaine à tous.

  8. #8
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 021
    Par défaut
    Salut
    En effet ça allège un peu plus l’écriture

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [XL-2007] Impression avec valeur differentes par feuilles
    Par Arnaud41 dans le forum Excel
    Réponses: 8
    Dernier message: 20/06/2014, 16h10
  2. fonction pour filtrage avec des combobox en cascade
    Par Montor dans le forum Contribuez
    Réponses: 3
    Dernier message: 09/11/2009, 12h05
  3. Menu deroulant avec source sur feuille differente.
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/04/2008, 13h54
  4. [VBA-E] ComboBox en cascade avec correspondance dans matrice
    Par ViperSpy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2006, 17h01
  5. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02

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