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 :

combox assez technique


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut combox assez technique
    bonjour$


    j'ai une question un peux technique,

    j'ai 4 combobox dans le dernier cela m'affiche les valeurs d'une colonne que j'appelle x.
    dans celle-ci j'ai 3 dates : 12 mois, 18 mois, 60 mois,
    comment je pourais faire pour dire qu'il m'affiche les 3 dates
    comme cela:
    12 mois
    18 mois
    60 mois
    tous

    merci àbtous ce qui se penche sur ce Pb

  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
    Par défaut
    Bonjour stéphanie456,
    Tout dépend où se trouvent tes combos ? Dans une feuille de calculs ou dans un userform ?
    Tu peux répondre à cette question ?
    A+

    Question subsidiaire : Où se trouvent tes données ? Sur des cellules consécutives ou dans des cellules isolées les une par rapport aux autres ?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut combox assez technique
    mes combox sont dans un userform

  4. #4
    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
    Par défaut
    Tu n'as pas répondu à ma seconde question...
    Pour renseigner un combobox, tu peux, selon les cas, utiliser additem ou list ou rowsource. Si tu réponds à ma question, je pourrai te répondre

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    j'utilise des additem

    je répéte mon souci;

    j'aimerai afficher dans le 4 éme combo une valeurs qui affiche tous les données
    pour ça j'ai 4 combo qui s'alimentent en cascade , mais valeurs des combo sont dans des colonnes de A à D;
    j'utilise une boite de dialogue du type userform, et cela sont compilé avec la fonction additem;

  6. #6
    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
    Par défaut
    Citation Envoyé par ousk'
    Question subsidiaire : Où se trouvent tes données ? Sur des cellules consécutives ou dans des cellules isolées les unes par rapport aux autres ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    12 mois
    18 mois 
    60 mois
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    12 mois
    Cellule vide
    Cellule vide
    18 mois
    Cellule vide
    Cellule vide
    Cellule vide
    60 mois
    .....................?

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    les cellules sont disposés de cette manière dans mon combox
    12 mois
    18 mois
    60 mois

    dans ma base de donnée il peut y avoir une suite de 18 mois
    ensuite une suite de 12 mois ect
    je n'ai pas 12 mois, 18, ensuite 60 un aprs l'autre.

  8. #8
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Si je peux me permettre, pourquoi ne pas simplement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
    With ComboBox4
        .AddItem "6 mois"
        .AddItem "12 mois"
        .AddItem "18 mois"
        .AddItem "Tous"
    End With
    End Sub

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut combox assez technique
    oui sa serait simple comme ça!

    mais les dates 12 18 60 se trouvent dans des cellules de ma base de donnée.
    Mois je voudrais faire dire dans mon userform qui me donne le choix de sélectionner soit les dates qui se trouvent dans ma base qui sont pour ce cas là 12 18 60, soit d'afficher toutes les dates et donc avoir le choix "tous"

    toi tu spécifie que dans mon code j'identifie 12, 18, 60 , ce n'est pas bon car les valeurs je les récupéres dans ma base de donnée .Ils sont aussi ammener à changer.

  10. #10
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Désolé mais j'ai du mal à comprendre, il me semblait que tu voulais afficher "12 - 18 - 60 - tous" dans ton ComboBox mais apparement ce n'est pas ça. Tu veux sélectionner les dates selon le choix dans le Combo et les afficher quelque part ? Tu veux afficher quoi exactement et où ?

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    j'ai une boite de dialogues dans laquelle le combox affiche les valeurs de la colonne x. dans cette colonne les données sont 12 18 60 mois. si je click sur une des valeurs alors cela vas m'afficher cette valeur. ce que je veux c'est avoir un choix supplémentaire , c'est à dire pouvoir sélectionner aussi les tous en même temps.
    Donc si il y aune méthode avec du code pour lui faire dire de prendre l'ensembles des dates donc "tous", je suis preneurs

    oui ce que je veux c'est affichée dans mon combobox les valeurs déja presente dans mon combobox12 18 60mois + "tous" qui sera le fruit de l'ensemble des données présentent dans la colonne x , ici 12 18 60lmois.

  12. #12
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par stéphanie123 Voir le message
    oui ce que je veux c'est affichée dans mon combobox les valeurs déja presente dans mon combobox12 18 60mois + "tous" qui sera le fruit de l'ensemble des données présentent dans la colonne x , ici 12 18 60lmois.
    et tu trouves ça compréhensible ?

    pour ajouter dans ton Combo (qui contient les valeurs 12 - 18 et 60 mois) "Tous", tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonComboQuiMePoseProblème.AddItem "Tous"
    Ensuite pour exécuter une action selon la sélection dans ce Combo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ComboBox1_Change()
    Select Case ComboBox1.Value
        Case "12 mois"
            'action si 12 mois
        Case "18 mois"
            'action si 18 mois
        Case "60 mois"
            'action si 60 mois
        Case "Tous"
            'action si tous
    End Select
    End Sub
    Avec le peu d'infos et le peu que je comprend c'est tout ce que peux te proposer.
    Si cela ne correspond toujours pas à tes attentes, tu devrais sans doute poser la question à ton prof qui sera plus apte à te répondre

  13. #13
    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
    Par défaut
    Citation Envoyé par stéphanie123 Voir le message
    j'utilise des additem
    Ce n'était pas ma question. Par exemple si tu veux afficher toutes les données d'une colonnes, suppose que tu aies 60 mois à afficher, tu peux effectivement utiliser Additem dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For NoLig = PremiereLigne to derniereLigne
         Listbox1.additem Cells(NoLig, NoCol)
    Next
    mais tu peux aussi utiliser RowSource.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Listbox1.RowSource = "B2:B" & DerniereLigne
    Je te joins un petit fichier que je viens de retrouver. Il est très basique mais il devrait pouvoir te faire comprendre certaines "choses"... Listbox avec Additem, list ou rowsource.xls
    Bon courage.

  14. #14
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox4.RowSource = "a1:a4"
    le range des dates
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub UserForm_Initialize()
    ComboBox4.Clear
    With Worksheets("Feuil2")  'Non de la feuille  de ces dates
    Counter = 9                  '//    Mets le mot  "StopLoading" apres les  dates,  9 indiquer la premiere ligne de chargement ,2 colonne de chargement 
    While (.Cells(Counter, 2) <> "StopLoading") And (Counter < 100) 'Pour sortir de la boucle
     
     
        ComboBox4.AddItem (.Cells(Counter, 2))
        Counter = Counter + 1
    Wend
    End With
    End Sub

  15. #15
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    bonjour,

    quand je veux éxécuter , counter est souligné, il me le reconnait pas.

    bonjour,

    voici mon fichier, j'essaye d'être clair, car il est vrai qu'auparavant je ne l'étais pas.

    Dans le combox3 il y a les trois dates qui s'affichent ,
    comment je pourrai faire pour afficher dans le combox3 aussi la possibilité "tous".
    Et donc de vérifier si l'optionbouton est vrai pour la valeur "tous"
    tous= 12 et 18 et 60 mois pour ce cas là.

    merci pour votre aide

  16. #16
    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
    Par défaut
    Hello delphidelphi,
    Tu es gentil de vouloir aider mais as-tu testé ton code ?
    Il y a plusieurs manières plus simples de connaître la dernière ligne d'une plage de données sans ajouter une balise. Par exemple, pour la colonne A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A65536").end(xlup).row
    à adapter pour les autres colonnes.
    Ensuite, dans ton code, si tu commences avec With, ajoute "End with", sinon, Stéphanie, qui débute visiblement, ne saura pas ce qui se passe.
    Enfin, tes parenthèses ne servent à rien.
    Corrigé, et en supposant que les données à placer dans le combo soit dans la colonne 1, que les données commencent à la ligne 1, ton code devrait être quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Cell as range
    With Thisworkbook.sheets("Feuil2") 'Nom de la feuille
         For each cell in Range("A1:A" & Range("A65536").end(xlup).row)
             ComboBox4.AddItem Cell
         Next
    End with
    Pour finir, Stéphanie, dans le fichier que j'ai joint, tu as tout ça.

  17. #17
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Parce que vous utilisez "Option Explicit"
    Pour ajouter le mot "Tous" c'est facile mais comment vouler vous l'utiliser
    Ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        For i = 1 To oCollection.Count
            ComBox3.AddItem oCollection.Item(i)
     
        Next i
        If ComBox3.ListCount > 1 Then
        ComBox3.AddItem ("Tous")
        End IF
    VOIR LE FICHIER

  18. #18
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    super merci

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

Discussions similaires

  1. LES TECHNIQUES DES SGBDR / MySQL rapide ???
    Par SQLpro dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2003, 12h16
  2. [Compilateurs] Sites techniques
    Par Traroth dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 26/03/2003, 10h11
  3. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 10h37
  4. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 16h11
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 16h41

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