Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2011, 07h15   #1
Invité régulier
 
Guy DUFOUR
Inscription : novembre 2009
Messages : 26
Détails du profil
Informations personnelles :
Nom : Guy DUFOUR
Âge : 60

Informations forums :
Inscription : novembre 2009
Messages : 26
Points : 6
Points : 6
Par défaut comment tester qu'un txtbox ne comporte que l'année d'une date ?

Bonjour à tous,

Habituellement, je demande à l'utilisateur d'un userform d'entrer une date sous forme "jj/mm/aaaa" et je teste le txtbox par le biais du code : If not Isdate(txtbox) then.....

Aujourd'hui, j'aimerais que l'utilisateur ne précise que l'année. J'ai regardé les très divers tutoriels mais je ne trouve pas le code à mettre pour tester la valeur du txtbox ne devant contenir que l'année d'une date.

Vous remerciant de votre aide,

Cordialement

GUY59960
guy59960 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 07h25   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 710
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 710
Points : 3 640
Points : 3 640
Salut, utilise une ComboBox contenant toutes les années valides plutôt qu'une TextBox

Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub UserForm_Initialize()
Dim i As Long
    With ComboBox1
        .Clear
        .Style = fmStyleDropDownList
        .ListRows = 30
        For i = 2010 To 2030
            .AddItem i
        Next i
    End With
End Sub
Après tout dépend à quel moment tu valides la saisie des données
mais pour la ComBox tu auras qqch comme
Code :
If ComboBox1.ListIndex = -1 Then ....
pour dire à l'utilisateur qu'il doit absolument sélectionner une année
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/11/2011, 08h58   #3
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 905
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 905
Points : 7 199
Points : 7 199
Bonjour,

Si ton choix reste sur la textbox

Il te reste a borner les années suivant ton besoin
Code :
1
2
3
If IsNumeric(TextBox1.Text) = False Or Val(TextBox1.Text) < 2000 Or Val(TextBox1.Text) > 2100 Then
    MsgBox "Date incorrect"
End If
NB : tu peux aussi gérer les caractères autorisés via l’évènement Keypress de la textbox. Cela rendra obsolète le test Isnumeric
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h40.


 
 
 
 
Partenaires

Hébergement Web