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 :

Problème renvoie valeurs multi-critères en formulaire de saisie VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Par défaut Problème renvoie valeurs multi-critères en formulaire de saisie VBA
    Bonjour chers membres,

    Afin de faciliter la saisie de données, j'ai crée un formulaire de saisie en VBA. Cependant deux listes à multicritères de ce dernier ne renvoient pas les valeurs sélectionnées vers le tableau concerné contrairement aux autres cases de saisie.

    Ci-joint le fichier en question , le formulaire s'affiche en cliquant sur le bouton "Nouveau Prospect" se situant dans la feuille "Base". Les deux listes sont " projets" et "Type de bien".

    Je vous remercie d'avance,
    Taha.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Comme ceci
    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
    Private Sub CommandButton1_Click()
        Dim Ctrl As Control
        Dim Colonne As Integer
        Dim DerLigne As Integer
     
        DerLigne = Sheets("Base").Range("A65000").End(xlUp).Row + 1
        For Each Ctrl In UserForm1.Controls
            Colonne = Val(Ctrl.Tag)
            If Colonne = 11 Then
                Sheets("Base").Cells(DerLigne, Colonne) = ListBox1.List(ListBox1.ListIndex)
            ElseIf Colonne = 12 Then
                Sheets("Base").Cells(DerLigne, Colonne) = ListBox2.List(ListBox2.ListIndex)
            ElseIf Colonne > 0 Then
                Sheets("Base").Cells(DerLigne, Colonne) = Ctrl
            End If
        Next
    End Sub
    Cdlt

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Par défaut
    Merci beaucoup ARTURO83

    Actuellement la valeur est renvoyée cependant le formulaire ne renvoie qu'une seule valeur tandis que j'en ai sélectionner 3.

    Il y a-t-il une solution pour ceci ?

    Merci d'avance

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Vous n'aviez pas précisé que vous vouliez sélectionner plusieurs valeurs.
    Donc, si plusieurs valeurs sont sélectionnées, ces dernières sont ajoutées dans la même cellule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        For Each Ctrl In UserForm1.Controls
            Colonne = Val(Ctrl.Tag)
            If Colonne = 11 Then
                For i = 0 To ListBox1.ListCount - 1
                  If ListBox1.Selected(i) = True Then Sheets("Base").Cells(DerLigne, Colonne) = Sheets("Base").Cells(DerLigne, Colonne) & "-" & ListBox1.List(i)
                Next
            ElseIf Colonne = 12 Then
                For i = 0 To ListBox2.ListCount - 1
                    If ListBox1.List(i) <> "" Then Sheets("Base").Cells(DerLigne, Colonne) = Sheets("Base").Cells(DerLigne, Colonne) & "-" & ListBox2.List(i)
                Next
            ElseIf Colonne > 0 Then
                Sheets("Base").Cells(DerLigne, Colonne) = Ctrl
            End If
        Next
    Cdlt

  5. #5
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Par défaut
    Je m'excuse pour mon manque de précision. Par ailleurs quand j’exécute le dernier code une erreur s'affiche : "Erreur de compilation : Projet ou bibliothèque introuvable"

    Merci d'avance ARTURO83

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Petite rectification, suite à un mauvais copier-coller,
    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
    Private Sub CommandButton1_Click()
        Dim Ctrl As Control
        Dim Colonne As Integer
        Dim DerLigne As Integer
        Dim i As Long
     
        DerLigne = Sheets("Base").Range("A65000").End(xlUp).Row + 1
        For Each Ctrl In UserForm1.Controls
            Colonne = Val(Ctrl.Tag)
            If Colonne = 11 Then
                For i = 0 To ListBox1.ListCount - 1
                    If ListBox1.Selected(i) = True Then Sheets("Base").Cells(DerLigne, Colonne) = Sheets("Base").Cells(DerLigne, Colonne) & "-" & ListBox1.List(i)
                Next
            ElseIf Colonne = 12 Then
                For i = 0 To ListBox2.ListCount - 1
                    If ListBox2.Selected(i) = True Then Sheets("Base").Cells(DerLigne, Colonne) = Sheets("Base").Cells(DerLigne, Colonne) & "-" & ListBox2.List(i)
                Next
            ElseIf Colonne > 0 Then
                Sheets("Base").Cells(DerLigne, Colonne) = Ctrl
            End If
        Next
    End Sub
    "
    Pour votre problème, dans le module visual basic, faire " Outils", "Références", Décochez toutes les lignes affichant: "MANQUANT:....."

    Cdlt

Discussions similaires

  1. Filtre multi critère sous formulaire
    Par yieiii dans le forum IHM
    Réponses: 5
    Dernier message: 13/09/2010, 14h47
  2. problème avec recherche multi-critères
    Par yannick63 dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/01/2010, 15h48
  3. Réponses: 2
    Dernier message: 11/07/2008, 14h07
  4. Problème renvoie valeur
    Par crapou dans le forum Langage
    Réponses: 1
    Dernier message: 25/09/2007, 09h48

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