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 :

PB remplissage combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut PB remplissage combobox
    Bonjour je n'arrive pas à remplir ma combobox je crois avoir mis un controleactivX dans la feuille 3 d'excel

    que ce soit Private Combobox1_enter ou _click ça ne marche pas la combobox ne se remplit pas
    on dirait que ça ne vit pas.. Toujours débutant pouvez vous m'aider à lever le pb SVP, Merci

    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
    Private Sub ComboBox1_Click()
    Dim TbG, Tb1, x As Long
     
     
    ComboBox1.AddItem ""
     
     
     '**************** METHODE 4 RETENUE CAR  si ongle BS possède 500 000 éléments traités = 2s  **********************
     
     With Sheets(2)
     x = WorksheetFunction.CountIf(.Range("B9", .Range("L" & Rows.Count).End(xlUp)), "T")
     If Not x = 0 Then
       TbG = .Range("B9", .Range("L" & Rows.Count).End(xlUp)) 'voir ci-dessus
       ReDim Tb1(1 To x, 1 To 2)
       x = 1
     End If
    End With
     With Sheets(3)
     
       For Ligne = 1 To UBound(TbG, 1) 'on boucle sur le variable TbG
         If TbG(Ligne, 7) = "T" Then 'la condition (traduit si J&ligne = combo)
           Tb1(x, 1) = TbG(Ligne, 11): Tb1(x, 2) = TbG(Ligne, 1):
     
           ComboBox1.AddItem Tb1(x, 1) & "_" & Tb1(x, 2)
           x = x + 1
         End If
       Next Ligne
    End With
    End Sub

  2. #2
    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
    Citation Envoyé par esse2016 Voir le message
    je crois avoir mis un controleactivX dans la feuille 3 d'excel
    Bonjour,

    on va attendre que tu sois certain et donc la présentation des tenants & aboutissants !

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Bonjour Marc-L

    avec la photo est-ce que ça peut aider à identifier quel type de combo ai je mis ?
    Nom : combo.jpg
Affichages : 302
Taille : 146,3 Ko

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Si je mets Combobox_GotFocus() je ne sais pas si ça passe, car il bloque sur For Ligne = 1 To UBound(TbG, 1) par erreur d'execution 13 incompatiblité de type

  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


    Commencer alors par vérifier le contenu des variables …

    En fait tout le code est à revoir (suivre sa progression en mode pas à pas), erreur de logique évidente !

  6. #6
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Désolé mais je ne vois pas, d'où ma demande d'aide.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    @esse2016,

    Et si tu nous disais ce que tu souhaites réaliser, la finalité de ta demande? Peut-être pourrions-nous t'aiguiller mieux.

    Parce que 22 messages,l'agressivité inutile qui monte et les pleurnicheries pour les -1, ça commence à faire beaucoup pour ce qui est annoncé comme étant un problème de remplissage de combobox
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

    L'alimentation de la liste déroulante demande deux lignes de code et pas plus lors de l'ouverture du classeur
    comme cela fonctionne de mon côté depuis la sortie de la version 2003, un bail !

    Pour peu d'être enfin sûr du besoin réel exprimé sans ambiguïté, clairement et exhaustivement …

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    L'alimentation de la liste déroulante demande deux lignes de code et pas plus lors de l'ouverture du classeur[...]
    Je suis bien d'accord. Mais comme on tourne autour du problème depuis pas mal de temps, j'imagine que le besoin initial, probablement mal "traduit" en code et donc mal exprimé, a besoin d'être exprimé en français, pour ne pas être brouillé par une esquisse de solution qui visiblement ne répond pas au problème...

    Nous sommes donc dans l'attente de l'expression claire du besoin ...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Bonjour Pierre,

    D'accord avec tes propos.

    J'essaye donc de reformuler:
    je souhaite alimenter une combobox1 située dans une feuille excel ici la n°3.
    L'alimentation est obtenue à partir de cellules d'une autre feuille ici la n°2
    (exemple: mettre dans la combobox1 de la feuille3 que les villes commençant par la lettre "T" issues de la colonne "h" de la feuille2)

    De plus, Je Souhaiterais qu'à chaque fois que je quitte excel en ayant sauvegardé, que ma combobox soit vide de façon qu'à la prochaine ouverture d'excel lorsque j'irai sur la feuille3 l' item de la combo choisit ne soit pas visible question "d'esthétisme". Ce passage est difficile à exprimer😓.

    (Pour 2lignes de code hélas pour moi je n'ai pas le niveau...)

    Merci pour les interventions de chacun.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ok.

    Le "gros" problème n'est donc pas, en tant que tel, le remplissage de la combobox.

    Sur base d'une table de données appelée t_Villes illustrée ci-desous...
    Nom : 2017-09-27_205735.png
Affichages : 277
Taille : 55,4 Ko


    Basiquement, une combobox se remplit en une ligne, si la plage qui sert le combobox existe telle qu'elle, comme le soulignait Marc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil3.cboCities.List = range("t_villes").value

    De même, une combobox se vide en une ligne
    il "suffit" donc d'appeler ces lignes de code au bon moment, c'est-à-dire lors du bon évènement.

    En soi, ton problème initial est résolu... Sauf que d'après ton dernier message, tu ne veux prendre que certaines lignes de la table. Comme la plage n'existe pas en tant que telle, tu as deux solutions:
    • préparer une plage qui correspond à ce que tu souhaites;
    • charger ton combobox en bouclant sur les cellules pour tester si elles doivent être prises en compte ou pas.


    En choisissant la première technique, le problème est donc de définir la plage qui pourra être passée à la propriété LIST de ton combo. Là aussi, tu as plusieurs moyens, selon les conditions à remplir. Dans ton cas, on pourrait trier la table puis définir la sous-plage qui commence par une lettre. Cela revient à écrire une fonction qui va renvoyer la plage correspondante (à mettre dans un module standard). Je propose une technique parmi d'autres:
    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
    Function getCities(FirstLetter As String) As Range
      Dim rng As Range
      Dim FirstRow
      Dim RowsCount As Long
     
      With Feuil2.Range("t_Villes").ListObject.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("t_Villes"), Order:=xlAscending
        .Apply
      End With
     
      FirstRow = Application.Match(FirstLetter & "*", Range("t_Villes"), 0)
      If Not IsError(FirstRow) Then
        RowsCount = Application.CountIfs(Range("t_Villes"), FirstLetter & "*")
        Set getCities = Range("t_Villes")(FirstRow).Resize(RowsCount)
      End If
    End Function
    Tu peux alors utiliser cette fonction au sein d'une procédure qui va charger ta combo (toujours dans un module standard)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub FillCboCities()
      Dim rng As Range
     
      Set rng = getCities("T")
      If Not rng Is Nothing Then
        Feuil3.cboCities.List = rng.Value
      End If
    End Sub
    Si tu dois charger ta combo à l'ouverture de ton classeur, tu auras alors une ligne à placer dans le code évèmentiel de l'ouverture du classeur (module ThisWorkBook si pas renommé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open() 
      FillCboCities
    End Sub
    Perso, j'aime bien mettre le code de vidange du combo dans une procédure, même pour une ligne, dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub ClearCboCities()
      Feuil3.cboCities.Clear
    End Sub
    il te suffit d'appeler cette ligne lors de la fermeture du classeur (module ThisWorkBook)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      ClearCboCities
    End Sub

    On peut ne pas découper de cette manière, mais on écrit alors un code spaghetti à rallonges et dans deux mois, on ne s'y retrouve plus. En plus, on ne sait alors pas tester les portions de code isolément du reste. Puisque tu débutes en VBA, prends de suite les bonnes habitudes pour scinder ton code en fonctions/procédures qui font une partie de ton code bien définie. Ainsi, tu peux les tester séparément et les faire évoluer beaucoup plus facilement. Ce n'est pas plus compliqué à mettre en place, mais c'est 1000 fois plus simple pour la suite de ton travail!

    Une autre technique pourrait consister à préparer la plage qui sert le combobox grâce à un filtre avancé. Cela te permettra une grande souplesse dans le choix des données à afficher dans la combo. Ce sera pour mon post suivant. Tu verras qu'il suffira de modifier la fonction getCities... Et tu auras un bonus gratuit...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Avec un filtre avancé, tu vas gagner en souplesse, surtout si tu utilises un filtre formulé, comme illustré ici. Il suffit de rédiger une formule booléenne dans la zone de critère en prenant comme référence de cellule la première ligne de la table de données (ici, j'ai choisi d'extraire les villes dont la deuxième lettre est "a").

    Nom : 2017-09-27_212645.png
Affichages : 210
Taille : 9,2 Ko

    Il te suffit alors d'une fonction qui applique le filtre avancé. Dans la construction de la feuille, il faut définir les plages qui serviront aux critères et à la récupération des données filtrées (dans mon code, cboFilter pour J1:J2 et cboList pour L1:L2).

    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
    Function getCitiesByAdvancedFilter() As Range
      On Error Resume Next
     
        With Range("t_Villes").ListObject.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("t_Villes"), Order:=xlAscending
        .Apply
      End With
     
      Application.DisplayAlerts = False
      Range("cbolist").EntireColumn.ClearContents
      Range("t_Villes[#All]").AdvancedFilter xlFilterCopy, Range("cboFilter"), Range("cbolist")
      Application.DisplayAlerts = True
      Set getCitiesByAdvancedFilter = Range("cbolist")(2).Resize(Application.CountA(Range("cbolist").EntireColumn) - 1)
    End Function
    Il faut évidemment modifier la ligne de FillCboCities
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rng = getCitiesByAdvancedFilter
    Voici le résultat avec les villes ayant a en deuxième lettre.
    Nom : 2017-09-27_213154.png
Affichages : 186
Taille : 5,8 Ko

    Tu veux une liste des villes dont le nom contient moins de sept lettres? Tu n'as rien à modifier dans le code. Tu modifies simplement ton critère en J2 et tu relances FillCboCities... Tu sors ainsi complètement le critère de choix des villes de ton code en permettant de décrire ce critère dans Excel. 100% de souplesse dans l'expression du critère.

    Nom : 2017-09-27_213452.png
Affichages : 194
Taille : 10,0 Ko

    Nom : 2017-09-27_213425.png
Affichages : 201
Taille : 6,5 Ko



    Perso, j'aime moins la solution de boucler sur les lignes de la liste des villes, car il est plus malaisé de sortir l'expression du critère du code, ce qui amène à devoir modifier le code lorsque la règle de gestion est modifiée. Quand je peux éviter, j'évite...

    En bonus, le fichier...
    Fichiers attachés Fichiers attachés
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Monsieur Pierre, une petite parenthèse, juste me dire mon filtre ci-desous est ok ou pas

    (Sans parler du combobox1.additem)
    TbG est un tableau définit par dim TbG as long
    C'est peut-être cela que Marc-L essayait de m'ouvrir les yeux. Car TbG à l'allure d'un range...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    With Sheets(2)
     If Not WorksheetFunction.CountIf(.Range("B9", .Range("L" & Rows.Count).End(xlUp)), "T") = 0 Then
       TbG = .Range("B9", .Range("L" & Rows.Count).End(xlUp))
     
       For Ligne = 1 To UBound(TbG, 1)                                                       'On boucle sur TbG image de la sélection de B9 à Range....End(xlUp)
                    If TbG(Ligne, 7) = "T" Then                                          'cas du nom commençant par la lettre T
                       Worksheets(3).ComboBox1.AddItem TbG(Ligne, 11) & "_" & TbG(Ligne, 1) 'remplir la combobox
                    End If
       Next Ligne
    End If
    End With
     
    End Sub

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Non.

    Si tu boucles sur tes lignes, tu ne dois pas passer par un tableau, tu dois simplement passer la valeur de la cellule, éventuellement recomposée avec le tiret et une concaténation, lors du AddItem (qui ajoute un item dans la première colonne du combo).

    De plus, on ne définit pas un tableau avec dim tbg as long. Là, tu définis une variable de type long, pas du tout un tableau, dont tu n'as a priori pas besoin.

    Inspire-toi du code suivant, toujours sur base de ma table t_Villes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub FillCboCitiesWithLoop()
      Dim c As Range
     
      Feuil3.cboCities.Clear
      For Each c In Range("t_Villes")
        If c.Value Like "T*" Then Feuil3.cboCities.AddItem c.Value
      Next
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    …soir,

    +2 Pierre pour les explications et méthodes
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  16. #16
    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
    Citation Envoyé par esse2016 Voir le message
    Je Souhaiterais qu'à chaque fois que je quitte excel en ayant sauvegardé, que ma combobox soit vide de façon qu'à la prochaine ouverture d'excel lorsque j'irai sur la feuille3 l' item de la combo choisit ne soit pas visible
    Et je t'ai pourtant déjà donné plusieurs fois la solution !


    Citation Envoyé par Pierre Fauconnier Voir le message
    • préparer une plage qui correspond à ce que tu souhaites;
    • charger ton combobox en bouclant sur les cellules pour tester si elles doivent être prises en compte ou pas.
    Une troisième voie sans boucle via le moteur de formule de calculs en deux lignes de code,
    la base - la formule - étant accessible à tout débutant pour peu de savoir lire …

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Marc-L;9648810[...
    Une troisième voie sans boucle via le moteur de formule de calculs en deux lignes de code,
    la base - la formule - étant accessible à tout débutant pour peu de savoir lire …
    [...]
    Et si tu la donnais, ta technique? Parce que répéter 10 fois qu'il suffit d'une formule accessible à tout débutant mais ne pas donner la solution, ça ne fait pas avancer le schmilblick, à mon avis

    Sauf à ne pas comprendre de quoi tu parles, ce qsui est toujours possible, il me semble que j'ai donné une solution avec le moteur de formules, qui utilisait MATCH et COUNTIFS... Mais je suis preneur d'une formule générique si tu en as une
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

    J'attends déjà le retour du demandeur afin de savoir où il en est …

    Une fois que de son côté c'est d'équerre, je lui ferais revisiter avec plaisir les bases d'Excel
    - Penser Excel avant VBA ! - en le guidant par étape d'Excel vers le VBA,
    une bien meilleure méthode d'apprentissage que de livrer du tout cuit qu'il ne pourrait comprendre !
    Enseigner la pêche au lieu de fournir du poisson … (Confucius)

    Voie déjà présente dans plusieurs discussions de ce forum, une ligne de code pour alimenter la liste déroulante
    (deux ou plus pour une meilleure lisibilité pour un débutant).
    Une autre ligne de code pour l'évènement d'ouverture du classeur.


  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut Franck,

    Ton code reprend ce qui commence par T parce que tu supposes que seule la première lettre est en majuscule, car sauf erreur de ma part, Filter extrait tout ce qui contient la valeur de l'argument MATCH (ici, en l'occurrence "T").

    Je ne suis pas convaincu que cette technique offre la souplesse des filtres avancés
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  20. #20
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Pierre,

    Exact.
    J'ai supposé les villes saisies comme suit : Lille, Lens, Marseille, etc...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probleme Remplissage ComboBOX avec DATE du mois suivant
    Par RootsInternationnal dans le forum C#
    Réponses: 9
    Dernier message: 16/07/2009, 08h18
  2. remplissage combobox en mode connecté
    Par nabilfaouzi dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/12/2008, 12h20
  3. [WD12] Vitesse remplissage combobox
    Par Gaetch dans le forum HyperFileSQL
    Réponses: 3
    Dernier message: 28/11/2008, 21h01
  4. [Dojo] Remplissage comboBox
    Par Leeadama dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 24/05/2007, 10h45
  5. [MFC] probleme remplissage comboBox avec ADOLib
    Par moulefrite dans le forum MFC
    Réponses: 3
    Dernier message: 05/04/2006, 14h08

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