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 dans la définition de la feuille => Worksheets %$###


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problème dans la définition de la feuille => Worksheets %$###
    Bonjour,

    Mon code a pour but d’ajuster les valeurs dans la listbox quand ma combobox change.

    Cependant j'ai l'impression qu'il galère pour trouver la feuille source

    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
    Private Sub Combobox_article_Change()
     
    Dim c, CSTDL, CSTDC, CSTFL, CSTFC As range
    Dim TR As String, FirstAddress As String, Tbl() As String
    Dim k As Integer
     
    CSTDL = range("stockarticle").Row + 1
    CSTDC = range("stockarticle").Column
    CSTFL = range("stockarticle").Row + 1000
     
    TR = ComboBox_Article.Value
     
    If TR <> "" Then
        With Worksheets("stock").range(Cells(CSTDL, CSTDC), Cells(CSTFL, CSTDC))
            Set c = .Find(TR, LookIn:=xlValues, lookat:=xlPart)
     
            If c Is Nothing Then
     
                TextBox_reponse.Visible = True
                ListBox_Article.Visible = False
                Bouton_Ajouter.Visible = True
     
                Valeurtrouve = TR & " N'appartient pas au stock, voulez vous l'ajouter"
                TextBox_reponse.Value = Valeurtrouve
     
            Else
     
                TextBox_reponse.Visible = False
                ListBox_Article.Visible = True
                Bouton_Ajouter.Visible = False
     
                FirstAddress = c.Address
                Do
                    Set c = .FindNext(c)
                    k = k + 1
                    ReDim Preserve Tbl(1 To k)
                    Tbl(k) = c.Value
                Loop While Not c Is Nothing And c.Address <> FirstAddress
                With Me.ListBox_Article
                    .Clear
                    .List = Tbl
                End With
            End If
        End With
    End If
     
    End Sub
    Car la seule parade que je trouve c'est de le faire basculer sur la page <<sheet("stock").select>> avant la fonction find et le faire revenir sur la page initial à la fin ce qui fait perdre pas mal de temps ...

    Espérant avoir réussi à être claire ..
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Comment affiche-t-on le userform ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    En double cliquant dans la colonne (n'importe quelle cellule) achat (E) de la feuille bretelle

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    J'ai ajouté :

    dans la macro "Worksheet_BeforeDoubleClick" de la feuille "Bretelle" et j'ai modifié la macro "Combobox_article_Change" :

    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
    Private Sub Combobox_article_Change()
     
    Dim c As Range
    Dim TR As String, FirstAddress As String, Tbl() As String
    Dim k As Integer
     
    TR = ComboBox_Article.Value
     
    If TR <> "" Then
        With Worksheets("stock")
            With .Range(.Cells(Range("stockarticle").Row + 1, Range("stockarticle").Column), _
                .Cells(Range("stockarticle").Row + 1000, Range("stockarticle").Column))
                Set c = .Find(TR, LookIn:=xlValues, lookat:=xlPart)
     
                If c Is Nothing Then
     
                    TextBox_reponse.Visible = True
                    ListBox_Article.Visible = False
                    Bouton_Ajouter.Visible = True
     
                    Valeurtrouve = TR & " N'appartient pas au stock, voulez vous l'ajouter"
                    TextBox_reponse.Value = Valeurtrouve
     
                Else
     
                    TextBox_reponse.Visible = False
                    ListBox_Article.Visible = True
                    Bouton_Ajouter.Visible = False
     
                    FirstAddress = c.Address
                    Do
                        Set c = .FindNext(c)
                        k = k + 1
                        ReDim Preserve Tbl(1 To k)
                        Tbl(k) = c.Value
                    Loop While Not c Is Nothing And c.Address <> FirstAddress
                    With Me.ListBox_Article
                        .Clear
                        .List = Tbl
                    End With
                End If
            End With
        End With
    End If
     
    End Sub

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup Daniel, ça marche impeccablement bien, et surtout j'ai compris mon erreur..

    Mais juste histoire de comprendre d'avantage, à quoi sert le cancel = true ?

    j'ai cherché mais j'ai du mal :S

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Si tu fais un double clic sur une cellule, tu déclenches la macro, mais aussi, la cellule se met en mode édition. "Cancel = True" empêche ça.

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'ai encore un petit soucie, pourtant j'ai essayé d'appliquer la même démarche ...

    "Erreur de compilation sur Key1"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                With Worksheets("bretelle")
                    with .range( _
                            .Cells(range("bretellefournisseur").Row + 1, range("bretellefournisseur").Column), _
                            .Cells(range("bretellereste").Row + 9999, range("bretellereste").Column) _
                            ) _
                            .Sort key1:=range("BRETELLEArticle"), order1:=xlAscending
                    End With
                End With

Discussions similaires

  1. [AC-2003] Problème dans la définition de la valeur par défaut d'un champ
    Par Manhexter dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/11/2010, 08h23
  2. Problème dans la définition du focus()
    Par pounaid dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/03/2009, 15h34
  3. Réponses: 4
    Dernier message: 13/06/2008, 10h09
  4. Réponses: 18
    Dernier message: 21/02/2007, 09h44
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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