Aide sur USERFORM et VBA

rem13

XLDnaute Nouveau
Bonjour à tous,

J'ai deux petits soucis, que je n'arrive pas à résoudre et qui me bloque,

1) Sur un userform (ajout d'un client), j'ai le bouton sauvegardé qui marche sauf que je voudrais rajouter une phrase dans un msgbox au moment ou le client clique dessus "Merci de passer à l'étape 2 pour finir l'enregistrement"

Voici mon code : (je ne c'est pas ou mettre mon msgbox sans que l'autre msgbox apparaisse aussi "MsgBox ("Le code client est déjà existant / Veuillez le saisir à nouveau"))

Private Sub CommandButton1_Click()
'VALIDER L'AJOUT
Dim ligne As Integer
Dim doublon As Boolean
Dim plage As String
doublon = False
ligne = 2

If Sheets("Fiche_Client").Cells(ligne, 1).Value = TextBox1.Value Then
doublon = True
End If
'VALIDER SOUS CONDITIONS QUE TOUTES LES PARTIES SOIENT CORRECTEMENT REMPLIES
If TextBox1.Value = "" Then
MsgBox ("Il manque le code client"), vbCritical
ElseIf ComboBox1.Value = "" Then
MsgBox ("Il manque l'etat civil"), vbCritical
ElseIf TextBox3.Value = "" Then
MsgBox ("Il manque le nom"), vbCritical
ElseIf TextBox4.Value = "" Then
MsgBox ("Il manque le prénom"), vbCritical
ElseIf TextBox5.Value = "" Then
MsgBox ("Il manque l'adresse"), vbCritical
ElseIf TextBox6.Value = "" Then
MsgBox ("Il manque le code postal"), vbCritical

ElseIf TextBox7.Value = "" Then
MsgBox ("Il manque la ville"), vbCritical

ElseIf TextBox8.Value = "" Then
MsgBox ("Il manque le téléphone"), vbCritical

ElseIf TextBox9.Value = "" Then
MsgBox ("Il manque le mail"), vbCritical

ElseIf TextBox10.Value = "" Then
MsgBox ("Il manque la date de naissance"), vbCritical
Else

'SI TOUT EST OK ALORS L'AJOUT PEUT ETRE VALIDER

'BOUCLE POUR AJOUTER LES CLIENTS
While Sheets("Fiche_Client").Cells(ligne, 1) <> ""
ligne = ligne + 1
Wend

If doublon = False Then
Sheets("Fiche_Client").Cells(ligne, 1).Value = TextBox1.Value
Sheets("Fiche_Client").Cells(ligne, 2).Value = ComboBox1.Value
Sheets("Fiche_Client").Cells(ligne, 3).Value = TextBox3.Value
Sheets("Fiche_Client").Cells(ligne, 4).Value = TextBox4.Value
Sheets("Fiche_Client").Cells(ligne, 5).Value = TextBox5.Value
Sheets("Fiche_Client").Cells(ligne, 6).Value = TextBox6.Value
Sheets("Fiche_Client").Cells(ligne, 7).Value = TextBox7.Value
Sheets("Fiche_Client").Cells(ligne, 8).Value = TextBox8.Value
Sheets("Fiche_Client").Cells(ligne, 9).Value = TextBox9.Value
Sheets("Fiche_Client").Cells(ligne, 10).Value = TextBox10.Value
Sheets("Fiche_Client").Cells(ligne, 11).Value = TextBox11.Value

plage = "A1:K1" & Trim(Str(ligne))

Range("A2:K96").Select
ActiveWorkbook.Worksheets("Fiche_Client").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Fiche_Client").Sort.SortFields.Add Key:=Range("A2" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Fiche_Client").Sort
.SetRange Range("A2:K96")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("O18").Select

'Réinitialisation des données
ComboBox1.Value = ""
TextBox1.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox11.Value = ""
'message de confirmation de l'ajout
Else
MsgBox ("Le code client est déjà existant / Veuillez le saisir à nouveau")

End If
End If
End Sub


2) Et mon deuxième problème est que je voudrais que les textbox d'un bon de livraison qui sont remplies automatiquement par le choix dans le combox qui récupère sur une feuille excel : qu'il soient en format euros (€)


Merci d'avance,
 

tbft

XLDnaute Accro
sans fichier avec des données bidons mais représentative, c'est pour moi pas facile de t'aider...
il me semble qu'il est possible d'utiliser des balises pour mettre le code en forme...
du plus comme vous n'avez pas donné de nom personnel au bouton je ne sais pas à quoi correspond le bouton <<CommandButton1>>
 

tbft

XLDnaute Accro
bonjour

en en faisant une copie et en remplaçant toutes les données confidentielles par quelques données bidons mais représentatives du problème!!! on peut supprimer les USF ainsi que les modules qui ne sont pas concernés par le problème posé. par exemple
 

rem13

XLDnaute Nouveau
Je viens d'y arriver pour rajouter le Msgbox, par contre pourriez-vous me renseigner en me disant comment faire pour mettre un textbox remplies automatiquement par le choix dans la combox qui récupère sur une feuille excel pour qu'il soient en format euros (€)
 

tbft

XLDnaute Accro
Pour changer la mise en forme des nombres à l'affichage il y a la fonction format de la classe string:
Bonne lecture
Format, fonction
Lien supprimé Lien supprimé Lien supprimé

Renvoie une valeur de type Variant (String) contenant une Lien supprimé formatée en fonction des instructions contenues dans l'expression de mise en forme.

Syntaxe

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

La syntaxe de la fonction Format comprend les éléments suivants :

Élément Description
expression Toute expression valide.
format Facultatif. Expression de mise en forme valide, nommée ou définie par l'utilisateur.
firstdayofweek Facultatif. Lien supprimé indiquant le premier jour de la semaine.
firstweekofyear Facultatif. Constante indiquant la première semaine de l'année.



Valeurs

L'Lien supprimé firstdayofweek peut prendre les valeurs suivantes :

Constante Valeur Description
vbUseSystem
0 Utilise le paramètre NLS API.
VbSunday 1 Dimanche (valeur par défaut)
vbMonday 2 Lundi
vbTuesday 3 Mardi
vbWednesday 4 Mercredi
vbThursday 5 Jeudi
vbFriday 6 Vendredi
vbSaturday 7 Samedi



L'argument firstweekofyear peut prendre les valeurs suivantes :

Constante Valeur Description
vbUseSystem
0 Utilise le paramètre NLS API.
vbFirstJan1 1 Commence par la semaine qui comprend le 1er janvier (valeur par défaut).
vbFirstFourDays 2 Commence par la première semaine qui comprend au moins quatre jours de la nouvelle année.
vbFirstFullWeek 3 Commence par la première semaine complète de l'année.



Remarques

Pour mettre en forme des Vous devez
Nombres Utiliser des formats numériques nommés prédéfinis ou créer des formats numériques définis par l'utilisateur.
Dates et heures Utiliser des formats de date et d'heure nommés prédéfinis ou créer des formats de date et d'heure définis par l'utilisateur.
Numéros de série de date et d'heure Utiliser des formats de date ou d'heure ou des formats numériques.
Chaînes Créer des formats de chaîne définis par l'utilisateur.



Si vous essayez de mettre en forme un nombre sans préciser l'argument format, la fonction Format offre les mêmes fonctionnalités que la fonction Str, tout en respectant les paramètres internationaux. Toutefois, dans le cas des nombres positifs mis en forme en tant que chaînes à l'aide de la fonction Format, il manque l'espace à gauche réservé à l'affichage du signe de la valeur, alors que les nombres convertis avec la fonction Str conservent cet espace.

Si vous essayez de mettre en forme des nombres, vous devez utiliser un format numérique défini par l'utilisateur pour être certain d'obtenir le résultat désiré.

Note Si la valeur de la propriété Calendar est Grégorien et que l'argument format indique un format de date, l'expression fournie par l'utilisateur doit être du même type. Si la propriété Calendar de Visual Basic a la valeur Hijri, l'expression doit prendre la valeur Hijri.

Lorsque le calendrier est grégorien, la signification des symboles de l'expression format demeure inchangée. En revanche, s'il s'agit du calendrier Hijri, tous les symboles de mise en forme de date (comme dddd, mmmm, yyyy) gardent la même signification mais s'appliquent au calendrier Hijri. Les symboles de mise en forme restent en anglais ; les symboles qui apparaissent à l'écran (comme A.M. et P.M.) permettent d'afficher la chaîne (en anglais ou en arabe) associée à ce symbole. La plage de certains symboles change lorsque le calendrier est Hijri.

Symbole Plage
d 1 à 30
dd 1 à 30
ww 1 à 51
mmm Affiche le nom complet des mois (il n'existe pas de forme abrégée pour les les noms des mois Hijri).
y 1 à 355
yyyy 100 à 9666
 

Discussions similaires

Réponses
2
Affichages
129