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 :

récupérer les données de mulltiselect listbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut récupérer les données de mulltiselect listbox
    Bonjour tout le monde,
    j'ai un problème avec ma listbox et je ne sais pas la raison .
    bon j'ai une feuille ou les données sont stockés , je cherche les données avec un bouton chercher , après ils s'affichent dans ma listbox , je sélectionne une valeur et elle s'affiche dans mon tableau, cela fonctionne parfaitement , mais quand j'ai changé les paramètres de la listbox vers multi select , mon code ne fonctionne plus .
    le voila :
    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
    Private Sub CommandButton1_Click()
     
     
          Dim Msg As String
          Dim i, j  As Integer
          j = 4
          Msg = "You selected" & vbNewLine
          For i = 0 To ListBox1.ListCount - 1
              If ListBox1.Selected(i) Then
                  Msg = Msg & ListBox1.List(i) & vbNewLine
              ActiveCell = ListBox1.Value
     
            Unload Me
             End If
          Next i
          With Worksheets("BPU")
           While .Cells(j, 3).Value <> ActiveCell.Value
           j = j + 1
           Wend
           ActiveCell.Offset(0, 1).Value = .Cells(j, 5).Value
           ActiveCell.Offset(0, 2).Value = .Cells(j, 4).Value
     
     
           End With
     
          MsgBox Msg
          Unload Chercher
      End Sub
    Merci d'avance.

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    bonjour
    bonjour
    c'est normal
    en mode multiselect tu ne peut plus utliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell = ListBox1.Value
    donc tout les reste de code qui suit est faux
    il va te falloir changer de stratégie de code
    si je comprends bien tu veut inverser la colonne 4 et 5 pour toutes les occurrences dans le sheets("BPU") de la selection (listbox)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour Merryy,

    Il faudrait que tu déplaces le Unload Me.

    En effet, si le test ListBox1.Selected(i) (= True) est vérifié, tu vas fermer l'UF et ensuite le Next i te refais passer sur ListBox1.Selected(i) qui provoque l'erreur.

    EDIT : Patrick
    mea culpa, j'ai parlé trop vite. Mais j'ai quand même un doute. Si tu as plusieurs éléments de sélectionnés et que tu fermes l'UF dès le premier récupéré, tu ne pourras pas trouver le suivant.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    bonjour
    bonjour
    c'est normal
    en mode multiselect tu ne peut plus utliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell = ListBox1.Value
    donc tout les reste de code qui suit est faux
    il va te falloir changer de stratégie de code
    si je comprends bien tu veut inverser la colonne 4 et 5 pour toutes les occurrences dans le sheets("BPU") de la selection (listbox)
    Oui exactement c'est ce que je veux faire, et quand je selectionne , il m'affiche que la dernière valeur, il écrase les autres

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par antonysansh Voir le message
    Bonjour Merryy,

    Il faudrait que tu déplaces le Unload Me.

    En effet, si le test ListBox1.Selected(i) (= True) est vérifié, tu vas fermer l'UF et ensuite le Next i te refais passer sur ListBox1.Selected(i) qui provoque l'erreur.

    EDIT : Patrick
    mea culpa, j'ai parlé trop vite. Mais j'ai quand même un doute. Si tu as plusieurs éléments de sélectionnés et que tu fermes l'UF dès le premier récupéré, tu ne pourras pas trouver le suivant.
    Bonjour,
    ou je dois deplacer le

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    bonjour Antony

    oui aussi mais a mon avis le message d'erreur il arrive dès le activecell........ et c'est normal puisque la sélection est un tableau(plusieurs éléments)
    et non pas une valeur(string ou numérique)

    dans ce cas la se sera un truc du genre
    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
    Private Sub CommandButton1_Click()
        Dim Msg As String
        Dim i, temp As String
            Msg = "You selected" & vbNewLine
        For i = 0 To listbox1.ListCount - 1
            If listbox1.Selected(i) Then
                Msg = Msg & listbox1.List(i) & vbCrLf
                'ActiveCell = listbox1.Value
                With Worksheets("BPU")
                   set  cel = Column("c:c").Find(listbox1.Selected(i), lookat:=xlWhole)
                    temp = .Cells(cel.Row, 4).Value
                    cel.Offset(0, 1).Value = .Cells(cel.Row, 5).Value
                    cel.Offset(0, 2).Value = temp
                End With
            End If
        Next i
        MsgBox Msg
        Unload Chercher
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut
    il me donne erreur , sub ou function nn definie (column)

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    peut que meme sur j'ai oublié le"s" a columns
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut
    il a passé le columns vers le temp

    je suis désole si je pose beaucoup de question , je suis débutante en vba , donc je comprends pas beaucoup de choses.
    fin , ici il me donne problème avec la variable temp

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    met un "s" devant "temp"

    il se peut que cette variable soit utilisée déjà par le system ou appelle la comme tu veux
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut
    non , le probleme c'est pas dans le s parceque je l'ai changé et il me donne toujours erreur

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    déjà j'ai omis un detail :met un point devant columns peut etre que list n'est pas prise au bon endroit donc le find doit pas fontionner
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 62
    Points
    62
    Par défaut
    il me donne toujours erreur de type : variable nn définue

Discussions similaires

  1. [Delphi for PHP] Récupérer les données d'un Datagrid pour une combobox ou listbox
    Par Truebison dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/08/2007, 09h27
  2. XMLHttpRequest : Impossible de récupérer les données
    Par laurent_ifips dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2005, 13h28
  3. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  4. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

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