Existe-t-il des contrôles supplémentaires disponibles sous VBA97+ ?
- "Zone de texte" qui permettrait de formater automatiquement la valeur
à la saisie, comme une date ?
le texte affiché serait 18/06/2004 , et il suffirait de taper 19062004,
le curseur passerait directement du 2e au 4e caractère à la saisie...
- Boîte de dialogue de sélection d'un dossier
- ... ?
Merci
--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime
- "Zone de texte" qui permettrait de formater automatiquement la valeur à la saisie, comme une date ?
Possible en faisant un double-clic dans le textbox après avoir entré la date au complet:
Ouh là là non... je cherche ça pour limiter les saisies et actions. Alors faire un double-clic ou autre manip pour formater après... non. La date doit être toujours formatée tout au long de la saisie.
- Boîte de dialogue de sélection d'un dossier Question récurrente
La question plus générale est : Existe-t-il des bibliothèques d'OCX qui contiennent des contrôles de ce style ?
-- ** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
Cordialement, Stéphane *** http://www.team-santonum.com Loisirs, nature, arts, technologie : accueil en Charente-Maritime
Bonjour,
- "Zone de texte" qui permettrait de formater automatiquement la valeur
à la saisie, comme une date ?
Possible en faisant un double-clic dans le textbox après avoir entré
la date au complet:
Ouh là là non... je cherche ça pour limiter les saisies et actions.
Alors faire un double-clic ou autre manip pour formater après... non.
La date doit être toujours formatée tout au long de la saisie.
- Boîte de dialogue de sélection d'un dossier
Question récurrente
- "Zone de texte" qui permettrait de formater automatiquement la valeur à la saisie, comme une date ?
Possible en faisant un double-clic dans le textbox après avoir entré la date au complet:
Ouh là là non... je cherche ça pour limiter les saisies et actions. Alors faire un double-clic ou autre manip pour formater après... non. La date doit être toujours formatée tout au long de la saisie.
- Boîte de dialogue de sélection d'un dossier Question récurrente
La question plus générale est : Existe-t-il des bibliothèques d'OCX qui contiennent des contrôles de ce style ?
-- ** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
Cordialement, Stéphane *** http://www.team-santonum.com Loisirs, nature, arts, technologie : accueil en Charente-Maritime
Stéphane Santon
Bonjour,
Bon, en fait, j'ai découvert les modules de classe, et ça paraît bien adapté pour gérer plusieurs TextBox de date, avec un code écrit une seule fois.
Pour exemple, le module de classe DateTextBox contient ceci :
------ * Module de classe DateTextBox * ------------------------ Public WithEvents moTextBox As MSForms.TextBox
Private Sub moTextBox_Change() With moTextBox If .SelStart = 2 Then .SelStart = 3 If .SelStart = 5 Then .SelStart = 6
.ForeColor = IIf(IsDate(.Text), 0, RGB(255, 0, 0)) .SelLength = 1 End With End Sub ----------------------------------------------------------------
Un module standard contient :
------ * Module Classes1 * ------------------------ Private DateTB_Collection() As New DateTextBox
Public Sub Prepare_DateTB_Collection(aoUserForm As UserForm) 'Remarque : tous les noms des DateTextBox commencent par "DateTB" Const csDateTextBox = "DateTB"
Dim loControl As Control, l&, i& i = 0 l = Len(csDateTextBox)
For Each loControl In aoUserForm.Controls If Right(loControl.Name, l) = csDateTextBox Then 'Detecte le suffixe du nom de l'objet ReDim Preserve DateTB_Collection(0 To i) Set DateTB_Collection(i).moTextBox = loControl i = i + 1 End If Next loControl
End Sub ----------------------------------------------------------------
Et il suffit de nommer les contrôles TextBox en finissant par DateTB : Jour1DateTB, Jour2DateTB, ... pour qu'ils soient gérés comme des dates.
* Maintenant mon petit souci avec ça : * L'événement Enter n'est pas reconnu comme appartenant à MSForms.TextBox
Quand je clique dans le sub moTextBox_Change(), les ComboBox de désignation de code indiquent moTextBox -> Change ,
alors que quand je clique dans le sub moTextBox_Enter(), les ComboBox indiquent (Général) -> moTextBox_Enter !
- "Zone de texte" qui permettrait de formater automatiquement la valeur à la saisie, comme une date ? le texte affiché serait 18/06/2004 , et il suffirait de taper 19062004, le curseur passerait directement du 2e au 4e caractère à la saisie...
-- ** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
Cordialement, Stéphane *** http://www.team-santonum.com Loisirs, nature, arts, technologie : accueil en Charente-Maritime
Bonjour,
Bon, en fait, j'ai découvert les modules de classe, et ça paraît bien
adapté pour gérer plusieurs TextBox de date, avec un code écrit une
seule fois.
Pour exemple, le module de classe DateTextBox contient ceci :
------ * Module de classe DateTextBox * ------------------------
Public WithEvents moTextBox As MSForms.TextBox
Private Sub moTextBox_Change()
With moTextBox
If .SelStart = 2 Then .SelStart = 3
If .SelStart = 5 Then .SelStart = 6
.ForeColor = IIf(IsDate(.Text), 0, RGB(255, 0, 0))
.SelLength = 1
End With
End Sub
----------------------------------------------------------------
Un module standard contient :
------ * Module Classes1 * ------------------------
Private DateTB_Collection() As New DateTextBox
Public Sub Prepare_DateTB_Collection(aoUserForm As UserForm)
'Remarque : tous les noms des DateTextBox commencent par "DateTB"
Const csDateTextBox = "DateTB"
Dim loControl As Control, l&, i&
i = 0
l = Len(csDateTextBox)
For Each loControl In aoUserForm.Controls
If Right(loControl.Name, l) = csDateTextBox Then 'Detecte le
suffixe du nom de l'objet
ReDim Preserve DateTB_Collection(0 To i)
Set DateTB_Collection(i).moTextBox = loControl
i = i + 1
End If
Next loControl
End Sub
----------------------------------------------------------------
Et il suffit de nommer les contrôles TextBox en finissant par DateTB :
Jour1DateTB, Jour2DateTB, ...
pour qu'ils soient gérés comme des dates.
* Maintenant mon petit souci avec ça : *
L'événement Enter n'est pas reconnu comme appartenant à MSForms.TextBox
Quand je clique dans le sub moTextBox_Change(),
les ComboBox de désignation de code indiquent moTextBox -> Change ,
alors que
quand je clique dans le sub moTextBox_Enter(),
les ComboBox indiquent (Général) -> moTextBox_Enter !
- "Zone de texte" qui permettrait de formater automatiquement la valeur
à la saisie, comme une date ?
le texte affiché serait 18/06/2004 , et il suffirait de taper 19062004,
le curseur passerait directement du 2e au 4e caractère à la saisie...
--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime
Bon, en fait, j'ai découvert les modules de classe, et ça paraît bien adapté pour gérer plusieurs TextBox de date, avec un code écrit une seule fois.
Pour exemple, le module de classe DateTextBox contient ceci :
------ * Module de classe DateTextBox * ------------------------ Public WithEvents moTextBox As MSForms.TextBox
Private Sub moTextBox_Change() With moTextBox If .SelStart = 2 Then .SelStart = 3 If .SelStart = 5 Then .SelStart = 6
.ForeColor = IIf(IsDate(.Text), 0, RGB(255, 0, 0)) .SelLength = 1 End With End Sub ----------------------------------------------------------------
Un module standard contient :
------ * Module Classes1 * ------------------------ Private DateTB_Collection() As New DateTextBox
Public Sub Prepare_DateTB_Collection(aoUserForm As UserForm) 'Remarque : tous les noms des DateTextBox commencent par "DateTB" Const csDateTextBox = "DateTB"
Dim loControl As Control, l&, i& i = 0 l = Len(csDateTextBox)
For Each loControl In aoUserForm.Controls If Right(loControl.Name, l) = csDateTextBox Then 'Detecte le suffixe du nom de l'objet ReDim Preserve DateTB_Collection(0 To i) Set DateTB_Collection(i).moTextBox = loControl i = i + 1 End If Next loControl
End Sub ----------------------------------------------------------------
Et il suffit de nommer les contrôles TextBox en finissant par DateTB : Jour1DateTB, Jour2DateTB, ... pour qu'ils soient gérés comme des dates.
* Maintenant mon petit souci avec ça : * L'événement Enter n'est pas reconnu comme appartenant à MSForms.TextBox
Quand je clique dans le sub moTextBox_Change(), les ComboBox de désignation de code indiquent moTextBox -> Change ,
alors que quand je clique dans le sub moTextBox_Enter(), les ComboBox indiquent (Général) -> moTextBox_Enter !
- "Zone de texte" qui permettrait de formater automatiquement la valeur à la saisie, comme une date ? le texte affiché serait 18/06/2004 , et il suffirait de taper 19062004, le curseur passerait directement du 2e au 4e caractère à la saisie...
-- ** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
Cordialement, Stéphane *** http://www.team-santonum.com Loisirs, nature, arts, technologie : accueil en Charente-Maritime