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 :

Pb programme vba [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Pb programme vba
    Bonjour à tous,

    J'ai un soucis avec mon programme VBA!
    Mon programme se décompose en 2 parties.

    1ere partie: Lorsque je choisi un client, je n'ai que les modèles fabriqués par ce client (Cela fonctionne)

    2nd partie: Lorsque je choisi un atelier, les initiales du responsable de cet atelier s'affichent et les défauts visibles dans ces ateliers doivent aussi s'afficher dans une liste déroulante.

    Mes initiales s'affichent correctement mais, rien ne s'affiche dans la liste déroulante des défauts... (en pièce jointe un doc excel avec mes feuilles pour mieux comprendre)

    Voici mon programme:
    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
    Private Sub Qui_initiales_Change()
     
    Dim Initiale As String
     
    Initiale = Qui_Initiales.Value
     
    Defaut.Value = ""
     
    If Initiale <> "" Then
     Qui.Caption = Application.WorksheetFunction.VLookup(Initiale, Worksheets("Tables").Range("A:B"), 2, False)
     Defaut.RowSource = Liste_Defauts
     Else
     Qui.Caption = ""
     Defaut.RowSource = Application.WorksheetFunction.VLookup(Initiale, Worksheets("Tables").Range("E:F"), 2, False)
     
    End If
     
    End Sub
    Merci à tous ceux qui pourront m'aider
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Le code qui met qui est censé mettre à jour la liste de défaut Defaut.RowSource = Liste_Defauts n'a pas l'air initialisé.

    Essaye ce code.

    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
    Private Sub Qui_initiales_Change()
        Qui.Caption = ""
        defaut.Clear
     
        Dim ws As Worksheet
        Set ws = Worksheets("Tables")
        Dim Initiale As String
        Initiale = Qui_initiales.Value
     
        With Application.WorksheetFunction
            If Initiale <> "" Then
                Qui.Caption = .VLookup(Initiale, ws.Range("A:B"), 2, False)
                defaut.AddItem .VLookup(Initiale, ws.Range("E:F"), 2, False)
            End If
        End With
     
        Set ws = Nothing
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour bluemonkey,

    Merci pour ton aide mais, cela ne fonctionne pas tout à fait!

    En faite, quand je sélectionne un atelier, dans la liste déroulante des défauts il m'indique ce qu'il y a dans la colonne F de la feuille "Tables" mais, ne va pas chercher les infos de la feuille "Tables_liste".

    C'est à dire, quand je sélectionne l'atelier "Expédition", les initiales correspondantes s'affiche mais dans la liste déroulante "Description du défaut" il m'indique "Liste_Expédition" au lieux de m'afficher tous les défauts répertoriés dans la feuille "Tables_liste".

    As tu une idée de comment résoudre ce problème?

    Merci d'avance

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    A tester :
    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
    Option Explicit
     
    Private Sub Qui_initiales_Change()
        Qui.Caption = ""
        defaut.Clear
     
        Dim wsTable As Worksheet
        Set wsTable = Worksheets("Tables")
        Dim wsDefaut As Worksheet
        Set wsDefaut = Worksheets("Tables_liste")
        Dim Initiale  As String
        Initiale = Qui_initiales.Value
     
        If Initiale <> "" Then
            Dim InitialLigne As Long
            Dim defaultCol As Long
     
            InitialLigne = wsTable.Range("A2:A" & wsTable.Range("A2").End(xlDown).Row) _
                                .Find(Initiale, LookIn:=xlValues) _
                                    .Row
            Qui.Caption = wsTable.Range("B" & InitialLigne).Value
            With wsDefaut
                defaultCol = .Range(.Cells(1, 1), .Cells(1, .Range("A1").End(xlToRight).Column)) _
                                .Find(wsTable.Range("F" & InitialLigne).Value, LookIn:=xlValues) _
                                    .Column
                Dim ri As Integer
                For ri = 2 To .Cells(1, defaultCol).End(xlDown).Row
                    defaut.AddItem .Cells(ri, defaultCol).Value
                Next ri
            End With
        End If
     
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Super!

    Ca fonctionne super bien

    Merci beaucoup!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Help création d'un programme vba pour excel
    Par yampi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/01/2007, 11h46
  2. [Débutant] Critères de requete sur dates - Programmation VBA
    Par Sofie109 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/01/2007, 15h35
  3. Réponses: 3
    Dernier message: 31/08/2006, 10h22
  4. Réponses: 11
    Dernier message: 27/06/2006, 17h04
  5. Accès outlook par programmation VBA depuis access
    Par STOUPI dans le forum Access
    Réponses: 1
    Dernier message: 05/06/2006, 18h22

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