VBA Excel - Format TextBox

Fermé
bernardamora Messages postés 3 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 5 décembre 2007 - 3 déc. 2007 à 17:42
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 5 déc. 2007 à 18:18
Bonjour à tous,

Je suis en train de créer un petit programme sous Excel avec VBA et j'ai quelques questions :

1) - Un UserForm contient un TextBox pour saisir une date; je souhaiterai que lorsque l'on souhaite saisir la date, une boîte s'ouvre avec un calendrier où l'on peut sélectionner la date (exemple sur le site de la SNCF lorsqu'on veut saisir une date de départ...). Si ce n'est pas possible, formater le TextBox de la façon suivante 19/01/2007.

2) - Formater le TextBox pour de la saisie de Montant en €.

Merci d'avance de votre aide.

BA.
A voir également:

7 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 déc. 2007 à 21:54
bonjour

je souhaiterai que lorsque l'on souhaite saisir la date, une boîte s'ouvre avec un calendrier

Pour obtenir un calendrier, tu as plusieurs possibilités et entre autres, dans le menu outils / contrôles supplémentaires :

- selectionner "Microsoft MonthView Control 6.0"
- sélectionner "Microsoft Date and Time Picker Control 6.0"

selon tes goûts esthétiques et fonctionnels.

Pour récupérer la date il est préférable d'utiliser Cdate(tadate) après avoir testé isdate(tadate)

Pour formater le TextBox pour de la saisie de Montant en €. tu peux mettre le format "# ##0,00 €" mais il ne se met dans le textbox que si la zone est renseignée.
2
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 déc. 2007 à 18:18
bonjour

Ton code ne fonctionne pas tout à fait correctement car il n'insère pas un ligne mais une cellule et écrase les cellules gérées par offset.

Personnellement j'utilise une technique qui me paraît plus sûre et je te la propose. La sélection des cellules, même si elle est suggérée par l'enregistreur, ne sert qu'à alourdir le code et l'exécution.
J'ai supposé que ta date était dans textbox3 car "tadate" était simplement pour te permettre de mettre ton appellation propre.
Private Sub CommandButton1_Click()
Dim lig As Double
If Not IsDate(TextBox3.Value) Then ' tu peux mettre un message d'erreur
'    MsgBox "date incorrecte"
    TextBox3.SelStart = 0
    TextBox3.SelLength = Len(TextBox3.Value)
    TextBox3.SetFocus
    Exit Sub
End If
If Not IsNumeric(TextBox4.Value) Then ' tu peux mettre un message d'erreur
'    MsgBox "montant incorrect"
    TextBox4.SelStart = 0
    TextBox4.SelLength = Len(TextBox3.Value)
    TextBox4.SetFocus
    Exit Sub
End If
lig = Sheets("Facture").Cells.SpecialCells(xlCellTypeLastCell).Row + 1
 Sheets("Facture").Cells(lig, 2).Value = ComboBox1.Value
 Sheets("Facture").Cells(lig, 3).Value = CDate(TextBox3.Value)
 Sheets("Facture").Cells(lig, 4).NumberFormat = "# ##0,00 €"
 Sheets("Facture").Cells(lig, 4).Value = TextBox4.Value
 Sheets("Facture").Cells(lig, 5).Value = CheckBox1 ' tu vas avoir VRAI ou FAUX
End Sub
1
bernardamora Messages postés 3 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 5 décembre 2007
4 déc. 2007 à 10:21
Bonjour,

First, merci pour cette rapide réponse, mais malheureusement, je ne suis pas un expert en VBA.

1) - Je ne trouve pas le menu outils / contrôles supplémentaires ? Et donc je ne trouve pas :
- selectionner "Microsoft MonthView Control 6.0"
- sélectionner "Microsoft Date and Time Picker Control 6.0"

Et ensuite comment intégrer ce calendrier dans un textbox ?

De quelle façon dois-je utiliser Cdate(tadate) après avoir testé isdate(tadate) ?

Je possède la version 6.3 de VBA.


2) -A quel endroit dois-je mettre le format "# ##0,00 €" ?


BA.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 déc. 2007 à 12:16
bonjour

Je ne trouve pas le menu outils / contrôles supplémentaires ?

C'est dans la fenêtre VBA.

comment intégrer ce calendrier dans un textbox ?

Le calendrier est un nouveau contrôle et il te faut l'intégrer dans ton formulaire ( UserForm )

utiliser Cdate(tadate) après avoir testé isdate(tadate) ?

Lorsque tu renseignes ta feuille Excel.

A quel endroit dois-je mettre le format "# ##0,00 €" ?

Lorsque tu renseignes ta textbox : textbox.value = format(tavaleur,"# ##0,00 €")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magi123 Messages postés 18 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 10 décembre 2007 8
4 déc. 2007 à 15:26
bonjour
je veux savoir si tu as déja programmer un boutton de recherche multicriteres à partir de nombreux feuilles d'un meme classeur
0
bernardamora Messages postés 3 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 5 décembre 2007
5 déc. 2007 à 17:10
Merci pour le calendrier, c'est exactement ce que je cherchais.

Encore quelques soucis : voila le code que j'ai tapé :

Private Sub CommandButton1_Click()
Sheets("Facture").Select
Range("b1").Select
Selection.End(xlDown).Select
Selection.Insert Shift:=xlDown
ActiveCell = ComboBox1
ActiveCell.Offset(0, 1) = CDate(tadate)
ActiveCell.Offset(0, 2) = TextBox4
ActiveCell.Offset(0, 3) = CheckBox1
End Sub

1) - Où dois-je insérer et comment le ISDATE ?
2) - Où dois-je insérer le format du CheckBox4 pour avoir en €.

Merci.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 déc. 2007 à 17:21
bonjour

recherche multicriteres à partir de nombreux feuilles d'un meme classeur

La réponse est oui.
-1