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 :

[VBA-E] Aide sur la fonction recherche


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut [VBA-E] Aide sur la fonction recherche
    Bonjour

    Voilà je suis débutant et j'aimerais savoir comment a partir de 4 Textbox
    TextBox_Reference
    TextBox_Designation
    TextBox_Stock
    TextBox_QteVendue

    Dans la premiere je tape une Reference (qui existe déjà dans un tableau)
    j'aimerais que dans la seconde et la troisième la Désignation et le stock s'affiche par rapport à la référence tapée, et une fois cela fait, Sachant que j'ai plus de 1000 Référence, donc qu'il trouve la référence correspondante le plus compliqué pour moi dans la textBox_QteVendue, j'inscrit mes ventes cela le déduise de mon stock, dans mon tableau. Merci d'avance

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    Ta demande est trop vague et fais des phrases entières si je peux me permettre. Tu stockes des données comment (fichier txt, xml, base de données)?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut Re Aide sur la Fonction Recherche
    Voilà je recherche ce qui fais que mon code ne fonctionne pas. le Voici :

    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
    Dim Qté As Integer, Code As Long
    Dim Recherche
    Qté = CInt(TextBox_QuantV)
    Reference = TextBox_Reference
     
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then  'Trouvé
        'modifier la valeur dans la 2e colonne à la droite du code trouvé
        Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
                 Sheets("produits").Range(Recherche.Address).Offset(0, 2) - QuantV
    Else
        MsgBox "Le code n'existe pas"
    End If
     
        UserForm10.Hide
     
    End Sub

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut Gestion de Stock
    Salut

    Voila j'ai un tableau avec plusieurs colonnes, dont une avec des référence, une Désignation et une Stock il y a plus de 1000 Références

    Dans mon Userform
    j'ai mes 4 TextBox

    1) TextBox_Reference
    2) TextBox_Désignation
    3) TextBox_Stock
    4) TextBox_Qté_Vendue

    Alors j'aimerais quand je tape ma référence, que ma désignation apparaisse ainsi que mon stock, mais le plus compliqué c'est que quand je tape ma quantité vendue et que je valide ma vente cela se déduise dans mon stock sur ma feuille Excel.
    Merci d'avance

    Voilà ou j'en suis rendu mais rien ne se passe quand je valide sur le CommandButton1.

    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
    Private Sub CommandButton1_Click()
    Dim Recherche
    Dim Qté As Integer, Code As Long
    Dim Recherche
    Qté = CInt(TextBox_QuantV)
    Reference = TextBox_Reference
     
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then  'Trouvé
        'modifier la valeur dans la 2e colonne à la droite du code trouvé
        Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
                 Sheets("produits").Range(Recherche.Address).Offset(0, 2) - QuantV
    Else
        MsgBox "Le code n'existe pas"
    End If
     
        UserForm10.Hide
     
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Salut,

    n'oublie pas de mettre le tag dasn ton titre ( [VBA-E] car je suppose que tu es sous excel?)

    utilise aussi la balise CODE # sinon un modérateur va te taper !

    Ragardes ces remarques peut etre que ca t'aidera :

    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()
    'pourquoi declares tu 2 fois "Recherche"
    Dim Recherche
    Dim Qté As Integer, Code As Long
    Dim Recherche
    Qté = CInt(TextBox_QuantV)
    Reference = TextBox_Reference
    
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then 'Trouvé
    'modifier la valeur dans la 2e colonne à la droite du code trouvé
    Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
    'pourquoi tu utilise quantv ici et non pas "Qté" ??
    Sheets("produits").Range(Recherche.Address).Offset(0, 2) - QuantV
    Else
    MsgBox "Le code n'existe pas"
    End If
    
    UserForm10.Hide
    
    End Sub
    utilise des msgbox pour voir les valeur des tes variables et voir si elles correspondent à quoi elles devraient correspondre... (si elles ont bien les valeurs attendues)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    Désolé pour mes erreur je vais faire de mon mieux pour ne pas que cela se reproduise.

    Bon voilà ce que cela donne mais mais je n'arrive toujour pas a déduire mon stock.

    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
    Private Sub CommandButton1_Click()
    Dim Recherche
    Dim Qté As Integer, Code As Long
    Qté = CInt(TextBox_Qté)
    Reference = TextBox_Reference
     
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then 'Trouvé
    'modifier la valeur dans la 2e colonne à la droite du code trouvé
    Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
    Sheets("produits").Range(Recherche.Address).Offset(0, 2) - Qté
    Else
    MsgBox "Le code n'existe pas"
    End If
     
    UserForm10.Hide
     
    End Sub

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    quand tu dis il ne se passe-rien lorsque je clique sur bouton.. c'est vraiment rien..? tu n'as pas renommé le bouton ..?

    en mode edition .. doubleclick sur le bouton histoire de voir si tu tombe sur le bon code..!

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    Non l s'arrête au niveau "Sheet Produits En Jaune"

    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
    Private Sub CommandButton1_Click()
    Dim Recherche
    Dim Qté As Integer, Code As Long
    Qté = CInt(TextBox_Qté)
    Reference = TextBox_Reference.Value
    
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then  'Trouvé
        'modifier la valeur dans la 2e colonne à la droite du code trouvé
        Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
                 Sheets("produits").Range(Recherche.Address).Offset(0, 2) - Qté
    Else
        MsgBox "Le code n'existe pas"
    End If
    
        UserForm10.Hide
    
    End Sub

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Et qu'est ce qu'il fait? tu as une erreur?

    utilise des msgbox entre deux pour voir les valeurs comme je t'ai di ca t'aidera peut etre



    Ps : tu as oublié les balises # !!
    Ps2 : Le j'aune c'etait pas une bonne idée !

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    A quelle niveau j'ai oublié la balise ?

    et ok pour pour le jaune pas top

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Au niveau de ton code !! (enfin c'est mal utilisé )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub CommandButton1_Click()Dim Recherche
    Dim Qté As Integer, Code As Long
    Qté = CInt(TextBox_Qté)
    Reference = TextBox_Reference.Value

    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then 'Trouvé
    'modifier la valeur dans la 2e colonne à la droite du code trouvé
    Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
    Sheets("produits").Range(Recherche.Address).Offset(0, 2) - QtéElse
    MsgBox "Le code n'existe pas"
    End If

    UserForm10.Hide

    End Sub
    Tu dois selectionner TOUT ton code avant de cliquer sur le # là tu n'as que ta premeire ligne dans la balise...

    sinon pour ma question... tu as une erreur sur ta ligne jaune?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    OK je viens de Comprendre
    je ne vois pas ou se trouve le problème à moins que je trouve ma valeur en stock et que je la déduise seulement après.

    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
     
    Private Sub CommandButton1_Click()
    Dim Recherche
    Dim Qté As Integer, Code As Long
    Qté = CInt(TextBox_Qté)
    Reference = TextBox_Reference.Value
     
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
    If Not Recherche Is Nothing Then  'Trouvé
        'modifier la valeur dans la 2e colonne à la droite du code trouvé
        Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
                 Sheets("produits").Range(Recherche.Address).Offset(0, 2) - Qté
    Else
        MsgBox "Le code n'existe pas"
    End If
     
        UserForm10.Hide
     
    End Sub

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Ok,

    Citation Envoyé par tu
    Non il s'arrête au niveau "Sheet Produits En Jaune"
    Comment vois tu qu'il s'arrete là, as tu une erreur dans le debuggeur oui ou non??

    essaye ce code et regarde les valeur renvoyees par les msgbox (et tu trouvera peut etre ton erreur !)

    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
    Private Sub CommandButton1_Click()
    Dim Recherche
    Dim Qté As Integer, Code As Long
    Qté = CInt(TextBox_Qté)
    msgbox "Qté : " & Qté 
    Reference = TextBox_Reference.Value
    msgbox "Reference : " & Reference 
     
    'Recherche du code dans la colonne A
    Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
     
    If Not Recherche Is Nothing Then  'Trouvé
        msgbox "on est entré dans le if"
        'modifier la valeur dans la 2e colonne à la droite du code trouvé
        Sheets("Produits").Range(Recherche.Address).Offset(0, 2) = _
                 Sheets("produits").Range(Recherche.Address).Offset(0, 2) - Qté
    Else
        MsgBox "Le code n'existe pas"
    End If
     
        UserForm10.Hide
     
    End Sub

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    la je m'arr^te après ta MsgBox on est entre dans le if, car il reconnais bien la Qté, La Référence, mais il Bug Après

  15. #15
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Recherche.Offset(0, 2) = Recherche.Offset(0, 2) - Qté
    Recherche est déjà un Objet Range!

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    Non cela s'arrête toujour au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Recherche.Offset(0, 2) = Recherche.Offset(0, 2) - Qté

  17. #17
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Quel est le message d'erreur???

    On n'est pas devins!!!

  18. #18
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Curieusement, chez moi, ce code fonctionne parfaitement:
    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
    Private Sub CommandButton1_Click()
      Dim Recherche As Range
      Dim Reference As String
      Dim Qté As Integer
      Qté = CInt(TextBox_Qté)
      MsgBox "Qté : " & Qté
      Reference = TextBox_Reference.Value
      MsgBox "Reference : " & Reference
     
      'Recherche du code dans la colonne A
      Set Recherche = Sheets("Produits").Range("A:A").Find(Reference)
     
      If Not Recherche Is Nothing Then  'Trouvé
        MsgBox "on est entré dans le if"
        'modifier la valeur dans la 2e colonne à la droite du code trouvé
        Recherche.Offset(0, 2) = Recherche.Offset(0, 2) - Qté
      Else
        MsgBox "Le code n'existe pas"
      End If
     
    '    UserForm10.Hide
     
    End Sub

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 300
    Points : 107
    Points
    107
    Par défaut ReGestion des Stocks
    Vous ëtes géniaux merci encore à tous, dernière petite question quelle ligne dois je rajouter afin que ma désignation apparaisse dans ma TextBox qui se trouve en (0;3) dans mon tableau

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

Discussions similaires

  1. Besoin d'aide sur les fonctions vba
    Par merveil014 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2014, 08h11
  2. Aide sur la fonction Recherche Excel
    Par SlymAMI dans le forum Excel
    Réponses: 1
    Dernier message: 05/05/2010, 16h55
  3. [E-03] Aide sur la Fonction .Find dans VBA
    Par Gunsx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2009, 22h36
  4. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40
  5. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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