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 de procédure (VBA / Excel) [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut Problème de procédure (VBA / Excel)
    Bonjour,

    Je cherche à faire une procédure en mettant en paramètres un label et une textbox.

    Voici mon code d'origine :
    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 1erarticle_Change() 
     
    If montant1.Caption < 0 Then 
    remise1.Value = "" 
    If remise1.Text = "" Then Exit Sub 
    MsgBox "Le prix T.T.C doit être positif !" 
    Exit Sub 
    End If 
    End Sub 
     
    Private Sub 2emearticle_Change() 
    If montant2.Caption < 0 Then 
    remise2.Value = "" 
    If remise2.Text = "" Then Exit Sub 
    MsgBox "Le prix T.T.C doit être positif !" 
    Exit Sub 
    End If 
    End Sub
    Je dispose d'une vingtaine d'articles. Donc je suppose qu'il y a une autre façon de faire plutôt que de faire des copier/coller 20 fois.

    Du coup, j'ai eu l'idée de faire appel à une procédure mais cela ne fonctionne pas (incompatibilité de type)


    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
    'Procédure permettant d'afficher l'erreur 
    Private Sub article(ByVal remise As TextBox, ByVal montant As Label) 
     
    montant As Label 
    remise As TextBox 
     
    If montant.Caption < 0 Then 
    remise.Value = "" 
    If remise.Text = "" Then Exit Sub 
    MsgBox "Le prix T.T.C doit être positif !" 
    Exit Sub 
    End If 
     
    End Sub 
     
    Private Sub 1erarticle_Change() 
    Call article(remise1, montant1) 
    End Sub 
     
    Private Sub 2emearticle_Change() 
    Call article(remise2, montant2) 
    End Sub
    Comment résoudre ce problème ?

    En vous remerciant par avance pour vos éventuelles réponses.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonsoir

    Je pense que le mieux est de renommer toutes tes textBox et label avec 2 chiffres à la fin tel que
    pour les textBox

    montant01
    montant02
    etc...

    et pour les Label

    remise01
    remise02
    etc...

    ce qui permettra de récupérer ces deux chiffres et les utiliser facilement

    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 article(nom As String)
    Dim num As String
     
    num = Right(nom, 2)
     
    If Controls("montant" & num).Text < 0 Then
      Controls("remise" & num).Caption = ""
      If Controls("remise" & num).Caption = "" Then Exit Sub
      MsgBox "Le prix T.T.C doit être positif !" 'cette ligne ne sert à rien
      Exit Sub 'celle la non plus
    End If
    End Sub
     
     
    Private Sub montant01_Change()
    call article (montant01.Name)
    End Sub
     
    Private Sub montant02_Change()
    call article (montant02.Name)
    End Sub
     
    'ainsi de suite
    je ne sais pas si il y a plus simple

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    c'est impeccable, c'est exactement ce que je voulais merci à vous.

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

Discussions similaires

  1. Procédures VBA Excel et performances
    Par Gryon dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/09/2014, 11h56
  2. Problème de date Vba excel
    Par larosse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2009, 18h33
  3. VBA Excel (débutant) - problème avec la copie d'un range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2006, 16h32
  4. [VBA EXCEL] Problème d'éxécution avec graphiques
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/11/2005, 09h55
  5. [VBA Excel] problème de range avec find
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2005, 13h56

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