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 :

Visualisation interactive d'une base de données à l'aide d'un userform


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Visualisation interactive d'une base de données à l'aide d'un userform
    Bonjour le forum,

    J'ai réalisé un userform 6, dans mon fichier, j'ai commencé à coder mais je ne sais pas comment les checkbox et les listbox vont rentrer en relation.
    Le but de l'userform est de mettre dans la listbox 2 l'ensemble des références des détecteurs de la base de données (feuil2) correspondant aux critères sélectionnés (checkbox1 à 5 et listbox 1).
    En espérant avoir été assez clair.
    PS : micro 5 PID = ref SK*
    microclip XT = ref KA*

    Exemple de code que j'ai commencé mais qui ne fonctionne pas totalement
    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
        Private Sub Checkbox3_Click()
            Dim NL As Integer 'déclare la variable NL (Nombre de lignes)
           Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes)
           Dim i As Integer 'déclare la variable I (Incrément de ligne)
     
            Me.ListBox2.ColumnCount = 2 'définit le nombre de colonnes de la listbox
           Me.ListBox2.ColumnWidths = ";0pt" 'masque la seconde colonne de la listbox
           Set A = Sheets("Applications") 'définit l'onglet A
           Set Fs = Sheets("Fichier_source") 'définit l'onglet Fs
           Fs.Unprotect "QSETVX" 'déprotège l'onglet Fs
           TC = Fs.Range("A1").CurrentRegion 'définit le tableau de cellules TC
           NL = UBound(TC, 1) 'définit le nombre de lignes NL du tableau de cellules TC
           NC = UBound(TC, 2) 'définit le nombre de colonnes NC du tableau de cellules TC
           For i = 2 To NL 'boucle sur toutes les ligne de TC (en partant de la seconde)
              'condition : si la valeur ligne I colonne 10 (=>colonne J) de tc est égale à "En Stock",
              If CheckBox3 = True And TC(i, 5) = "A étalonner" Then
                    With Me.ListBox2 'prend en compte la listbox
                      .AddItem 'ajoute un élément
                      .Column(0, .ListCount - 1) = TC(i, 1) 'récupere la référence dans la colonne 0
                      .Column(1, .ListCount - 1) = i 'récupère le numéro de ligne dans la colonne 1 (masquée)
                  End With 'fin de la prose en compte de la listbox
        '***************************************************************************************************************************************
        'ICI JE SOUHAITERAI RETIRER UNIQUEMENT LES VALEURS CONCERNEES ET NON TOUT LES ITEMS DE LA LISTBOX
        '***************************************************************************************************************************************
               ElseIf CheckBox3 = False And TC(i, 5) = "A étalonner" Then
                    With Me.ListBox2 'prend en compte la listbox
                      .Items.Remove 'supprime un élément
                      .Column(0, .ListCount - 1) = TC(i, 1) 'récupere la référence dans la colonne 0
                      .Column(1, .ListCount - 1) = i 'récupère le numéro de ligne dans la colonne 1 (masquée)
                  End With 'fin de la prose en compte de la listbox
              End If 'fin de la condition
           Next i 'prochaine ligne de la boucle
        End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut


    Bonjour,

    Sur quoi son basé tes critères de sélection de données ? Est ce que tu peux poster une images représentant ta base de données, ainsi que les critères que tu vas utiliser ?
    si possible, également une image de ton userform ! Je commence à comprendre ce que tu as voulu faire, mais je pense que ce sera plus clair en image

    J'ai aussi du mal à comprendre ce que sont les "valeurs concernées" ... Ce sont uniquement les valeurs avec "A étalonner" dans la colonne E ?
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  3. #3
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, faire une recherche sur VBA et MSFlexGrid

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    il peut dorénavant comprendre pourquoi il n'a pas eu de réponse sur un autre forum …



    __________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Nico Chg Voir le message


    Bonjour,

    Sur quoi son basé tes critères de sélection de données ? Est ce que tu peux poster une images représentant ta base de données, ainsi que les critères que tu vas utiliser ?
    si possible, également une image de ton userform ! Je commence à comprendre ce que tu as voulu faire, mais je pense que ce sera plus clair en image

    J'ai aussi du mal à comprendre ce que sont les "valeurs concernées" ... Ce sont uniquement les valeurs avec "A étalonner" dans la colonne E ?
    Bonjour le forum, bonjour Nico Chg

    Mes critères de sélection sont divers :
    1° Type de détecteur col(A2:A) : checkbox 1 : détecteur commençant par la ref SK*
    checkbox 2 : détecteur commençant par la ref KA*

    2° Étalonnage col(E2:E) : checkbox 3 : détecteur mentionné "A étalonner"
    checkbox 4 : détecteur mentionné "Etalonnage > 1 semaine"
    checkbox 5 : détecteur mentionné "Etalonnage > 3 mois"

    3° Étalonnage col(G2:G) : listbox 1 : userform_initialize (trouve les différents sites emprunteurs col(G2:G) FAIT)
    ???????_???????? (si site sélectionné dans listbox 1 alors afficher la liste des détecteurs correspondant dans listbox 2)
    A noter
    J'aimerai pouvoir faire une sélection multiple ou non avec un tri des ref dans listbox 2 de A à Z.

    Quelques images d'illustration :
    - Userform
    Nom : UF.jpg
Affichages : 1842
Taille : 26,1 Ko

    - Base de données
    Nom : BD.jpg
Affichages : 10235
Taille : 241,3 Ko

    Valeurs concernées :
    Les valeurs concernées sont les références de détecteur qui répondent à la condition : ElseIf CheckBox3 = False And TC(i, 5) = "A étalonner" Then
    En effet dans ce cas précis la condition est "A étalonner". Pour la checkbox4, je pensais faire la même chose, par exemple : ElseIf CheckBox4 = False And TC(i, 5) = "Etalonnage prévu > 1 semaine" Then

    PS : J'ai joint le fichier xlsm
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/03/2015, 12h45
  2. [Débutant] Interaction sur une base de données PostgreSQL avec C#
    Par landry161 dans le forum Accès aux données
    Réponses: 5
    Dernier message: 29/11/2014, 09h07
  3. Interaction avec une base de données MySQL via python
    Par ismaeldndaw dans le forum Général Python
    Réponses: 2
    Dernier message: 01/09/2012, 15h45
  4. Réponses: 9
    Dernier message: 01/02/2010, 20h12
  5. Interaction avec une base de données
    Par despeludo dans le forum Excel
    Réponses: 1
    Dernier message: 24/11/2009, 11h10

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