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 :

Comparaison Listboxes multicolonne puis extraction


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
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut Comparaison Listboxes multicolonne puis extraction
    Bonjour à tous nos valeureux confinés!

    J'ai galéré toute la journée d'hier sur une problématique qui me semblait pourtant simple... (bon avec les enfants et leurs devoirs dans le salon, ça n'aide pas à se concentrer)...

    Je souhaite comparer 2 listbox multicolonne aux contenus un peu différents:

    • Listbox 2 prends sa source dans un onglet "nomenclature" d'article et récupère les codes des pièces qui composent l'article + nom fournisseur et description de ces pièces.
    • Listbox 3 s'appuie sur les codes des pièces pour aller chercher de nouvelles informations dans un onglet "références"


    une colonne est donc commune : les codes pièces en column1... je souhaiterai extraire la liste des pièces qui ne sont pas présentes dans l'onglet "références" et visualiser leur code, nom fournisseur et description dans une listbox 4.

    puis éventuellement le renvoyer sous un onglet pour impression... mais je n'en suis pas encore là!

    Voici d'où je pars, et je n'y arrive pas: la listbox4 demeure vide, ne me remonte que la première colonne ou 100 fois la dernière ligne! (nième tentative de variante... sans succès!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      'retrouve les références manquantes
    For v = 0 To ListBox2.ListCount - 1
            If Me.ListBox2.Column(0, v) <> Me.ListBox3.Column(0, v) Then
            Me.ListBox4.AddItem Me.ListBox2.List(v, 0)
            Me.ListBox4.List(v, 1) = Me.ListBox2.List(v, 1)
            Me.ListBox4.List(v, 2) = Me.ListBox2.List(v, 2)
            End If
    Next v
    cet essai bloque en erreur 381 à la ligne 4...

    Help !!

  2. #2
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Et accessoirement, une petite "colle"...

    je remplis une série de textboxes depuis l'onglet "2" selon la sélection d'un item de ma combobox puis lance une recherche dans l'onglet "ICPE" selon ce qui a été renseigné en Textbox 60

    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
    30
    31
    32
    33
    34
    35
    'renseigner les champs des mentions de dangers et de leurs seuils et rubriques respectifs
    For j = 1 To 40
    Me.Controls("TextBox" & j).Value = ""
    Next j
     
    Dim Ligne As Long
     
       Set ws = Worksheets("2")
     
       Ligne = Me.ComboBox1.ListIndex + 4
     
        Me.TextBox1 = ws.Cells(Ligne, 11)
        Me.TextBox2 = ws.Cells(Ligne, 12)
        Me.TextBox3 = ws.Cells(Ligne, 13)
        Me.TextBox4 = ws.Cells(Ligne, 14)
        Me.TextBox5 = ws.Cells(Ligne, 15)
        Me.TextBox6 = ws.Cells(Ligne, 16)
        Me.TextBox7 = ws.Cells(Ligne, 17)
        Me.TextBox8 = ws.Cells(Ligne, 18)
        Me.TextBox9 = ws.Cells(Ligne, 19)
        Me.TextBox10 = ws.Cells(Ligne, 20)
        Me.TextBox50 = ws.Cells(Ligne, 50)
        Me.TextBox60 = ws.Cells(Ligne, 4)
     
     Dim nomcherche As String, Cellule As Variant
     
    nomcherche = TextBox60.Value
     
    With Worksheets("ICPE").Range("B1:B1400")
     
    Set Cellule = .Find(nomcherche, LookIn:=xlValues)
        If Not Cellule Is Nothing Then
        TextBox70.Value = Left(Cellule.Offset(0, -1).Value, 4)
     End If
    End With
    tout fonctionne sauf la partie recherche (séparément la macro fonctionne)... pourquoi ne prends elle pas en compte la valeur de ma textbox60?

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour
    Citation Envoyé par IronHeavy Voir le message
    Et accessoirement, une petite "colle"...
    Qu'est-ce que ça donne avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomcherche = ws.Cells(Ligne, 4).Value

  4. #4
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Bonjour Patrice740,


    Je viens d'essayer, ça n'agit pas non plus!

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par IronHeavy Voir le message
    Je viens d'essayer, ça n'agit pas non plus!
    2 possibilités :
    - tu cherches pas au bon endroit
    - la valeur cherchée n'est pas présente (elle n'est pas rigoureusement identique), attention au type de valeur, aux caractères non visibles ...

  6. #6
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    c'est à devenir fou!

    le même code fonctionne parfaitement dans une autre formulaire...

    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 TextBox2_Change()
     
    Dim nomcherche As String, Cellule As Variant
     
    nomcherche = TextBox2.Value
     
    With Worksheets("ICPE").Range("B1:B1400")
     
    Set Cellule = .Find(nomcherche, LookIn:=xlValues)
        If Not Cellule Is Nothing Then
        TextBox8.Value = Left(Cellule.Offset(0, -1).Value, 4)
     End If
    End With
     
    End Sub
    EDIT: par acquis de conscience, j'ai fermé et rouvert le fichier... maintenant ça fonctionne???

    Mais une seule fois... si je retouche à la combobox, la recherche ne s'effectue de nouveau plus, je suis forcé de fermer puis rouvrir le fichier pour que cela redevienne fonctionnel!

    la fiabilité du bousin m'inquiète... comment consolider cela?

Discussions similaires

  1. [XL-2003] extraction de la totalité d'une listbox multicolonne vers une variable de type range
    Par Umaro137 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2009, 15h02
  2. [vc express] listBox multicolonne
    Par k_boy dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 19/09/2006, 09h56
  3. Boucle avec une listbox multicolonne
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/08/2006, 21h45
  4. ListBox Multicolonne à largeur variable
    Par ejaecker dans le forum Delphi
    Réponses: 2
    Dernier message: 21/07/2006, 18h32
  5. Réponses: 4
    Dernier message: 21/07/2006, 14h53

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