VBA

Signaler
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009
-
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009
-
Bonsoir, je débute avec VBA, et je n'arrive pas à faire une petite Macro simple
pouvez-vous m'aider svp ?

Sub aller_saisie_fact()


If MsgBox("Sélectionne le client à facturer", vbOKCancel, "choix_client_facture" = "") Then Exit Sub
    Sheets("FACTURE").Select
End If
End Sub
PANCE 35

16 réponses

Messages postés
14813
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
156
Bonjour,

Si tu veux une box avec les choix OK et Annuler :
Essaye plutot :
If MsgBox("Sélectionne le client à facturer", vbOKCancel, "choix_client_facture")=vbcancel Then Exit Sub
    Sheets("FACTURE").Select
End If
End Sub

si c'est pour une saisie, préfère InputBox.

http://nhen0039.chez-alice.fr/index.php
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
On pourra aussi enlever End If
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Bonjour, merci de prendre le temps de me repondre
Je voudrais juste que si ("choix client facture") est vide, alors un message s'affiche, me demandant de selectionner
un client dans la zone "choix client facture"

PANCE 35
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour

Ce serait mieux d'afficher le message tant que la zone est vide et non pas si la zone est libre. Dans ce cas, il faut remplacer ton If par un bloc Do While. Si l'utilisateur veut abandonner, il peut utiliser le bouton Annuler.

Sub aller_saisie_fact()
   Do While choix_client_facture = ""
       If Msgbox "Sélectionne le client à facturer", vbOKCancel) = vbCancel Then Exit Do
   Loop
   Ilf choix_client_facture <> "" Then Sheets("FACTURE").Select
End Sub


Amicalement
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Merci, mais apres essai, cela ne fonctionne pas

PANCE 35
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
désolé

Sub aller_saisie_fact()
   If choix_client_facture = "" Then
       MsgBox "Sélectionne le client à facturer", vbOKCancel = vbCancel
       Exit Sub
    End If
   Sheets("FACTURE").Select
End Sub




 


 
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Bonjour, effectivement, avec cette macro, lorsque "choix_client_facture" est vide, un message me dit de "Selectionner le client a facturer", mais quand un client est selectionner, le même message apparait et à aucun moment il ne me renvoi à ma feuille de facturation (facture).

Peut-être la msgbox pourrait-elle contenir Okonly ?

merci

PANCE 35
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Tu as raison


Sub aller_saisie_fact()
   If choix_client_facture = "" Then
       MsgBox "Sélectionne le client à facturer", vbOkOnly
       Exit Sub
    End If
   Sheets("FACTURE").Select
End Sub

Bon courage 
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Bonjour, suite essai derniere macro, le message s'affiche bien, mais il s'affiche dans les deux cas, c'est à dire que la zone (choix_client_facture) est = à "" et quand un client est selectionner

je cherche encore

PANCE 35
Messages postés
14813
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
156
Bonjour,

Tu as vérifier la valeur de choix_client_facture ?

http://nhen0039.chez-alice.fr/index.php
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Oui, une liste deroulante contenant :
 plaged entree: BD_nomclient
cellule liee : choix_client_facture

ensuite un bouton, qui renvoi a saisi facture, si et seulement si ma liste deroulant contient un nom, c'est à dire que "choix_client_facture" n'est pas égal à zéro

j'espere bien me faire comprendre afin que vos lumières me guide vers la réussite de ce preojet, merci

PANCE 35
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Je pense que tu n'as pas mis Option Explicit dans ton code. Mets-le dans la première ligne de ta fenêtre Visual Basic.
Si choix_client_facture est le nom d'une cellule, il faut utliser Range("choix_client_facture").Value :

If("choix_client_facture").Value = "", etc
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Pardon, c'est If Range("choix_client_facture").Value = ""
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Bonsoir, avec cette macro, lorsque que "choix_client_facture" est vide, le message apparait, jusque là tout va bien
mais lorsqu'il y a un client selectionner, il ne se passe rien

vous êtes près du but

merci

Sub aller_saisie_fact()


   If Range("choix_client_facture").Value = "" Then
      MsgBox "Sélectionne le client à facturer", vbOKOnly
       End If
    Exit Sub
    Sheets("FACTURE").Select
  End Sub

PANCE 35
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Regarde mes messages précécents, et notamment la position de l'instruction Exit Sub
Messages postés
8
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
16 février 2009

Bonsoir, merci a tous

résolu
bonne soirée

PANCE 35