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 :

Afficher une seule colonne de la même ligne VBA


Sujet :

Macros et VBA Excel

  1. #41
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Arff, j'avoue ne pas tout comprendre.

    Peux-tu mettre deux fichier en partage dans la discussion, un pour chaque type d'organisation, ça permet de faire des recherche sans prendre le risque de partir sur une mauvaise piste.

    Autre chose, as tu la main sur tout les fichiers, peux-tu mettre en place des tableaux partout? (j'entend par la menu Inserer, tableau)
    Je vais essayer de créer des fichiers similaires et les partager .

    Oui je peux mettre en place des tableaux

  2. #42
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Arff, j'avoue ne pas tout comprendre.

    Peux-tu mettre deux fichier en partage dans la discussion, un pour chaque type d'organisation, ça permet de faire des recherche sans prendre le risque de partir sur une mauvaise piste.

    Autre chose, as tu la main sur tout les fichiers, peux-tu mettre en place des tableaux partout? (j'entend par la menu Inserer, tableau)

    VOICI UN EXEMPLE D'un classeur avec 3 feuilles

    EXEMPLE.xlsx

  3. #43
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    En attendant voila une trame

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Option Explicit
     
    Private RgnData As Range
    Private RgnSecteur As Range, iSecteur As Integer
     
    Property Let RangeData(Value As Range)
        'On pointe la totalité du tableau
        Set RgnData = RangeData
     
        'On peut également rechercher la position des colonne en fonction des entête
        'Et renseigner ces positions dans des variables pour la suite du code
        'Utilisable aussi pour configurer le contenu des combobox, comme dans l'exemple de Pierre Fauconnier
        '...
     
        'C'est sans doute ici qu'il faudra gérer cette histoire de données A B C en ligne ou en colonne
     
        'On recherche le mot Secteur sur la 1ère ligne
        Set RgnSecteur = RangeData.Rows(1).Find("Secteur", , xlValues, xlWhole, MatchCase:=False)
        If RgnSecteur Is Nothing Then Exit Property
     
        'On prend en compte uniquement les données sans l'entête
        Set RgnSecteur = RgnSecteur.Resize(RgnData.Rows.Count - 1).Offset(1)
     
     
    End Property
     
     
    Private Sub ComboBox1_Change()
    Dim CritSecteur As String, CritLettre As String
    Dim CellFind As Range, StrAddress As String
     
    'A adapter en fonction des combobox
    CritSecteur = "Secteur"
    CritLettre = "A"
    'ListBox....clear
     
    'On s'assure qu'un tableau à été précisé
    If RgnData Is Nothing Then Exit Sub
     
    'On place les entêtes dans le Listbox
    'Listbox.additem "Id", "Nom", "Secteur", CritLettre
     
    'On recherche les cellules correspondant au critère Secteur
    Set CellFind = RgnSecteur.Find(CritSecteur, , xlValue, xlWhole, MatchCase:=False)
    If Not CellFind Is Nothing Then
        StrAddress = CellFind.Address
        Do
            'On place les données dans Listbox avec additem en fonction de CritLettre si renseigné
            '...
     
            'On passe à la suite
            Set CellFind = RgnSecteur.FindNext(CellFind)
        Loop While Not CellFind Is Nothing And CellFind.Address <> StrAddress
    End If
     
    End Sub

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #44
    Membre éprouvé Avatar de Wololol
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 104
    Par défaut
    Normalement , je voulais quand je clique sur ma Liste déroulante "A" : j'obtient le "Nom1" dans ma LISTBOX1 et en même temps toute la colonne dans ma ListBox2 . sachant que cette variable peut se trouver soit dans feuille2 ou feuille3 ou feuille4.

    J'ai pensé à parcourir toutes les feuilles en comparant les entêtes dès qu'il trouve la variable il affiche la colonne . ( j'ai pas su comment écrire le code en VBA ) . Et donc , je me suis dis je ferais ça séparément avec deux listes déroulante : une qui affiche le NOM et l'autre qui affiche la colonne .
    Donc ce qu'il te faudrait, c'est une boucle qui pour chaque feuille de ton classeur, recherche le libellé , et affiche toutes les lignes correspondantes ?

    Petite question : est-il possible qu'il y est "A" sur plusieurs feuille ?

  5. #45
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    En attendant voila une trame

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Option Explicit
     
    Private RgnData As Range
    Private RgnSecteur As Range, iSecteur As Integer
     
    Property Let RangeData(Value As Range)
        'On pointe la totalité du tableau
        Set RgnData = RangeData
     
        'On peut également rechercher la position des colonne en fonction des entête
        'Et renseigner ces positions dans des variables pour la suite du code
        'Utilisable aussi pour configurer le contenu des combobox, comme dans l'exemple de Pierre Fauconnier
        '...
     
        'C'est sans doute ici qu'il faudra gérer cette histoire de données A B C en ligne ou en colonne
     
        'On recherche le mot Secteur sur la 1ère ligne
        Set RgnSecteur = RangeData.Rows(1).Find("Secteur", , xlValues, xlWhole, MatchCase:=False)
        If RgnSecteur Is Nothing Then Exit Property
     
        'On prend en compte uniquement les données sans l'entête
        Set RgnSecteur = RgnSecteur.Resize(RgnData.Rows.Count - 1).Offset(1)
     
     
    End Property
     
     
    Private Sub ComboBox1_Change()
    Dim CritSecteur As String, CritLettre As String
    Dim CellFind As Range, StrAddress As String
     
    'A adapter en fonction des combobox
    CritSecteur = "Secteur"
    CritLettre = "A"
    'ListBox....clear
     
    'On s'assure qu'un tableau à été précisé
    If RgnData Is Nothing Then Exit Sub
     
    'On place les entêtes dans le Listbox
    'Listbox.additem "Id", "Nom", "Secteur", CritLettre
     
    'On recherche les cellules correspondant au critère Secteur
    Set CellFind = RgnSecteur.Find(CritSecteur, , xlValue, xlWhole, MatchCase:=False)
    If Not CellFind Is Nothing Then
        StrAddress = CellFind.Address
        Do
            'On place les données dans Listbox avec additem en fonction de CritLettre si renseigné
            '...
     
            'On passe à la suite
            Set CellFind = RgnSecteur.FindNext(CellFind)
        Loop While Not CellFind Is Nothing And CellFind.Address <> StrAddress
    End If
     
    End Sub
    D'accord maintenant je vois que je dois vraiment lui préciser la variable dans le code et si j'ai 179 variables ? y'a pas moyens de les comparer juste la variable sélectionnée avec les entêtés existants ?

    pardon si j'ai mal compris

  6. #46
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Wololol Voir le message

    Petite question : est-il possible qu'il y est "A" sur plusieurs feuille ?
    Non c'est parce que y'a 179 variables et elles sont "distribués" sur plusieurs feuilles : exactement 3 feuilles .

  7. #47
    Membre éprouvé Avatar de Wololol
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 104
    Par défaut
    D'accord maintenant je vois que je dois vraiment lui préciser la variable dans le code et si j'ai 179 variables ? y'a pas moyens de les comparer juste la variable sélectionnée avec les entêtés existants ?

    pardon si j'ai mal compris
    Je n'ai pas lu attentivement son code, mais je pense que tu peux modifier ce qu'il a écrit "en dur" dans le code par la valeur de ton ComboBox.

    Par exemple "Secteur" par ComboBox1.Value

  8. #48
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Oui c'est ça Wololol

    En fait la property Let est utilisée avant l'affichage du UserForm.
    Tu fait un truc style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'A rendre dynamique bien sûr...
    UserForm.RangeData = Range("A1:AZ:623")
    'Ou directement le nom du tableau ce qui est l'idéal dans l'absolu
    Ce code exécute celui de property Let RangeData. Du cou p c'est ici qu'il faudra traiter ton tableau pour rechercher quelle variable tu veux en plus de ID, Nom, ...
    Tu peux même imaginer créer un deuxième Let pour transmettre une liste de critère (A, B, F, G), qui seront ensuite recherchée dans le tableau, si c'est le cas il faudra modifier un peu la structure de base, à toi de dire ce que tu cherche à faire exactement.

    Je suis toujours preneur pour les fichiers démo et pour savoir exactement ce que tu souhaites faire, ça évitera de partir dans tous les sens pour au final faire du bricolage pour faire correspondre à ton besoin. Et je ne suis sans doute ps le seul

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #49
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Je suis toujours preneur pour les fichiers démo et pour savoir exactement ce que tu souhaites faire, ça évitera de partir dans tous les sens pour au final faire du bricolage pour faire correspondre à ton besoin. Et je ne suis sans doute ps le seul
    Oui je vais essayer de faire pareil .

    Je t'ai déjà passer les fichiers démo je vais les renvoyer ici EXEMPLE.xlsx

    Merci beaucoup

  10. #50
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Oupss, je l'ai pas vu passer...

    Maintenant que je l'ai sous les yeux. Si j'ai bien compris.

    • Chaque Feuille de ton fichier exemple représente un classeur excel différents
      • Dans Feuille1 Activité | Num | VRB |Lib
        • Je suppose que c'est le tableau de départ, celui qui contient le code?
        • Je suppose que NUM représente ce que tu nommais dans les autres conversation "SECTEUR"? C'est donc une des données prise en compte dans les combox?
        • Le seul lien que je vois avec les autres tableaux c'est VRB, c'est ça?
        • Ce sont les valeurs (VRB) que tu utilises pour renseigner ton combobox ?
          • Comment fais-tu ensuite pour savoir dans quel classeur sont les données?
          • Il faut regarder dans tous les classeurs pour rechercher la valeur VRB choisie?
          • Tu sélectionnes qu'une seule valeur VRB par recherche?


      • Dans les autres feuille
        • Les produits ayant le même NOM, n'ont pas le même ID, normal? Il faut donc ne tenir compte que du NOM?
        • Les combo se renseignent comment? C'est toi qui fait la liste ou il doivent se renseigner en fonction du contenu des fichiers?




    J'ai du mal à comprendre.
    Si tu fais une recherche en précisant NUM et VRB. Hors dans les fichiers, NUM n'apparait que dans le fichier1, pas dans les autres, à quoi sert NUM dans ce cas?

    Faut vraiment que tu mettes au clair ce que tu veux, on en est à deux pages de conversation et le cahier des charges n'est toujours pas complet !
    Il faut te mettre à notre place, je ne connais pas ton domaine, ce qui te parait évident ne l'ai pas forcement pour moi.
    Si je te dis qu'il est logique d'ouvrir le disjoncteur avec d'ouvrir le sectionneur de ligne parce que ce dernier n'a pas de pouvoir de coupure. Pour un électricien ça a du sens, est-ce que ça en a pour toi? Pourtant c'est très simple.
    Donc aide nous à comprendre ce que tu fais si tu veux une aide efficace. Un problème bien posé est déjà à moitié résolu, il faut que tu poses ton problème.

    ++

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #51
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Oupss, je l'ai pas vu passer...

    Maintenant que je l'ai sous les yeux. Si j'ai bien compris.

    [LIST][*]Chaque Feuille de ton fichier exemple représente un classeur excel différents
    [LIST][*]Dans Feuille1 Activité | Num | VRB |Lib
    • Je suppose que c'est le tableau de départ, celui qui contient le code?
    • Je suppose que NUM représente ce que tu nommais dans les autres conversation "SECTEUR"? C'est donc une des données prise en compte dans les combox?
    • Le seul lien que je vois avec les autres tableaux c'est VRB, c'est ça?
    • Ce sont les valeurs (VRB) que tu utilises pour renseigner ton combobox ?
      • Comment fais-tu ensuite pour savoir dans quel classeur sont les données?
      • Il faut regarder dans tous les classeurs pour rechercher la valeur VRB choisie?
      • Tu sélectionnes qu'une seule valeur VRB par recherche?


    [*]Dans les autres feuille
    • Les produits ayant le même NOM, n'ont pas le même ID, normal? Il faut donc ne tenir compte que du NOM?
    • Les combo se renseignent comment? C'est toi qui fait la liste ou il doivent se renseigner en fonction du contenu des fichiers?




    ++

    OUBLIE SECTEUR ET MACHIN PAR CE QUE JE T'ai passé un fichier XL qui ressemble presque aux fichiers que j'ai actuellement de la BDD de l'entreprise.

    Ce que je voulais que tu comprenne par mon exemple :
    c'est un classeur avec 4 feuilles :
    je m’intéresse actuellement qu'à la colonne VRB ( A,B,C,D,E) dans la feuille 1
    POURQUOI ?
    par ce que maintenant j'arrive à afficher le libelle en sélectionnant une variable dans la COMBOBOX--> ce libelle j'en ai besoin pour indiquer dans quel variable je suis , car si tu remarques bien dans les feuilles 2,3,4 les variables qui sont des cellules dans la feuille 1 deviennent des colonnes avec des valeurs dans les autres feuilles .

    Le but est de pouvoir afficher la colonne portant le nom soit de ( A,B,C,D,E) qui se trouve dans l'une des feuilles (feuille 2 ou feuille 3 ou 4 ) .

    Par contre si je parle des ID c'est unique pour chaque "NOM" et donc si je fais le filtre par ID je vais automatiquement avoir un seul NOM ! et donc je ne vois pas l’intérêt d'aller plus loin , mais pour pouvoir avoir une liste , certains "NOM" peuvent appartenir au même secteur ( je ne l'ai pas mentionné dans mes tableaux j'ai modifié les fichiers ) et donc si "CH1" qui a pour secteur "SECTEUR" et "CH2" qui pour secteur " SECTEUR" ils vont s'afficher ..JUSQU'ICI tout fonctionne ..

    Le soucis c'est que j'ai toute la ligne entière c'est à dire j'ai le "ID" "NOM" "SECTEUR" "A" et "B" .
    --> PAR CE QUE je test que sur la FEUILLE1 pour l'instant .

    Je dois passé à l'étape suivante et l'importante : afficher uniquement la variable concerné ( celle que j'ai sélectionné afin d'afficher le libelle ) sachant que si je sélectionne une variable je dois absolument aller la chercher dans les 3 feuilles ( 2, 3 , 4 ) pas uniquement là ou je test mon script ( FEUILE1) :

    par exemple si je sélectionne A qui pour libelle : "J'AIME" --> il va s'afficher dans LISTBOX1 puis normalement dans ma LISTBOX2 je dois obtenir que :


    "ID = 1000" "NOM =CH1" "SECT = SECTEUR" "A = 9,9 " ET c'est là ou je bloque !



    est ce que j'ai réussi à bien expliquer SVP ?
    Fichiers attachés Fichiers attachés

  12. #52
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Fais des essais et dit moi.

    Tu as un travail d'adaptation à faire mais l'architecture du code devrait pouvoir rendre la tâche assez simple.
    J'ai mis en commentaire des parties du code, comme par exemple la possibilité de générer la liste des VRB en fonction de ce qui se trouve dans les fichiers data (Feuil2, feuil3,...), plutôt que dans le fichier principal(Feuil1). fAit des essais pour voir les avantage et les inconvénients.
    Il y a des améliorations possibles, comme chercher les nom des entêtes dans les tableau plutôt que de mettre en dur leur emplacement, à voir en fonction de la structure de tes bases

    [J'ai ajouté un bouton sur Feuil1] Pour lancer le userform, il faut passer par la petit macro que se trouve dans Module1, elle est faite pour être utilisée avec le fichier que tu m'as donné (un des classeurs que tu as mis dans ton message précédent est vide).
    Normalement j'ai fait en sorte que l'adaptation soit possible pour utiliser des classeurs différents plutôt que des onglets mais je n'ai pas réfléchi plus que ça aux problématiques que ça pouvait engendrer.

    Bonne journée
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  13. #53
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Salut

    Fais des essais et dit moi.


    Bonne journée
    Qwaz
    Saluuuuut

    Franchement Ton code il est mille fois mieux que le mien je me suis compliqué la vie pour rien ..Par contre , j'ai remarqué un truc .. quand je sélectionne le secteur et VRB j'ai le libelle (PARFAIIIT ) puis les données s'affiche dans le LISTBOX (YOUHOUU ) mais si j'essaie de faire de même avec les VRB qui se trouvent dans la colonne " E" c a d , toutes les colonnes qui sont après la colonne "D" --> Aucune données !

    J'ai bien sur lis ton code attentivement ( JE PENSE ) mais je ne vois pas de problème ...

    Merci beaucoup pour ton aide FRANCHEMENT Tu me sauve la vie mais surtout je comprends mieux le VBA !



    Bonne journée

  14. #54
    Membre éprouvé Avatar de Wololol
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 104
    Par défaut
    je me suis compliqué la vie pour rien
    Je l'avais dis

    mais si j'essaie de faire de même avec les VRB qui se trouvent dans la colonne " E" c a d , toutes les colonnes qui sont après la colonne "D" --> Aucune données !
    Je viens de tester ça fonctionne pourtant ?

    @Qwazerty : Pas mal la petite loupe pour la recherche :d

  15. #55
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Ah oui en effet, dans Let ListBook, modifie comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        With ThisWorkbook.Sheets(Value(iBook))
            'On liste les VRB présents dans ce document
            'On pointe les entêtes contenant les VRB
            For Each CellVRB In .Range("D1", .Cells(1, .Columns.Count).End(xlToLeft))
                'On stock le VRB et la feuille.range qui le contient
                'Si aucun VRB présent dans le tableau, alors CellVRB va pointer de C1 à D1,
                'C1 étant l'entête "Secteur" et D1 sera donc vide, il faut le prendre en compte
                If (CellVRB.Address <> "$C$1") And CellVRB.Value <> "" Then DicoVRB.Add CellVRB.Value, CellVRB
            Next
    J'ai ajouter des explications sur le pourquoi des tests. Il serait sans doute possible de faire autrement, c'est un possibilité.
    Cette vérification est fait pour éviter de rentrer n'importe quoi das le dico



    Autre chose, modifie le code comme ça (le IF) ça permettra de pouvoir lancer une recherche uniquement en sélectionnant VRB sans préciser de secteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            For Each CellTab In .Range(CellSecteur, .Cells(.Rows.Count, CellSecteur.Column).End(xlUp))
                'On regarde si le secteur correspond ou si aucun filtre n'est présent sur le secteur
                If (CellTab = CritSecteur) Or (CritSecteur = "") Then
                    'Si le listbox est vide, on place les entêtes
                    If LBResult.ListCount = 0 Then
                        'On place les entêtes dans le Listbox
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  16. #56
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Citation Envoyé par Wololol Voir le message
    Je l'avais dis



    Je viens de tester ça fonctionne pourtant ?

    @Qwazerty : Pas mal la petite loupe pour la recherche :d
    Non, si tu sélectionnes "Secteur3" et VRB "B", il n'affiche aucune données. Il y avait bien un problème, les colonnes étaient ignorées, j'avais mis une mauvaise valeur dans un des tests de remplissage d'un des dictionnaires (=$E$1, cf mon message du dessus)

    Elle est chouette la loupe hein c'est ce qui m'a prit le plus de temps à trouver

    Bien sûr, il est possible de s'en passer, et de lancer la recherche sur changement de valeur d'un des combo de tri mais attention si le fichier évolue comme je le pense vers la recherche des VRB dans des fichiers différents et avec une grosse quantité de donnée, il vaut mieux faire la démarche de lancement du code manuellement via un bouton.

    @ Peerl : D'ailleurs pour la future partie concernant la lecture des données dans les classeurs, ce tutoriel de Silkyroad te sera utile je pense. N'hésite pas à ouvrir un autre fil de discussion si tu as des problème avec cette partie la, ce fil est déjà bien chargé. Au cas ou, n'hésite pas à m'envoyer un MP pour m'indiquer ce nouveau fil.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  17. #57
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Elle est chouette la loupe hein c'est ce qui m'a prit le plus de temps à trouver


    ++
    Qwaz
    eh oui , la loupe c'est la classe j'ai bien aimé aussi lol

    oui , d'accord j'ouvrirai un autre fil de discussion c'est mieux et je n’hésiterai pas à partager l'avancement de l'application avec ou sans problèmes ..c'est intéressant quand même .

    Merci beaucoup je vais tester .

  18. #58
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Salut

    Ah oui en effet, dans Let ListBook, modifie comme ça



    ++
    Qwaz
    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
    36
    37
    38
    39
    Property Let ListBook(Value As Variant)
    'Liste des feuilles (Classeur à l'avenir?) contenant les tableaux
    'Ici on mémorise dans quel feuille/classeur se trouve chaque VRB
    Dim iBook As Byte
    Dim CellVRB As Range, CellSect As Range
     
    'On boucle sur value
    For iBook = LBound(Value) To UBound(Value)
        'On Récupère la zone du tableau
        With ThisWorkbook.Sheets(Value(iBook))
            'On liste les VRB présents dans ce document
            'On pointe les entêtes contenant les VRB
            For Each CellVRB In .Range("D1", .Cells(1, .Columns.Count).End(xlToLeft))
                'On stock le VRB et la feuille.range qui le contient
                If (CellVRB.Address <> "$C$1") And CellVRB.Value <> "" Then DicoVRB.Add CellVRB.Value, CellVRB
            Next
     
            'On fait de même pour Secteur
            For Each CellTab In .Range(CellSecteur, .Cells(.Rows.Count, CellSecteur.Column).End(xlUp))
                'On regarde si le secteur correspond ou si aucun filtre n'est présent sur le secteur
                If (CellTab = CritSecteur) Or (CritSecteur = "") Then
                    'Si le listbox est vide, on place les entêtes
                    If LBResult.ListCount = 0 Then
                        'On place les entêtes dans le Listbox
     
        End With
    Next
    'On renseigne CBVRB
    'Non utilisé, la list est renseigné directement dansla propriété RowSource du Combobox
    'Si tu remplace RowSource par ce code seuls les VRB présents dans les tableaux apparaitront dans la liste
    'CBSet DicoVRB = TrierDictionnaireParCle(DicoVRB)
    'VRB.List = DicoVRB.Keys
     
    'On renseigne CBSecteur
    Set DicoSecteur = TrierDictionnaireParCle(DicoSecteur)
    CBSecteur.List = DicoSecteur.Keys
     
     
    End Property
    tu peux vérifier stp si j'ai bien modifier ? parceque il arrive pas à remplir COMBOsecteur ni le clique sur la loop

  19. #59
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Oui les modifications semble bonnes, tu passes bien pas le bouton pour lancer le Userform? Si tu le lances directement de VBE en utilisant la touche Run ça ne fonctionnera pas parce que les propriétés (Let) n'auront pas été initialisées (regarde le code dans Module1)

    Au cas ou Pièce jointe 378716
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  20. #60
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 141
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Oui les modifications semble bonnes, tu passes bien pas le bouton pour lancer le Userform? Si tu le lances directement de VBE en utilisant la touche Run ça ne fonctionnera pas parce que les propriétés (Let) n'auront pas été initialisées (regarde le code dans Module1)

    Au cas ou Pièce jointe 378716
    ++
    Qwaz

    oui je passe par le Bouton et aussi directement de VBE et c'est la meme chose par contre j'ai remarqué qu'il manquait la déclaration du CellTAB et CellSecteur .

    ET maintenant quand je clique sur le bouton sur la feuille pour lancer le USERFORM j'ai une erreur compilation : référence incorrecte ou non qualifié et ça entoure le .ROWS dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each CellTab In .Range(CellSecteur, .Cells(.Rows.Count, CellSecteur.Column).End(xlUp))
    Excuse moi VRAIMENT ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [AC-2010] Erreur "incompatibilité de type"
    Par oreoolep dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/12/2011, 22h29
  2. Erreur incompatibilité de type au lancement formulaire
    Par koluche dans le forum VBA Access
    Réponses: 0
    Dernier message: 05/05/2011, 15h59
  3. Erreur "incompatibilité de type" lors import dans table Access
    Par spud96 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2011, 22h40
  4. erreur incompatibilité de type
    Par prince19 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2007, 12h43
  5. [VBA E]erreur incompatibilité de type que je ne comprend pas
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2006, 15h14

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