VBA Excel - Format TextBox

bernardamora Messages postés 3 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  3. bernardamora Messages postés 3 Statut Membre
     
    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
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. magi123 Messages postés 18 Statut Membre 8
     
    bonjour
    je veux savoir si tu as déja programmer un boutton de recherche multicriteres à partir de nombreux feuilles d'un meme classeur
    0
  7. bernardamora Messages postés 3 Statut Membre
     
    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
  8. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

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

    La réponse est oui.
    -1