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 :

[VBA-E] Adaptation avec des listbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut [VBA-E] Adaptation avec des listbox ou combobox
    Bonjour,

    J'ai voulu adapter cette exemple en remplacant les textbox par des listbox mais sans succes quelqu'un pourrait m'aider.
    Je voudrais obliges des utilisateurs à choisir les donnes à saisir dans des listes déroulantes.

    contributions VBA
    [Sources]Utiliser un Userform pour Lire et écrire facilement ds 1 feuille de calculs


    merci par avance.

  2. #2
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    quel exemple?
    Que veux tu faire exactement?
    si tu veux que les gens soient obligés de mettre que ce que tu as mis, utilise une ComboBox avec la propriété :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonCbx.Style = fmStyleDropDownList

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox
    Bonjour,

    J'ai essaye avec des listbox ou des combobox sans succes.

    voici le fichier donc je parle. il a ete fait par ouskel'n'or.
    http://cjoint.com/?ennpvfYnxx

    à la place des textbox, je voudrais utiliser des listes déroulantes soit listbox ou combobox ( differentes ? ).

    merci

  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
    Points : 15 546
    Points
    15 546
    Par défaut
    Explique ce que doivent contenir list et combobox. Là je ne comprends pas l'objectif. Veux-tu, pour chaque ligne d'une feuille de calculs, mélanger les données que contiennent tes list ou combos ? Mais alors, où tes combos prennent-elles leurs données ?

    NB - si c'est ça, l'appli dont tu parles n'est pas adaptée

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox
    Bonjour,

    Voici le fichier excel que j'ai crée. Tu pourras voir se que j'ai fait. Par contre, je ne peux divulger les donnes du tableau c'est pour cela que j'ai mis des X.

    http://cjoint.com/?enoBd4DUKx

    Je voudrais exploiter ton exemple pour remplir mon tableau.
    Soit avec listbox ou combobox ( quel est le plus pratique ? ) mais donnes sont par fixer en nombre, il fait que je puisse en rajouter => je croix que le plus pratique dans mon cas est le combobox.

    ici dans mon exemple, je copie un tableau dans chaqu'une de mes feuilles. J'ai crée des validations en listes deroulantes allant chercher les donnees dans le tableau copie.

    Ce qui m'a pose des problemes de selection de cellules d'ailleurs. Ce n'est pas encore robuste car je dois de temps en temps bidouille le numéro de selection de cellule. Et je ne sais pourquoi ? ( ici cela doit etre 5 jusqu'à detection de la derniere ). Mais j'ai des cas ou je dois mettre 3 ou autre car il me decale ma selection. C'est problématique dans mon tableau global car il y a des lignes qui disparaissent .

    On m'a demandé si on pouvait copier un ligne pour eviter de redocumenter une ligne entierement. J'ai teste on peut copier manuellemnt la ligne et renommer le numero de la colonne A pour continuer mon incrémentation de ligne. Je n'ai trouve que cette maniere pour inserer une ligne et copier.

    C'est pas facile à expliquer ce que l'on voudrais. En te donnant mon tableau, tu vas comprendre ce que j'ai essaye de faire.

    J'espere que tu va mieux comprendre ce que j'ai essaye de faire. Je debute en vba. Et ma maniere de proceder est la suivante : je recupere des bouts de code à droite et à gauche et je teste . Et c'est pas evident.

    merci.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox
    Donnees d'une combobox ou listbox

    j'ai deux possibilite soit je pointe sur une zone d'une feuille soit je met mes donnes dans mon code ?

  7. #7
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Désolé, j'ai ouvert le fichier mais le prmier clic a planté VB, motif "feuille protégée".
    J'ai relu ton message, hélas, je n'arrive pas à comprendre ce que tu veux.
    Citation Envoyé par Tu
    Je voudrais exploiter ton exemple pour remplir mon tableau.
    Soit avec listbox ou combobox ( quel est le plus pratique ? ) mais donnes sont par fixer en nombre, il fait que je puisse en rajouter => je croix que le plus pratique dans mon cas est le combobox.
    Que veux-tu obtenir au bout du bout ?

    Bon, j'ai ouvert ton fichier, ai fait une macro qui affiche toutes les feuilles et les déprotège afin de pouvoir commencer à espérer comprendre quelque chose... et enfin, je crois comprendre que tu souhaites copier des choses dans la feuille 24 quand tu cliques sur le bouton "Tableau global"

    Citation Envoyé par Tu
    ici dans mon exemple, je copie un tableau dans chaqu'une de mes feuilles. J'ai crée des validations en listes deroulantes allant chercher les donnees dans le tableau copie.
    1 - Là je n'ai pas trouvé de tableau "copie"
    2 - Quelles données veux-tu voir copiées dans ces listes ?
    3 - Dans ton fichier, je ne vois aucune liste déroulante
    Tu les as cachées où ?
    4 - Enfin, tu dis vouloir utiliser mon exemple alors que tu n'utilises pas d'userform. J'ai bien cherché partout, je n'en ai pas vu.
    Or, l'exemple que tu dis vouloir prendre pour modèle, part précisément d'un userform et des possibilités qu'offre l'utilisation d'une scrollbar.

    Un conseil : Schunte toutes tes protections et masquage de feuilles pour la mise au point de ton fichier. Tu y verras plus clair et tu pourras toujours faire ça à la fin.
    Tu ne touches pas à ton code mais tu ajoutes simplement un
    dans toutes les routines qui masquent quelque chose, ligne de code, qu'une fois fini ton projet, tu pourras supprimer par un "Remplacer (la ligne) par "" dans tout le code de ton projet.
    Pour afficher tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub AfficherTout()
    Dim Fl as worksheet
    For Each Fl In ActiveWorkbook.Worksheets
        Fl.Visible = True
        Fl.Unprotect Password:="labinal"
    Next
    End Sub
    Ai-je bien compris cette toute petite partie de ce que tu souhaites faire Pièce jointe 11983 Est-ce bien copier quelque chose dans ta feuille 24... Mais, si oui, que veux-tu copier.
    Pour les listbox, je n'ai toujours pas compris
    Une fois que tu les auras, que veux-tu obtenir ? Corriger les items d'une liste n'est pas une affaire anodine, mais les corriger toutes... Je vois venir comme une galère...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox
    desole pour protection je l'avais pas ote sur cette version .

    Je vais t'expliquer comment fonctionne mon tableau....

    La feuille 25 est copie sur feuille 2 à 21.
    Si tu prends feuille 2 , REP 1 ( LIGNE 5 ) tu peux choisir des donnees dans une liste deroulante, j'ai fait cela pour chaque colonne etc...

    En cliquant sur copie ligne tu copie REP 1 puis cela renomme REP 2 ETC...

    Tu peux faire cela sur toutes les feuilles.

    Mon tableau global recopie tableau feuille 2 avec titre puis mes lignes documentes pour feuille 3 à 21.

    Voici un peu plus d'explication sur le fonctionnement de mon tableau .

    Je n'y ai pas encore integrer ton bout de code avec useform car je n'arrive pas à l'adapter avec des combobox....

    La finalite est de pouvoir inserer ou copie une ligne, en effacer et modifier une, "voir en supprimer sauf si cela me supprime des donnees de mon deuxieme tableau" , mettre des protections.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox ou combobox
    j'ai travaille un peu sur ce que j'aimerais faire. Mais je bloque sur la verification des lignes cela bug, insertion de mes donnees de mes combobox avec le ScrollBar cela bug... Pour le reste cela marche j'ai pu reprendre ce qui avait ete fait.

    http://cjoint.com/?eoaW2jOUaX

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut erreur execution '-24470248809(800700057)':
    bonjour,

    je n'arrive pas à resoudre cette erreur ( objet specifie introuvable ).
    Il bloque sur la ligne en rouge.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function verifligne() 'Vérifie si la ligne est vide
    Dim NoCol As Integer, NomControle As String
        For NoCol = 1 To NbreColonnes
            NomControle = "Textbox" & NoCol
            verifligne = verifligne Or Me.Controls(NomControle).Text <> ""    Next
    End Function

  11. #11
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Ton next est bien sur la ligne suivante ?

    Tu es sûr que "TextBox & NoCol" existe ?
    Quel est la valeur de NoCol quand tu as ce message ?
    Es-tu sûr du nombre de colonnes (NbreColonnes)
    Comment le définis-tu ?

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par ouskel'n'or
    Tu es sûr que "TextBox & NoCol" existe ?
    ...
    +1

    tu as nommé tes listbox textbox

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des combobox
    J'ai essayer d'utiliser plutot des combobox.

    J'ai remplace tous les textbox par des combobox.

    J'avais remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomControle = "Textbox" & NoCol
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomControle = "Combobox" & NoCol
    cela n'a rien resolu.

    De plus, mon tableau que je veux remplir à 19 colonnes dont trois possibilite de rentrer des valeurs manuellement. ( A - S )
    Mes 16 combobox vont chercher les donnees à choisir en AA - AM.

    Je pense qu'avoir deux tableaux sur la meme feuille pertube la verification sur le tableau à remplir. Je suis en train de regarder pour utiliser additem.
    Mais cela ne resoud pas mon probleme sur ses quelques lignes de code.

    J'ai besion un peu plus d'explication sur ce bout de programme.

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    affiche la chaine de carâctére MonControl , par un msgbox, où un debug.print.. où une info-bulle dans le code au moment du bug... histoire de voir si le nom de contrôle construit dans cette chaîne existe bien...

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des combobox
    bon j'ai pas mal avance. J'ai resolu un grand nombre de mes problemes.
    J'arrive à inserer mon choix de comobobox sur une ligne et puis une autre ...,
    effacer une ligne et detruire, par contre j'ai un probleme lorsque je quitte userforme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Init() 'Renseigne les combobox pour la ligne NoLigne
    Dim NoCol As Integer, NomControle As String
        For NoCol = 1 To NbreColonnes
            NomControle = "Combobox" & NoCol
            Me.Controls(NomControle) = fl.Cells(NoLigne, NoCol).Value
            Me.NuméroLigne = " Ligne " & NoLigne 'Affichage du N° de ligne
        Next
    End Sub
    il me met erreur execution 380 ( impossible de definir la propriete value. valuer de propropriete non valide .

    avant j'avais Me.Controls(NomControle).text = fl.Cells(NoLigne, NoCol).Value
    mais cela bloque sur text est rien ne marchait par contre.

    Je ne sais pas faire apparaitre les bug par un code... desole

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox ou combobox
    J'ai utiliser msgbox : la reponse un FAUX sur ma derniere erreur
    Je ne comprends pas trop le resultat ?????

    mais si cela te parle ....

  17. #17
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    on peu voir ou/comment tu la mis ce messagebox..?

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox ou combobox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Init() 'Renseigne les combobox pour la ligne NoLigne
    Dim NoCol As Integer, NomControle As String
        For NoCol = 1 To NbreColonnes
            NomControle = "Combobox" & NoCol
            Msgbox Me.Controls(NomControle) = fl.Cells(NoLigne, NoCol).Value
            Me.NuméroLigne = " Ligne " & NoLigne 'Affichage du N° de ligne
        Next
    End Sub
    Je l'ai place devant la ligne souligne en jaune lors du debogage

    Par contre, c'est pas pratique. Cela m'a tout bloque. Impossible de reprendre la main.

    J'ai aussi essayer avec debug.print mais rien ne s'est passe. Cela imprime sur imprimante ? ( la mien est en rade ).

  19. #19
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Init() 'Renseigne les combobox pour la ligne NoLigne
    Dim NoCol As Integer, NomControle As String
        For NoCol = 1 To NbreColonnes
            NomControle = "Combobox" & NoCol
           debug.print "NomControle = " &  NomControle 
           debug.print "cellule = "  & fl.Cells(NoLigne, NoCol).Value
           stop ' Regarde le texte dans la fenêtre exécution CTRL G..
     
           Me.Controls(NomControle) = fl.Cells(NoLigne, NoCol).Value
            Me.NuméroLigne = " Ligne " & NoLigne 'Affichage du N° de ligne
        Next
    End Sub
    le résultat de debug.print s'affiche dans fenêtre exécution accessible par CTRL G..!

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 11
    Points
    11
    Par défaut Adaptation avec des listbox ou combobox
    Voici le resultat

    NomControle = Combobox1
    cellule = Véhicule

    Merci pour les explications. C'est plus clair maintenant.


    Est que cela te parle car pour moi je n'ai pas encore tout compris au niveau du code.

Discussions similaires

  1. [VBA-E]Simplifier avec des instances
    Par tonton fred dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/05/2007, 11h48
  2. [VBA-E]Problème avec des ToggleButton
    Par dilkas dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/03/2007, 12h15
  3. Réponses: 6
    Dernier message: 20/02/2007, 18h00
  4. [VBA-E] Problème avec des dates !
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/03/2006, 14h12

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