VBA Excel - Format TextBox [Fermé]

Signaler
Messages postés
3
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
5 décembre 2007
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
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.

7 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 186
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 186
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
Messages postés
3
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
5 décembre 2007

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.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 186
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 €")
Messages postés
18
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
10 décembre 2007
8
bonjour
je veux savoir si tu as déja programmer un boutton de recherche multicriteres à partir de nombreux feuilles d'un meme classeur
Messages postés
3
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
5 décembre 2007

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.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 186
bonjour

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

La réponse est oui.