OVH Cloud OVH Cloud

Comportement de ComboBox

10 réponses
Avatar
EliotNaiss
Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente d'écrire
qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci

10 réponses

Avatar
Michel Pierron
Bonsoir EliotNaiss;
Propriété Style = 2 (fmStyleDropDownList)

MP

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire

qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci




Avatar
EliotNaiss
merci, cela me plait mieux comme cela ;-)
bonne continuation
Eliot
"Michel Pierron" a écrit dans le message de news:

Bonsoir EliotNaiss;
Propriété Style = 2 (fmStyleDropDownList)

MP

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire

qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci








Avatar
EliotNaiss
Re bonsoir,
en fait 2 questions ?
dans mon userform, j'ai un textbox et je voudrais que l'utilisateur ne
saisisse que du numerique entier sur 7 chiffres maxi, quelqu'un connait la
routine ?
En tout j'ai 7 textbox, et comment dire que le bouton cmd de valider ne soit
enable que si ces 7 zones sont remplies ?
merci
Eliot


"Michel Pierron" a écrit dans le message de news:

Bonsoir EliotNaiss;
Propriété Style = 2 (fmStyleDropDownList)

MP

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire

qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci








Avatar
MPi
Salut,

Pour ta première question, il faut mettre la propriété MaxLength du textbox
à 7
et dans son événement KeyPress, tu vérifies ce qui est entré comme suit:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57 'accepte les numériques
Case Else
KeyAscii = 0 ' le reste est refusé
End Select
End Sub

Pour ce qui est de mettre le bouton enabled ou non, je pense que tu devrais
laisser faire et plutôt valider avant d'exécuter. C'est moins complexe comme
ça.

Michel


Re bonsoir,
en fait 2 questions ?
dans mon userform, j'ai un textbox et je voudrais que l'utilisateur ne
saisisse que du numerique entier sur 7 chiffres maxi, quelqu'un connait la
routine ?
En tout j'ai 7 textbox, et comment dire que le bouton cmd de valider ne soit
enable que si ces 7 zones sont remplies ?
merci
Eliot


"Michel Pierron" a écrit dans le message de news:

Bonsoir EliotNaiss;
Propriété Style = 2 (fmStyleDropDownList)

MP

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire

qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci













Avatar
EliotNaiss
merci c cool
dans 2 de mes textbox, 1 pour écrire le nom et 1 pour le prenom. POur le nom
j'arrive à passer le contenu en majuscule (UCase) mais pour le prénom, je
n'arrive pas à utiliser les fonctions de feuille de calcul pour libeller à
la facon nompropre !
Est-ce à txtPrenom_BeforeUpdate ou à txtPrenom_Change ??
Merci d'avance
Eliot

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci



Avatar
Florian
Salut
avec la procédure Change
txtPrenom = application.proper(txtPrenom.value)

Flo riant


"EliotNaiss" a écrit dans le message de news:
%
merci c cool
dans 2 de mes textbox, 1 pour écrire le nom et 1 pour le prenom. POur le
nom
j'arrive à passer le contenu en majuscule (UCase) mais pour le prénom, je
n'arrive pas à utiliser les fonctions de feuille de calcul pour libeller à
la facon nompropre !
Est-ce à txtPrenom_BeforeUpdate ou à txtPrenom_Change ??
Merci d'avance
Eliot

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis le
déroulé normal ?
Merci







Avatar
EliotNaiss
super, c bon
merci encore
Eliot
"Florian" a écrit dans le message de news:
%
Salut
avec la procédure Change
txtPrenom = application.proper(txtPrenom.value)

Flo riant


"EliotNaiss" a écrit dans le message de news:
%
merci c cool
dans 2 de mes textbox, 1 pour écrire le nom et 1 pour le prenom. POur le
nom
j'arrive à passer le contenu en majuscule (UCase) mais pour le prénom, je
n'arrive pas à utiliser les fonctions de feuille de calcul pour libeller
à
la facon nompropre !
Est-ce à txtPrenom_BeforeUpdate ou à txtPrenom_Change ??
Merci d'avance
Eliot

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis
le déroulé normal ?
Merci











Avatar
EliotNaiss
tiens, puisque je vous tient :
comment figer un userform dans sa position initiale (au centre de l'écran),
sans pouvoir le déplacer ?
merci
Eliot
"Florian" a écrit dans le message de news:
%
Salut
avec la procédure Change
txtPrenom = application.proper(txtPrenom.value)

Flo riant


"EliotNaiss" a écrit dans le message de news:
%
merci c cool
dans 2 de mes textbox, 1 pour écrire le nom et 1 pour le prenom. POur le
nom
j'arrive à passer le contenu en majuscule (UCase) mais pour le prénom, je
n'arrive pas à utiliser les fonctions de feuille de calcul pour libeller
à
la facon nompropre !
Est-ce à txtPrenom_BeforeUpdate ou à txtPrenom_Change ??
Merci d'avance
Eliot

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis
le déroulé normal ?
Merci











Avatar
Florian
Re,

Copie tout le code
en supposant que yon userform s'appelle Userform1
Flo riant

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
Dim hWnd As Long, exLong As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
exLong = GetWindowLongA(hWnd, -16)
If exLong And &H880000 Then
SetWindowLongA hWnd, -16, exLong And &HFF77FFFF
Me.Hide: Me.Show
End If
End Sub
Private Sub UserForm_Initialize()
With UserForm1
'.StartUpPosition = 0 'Ici réglage
'.Left = 40 'Ici réglage
'.Top = 35 'Ici réglage
End With
Dim hWnd As Long
hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub




"EliotNaiss" a écrit dans le message de news:

tiens, puisque je vous tient :
comment figer un userform dans sa position initiale (au centre de
l'écran), sans pouvoir le déplacer ?
merci
Eliot
"Florian" a écrit dans le message de news:
%
Salut
avec la procédure Change
txtPrenom = application.proper(txtPrenom.value)

Flo riant


"EliotNaiss" a écrit dans le message de news:
%
merci c cool
dans 2 de mes textbox, 1 pour écrire le nom et 1 pour le prenom. POur le
nom
j'arrive à passer le contenu en majuscule (UCase) mais pour le prénom,
je
n'arrive pas à utiliser les fonctions de feuille de calcul pour libeller
à
la facon nompropre !
Est-ce à txtPrenom_BeforeUpdate ou à txtPrenom_Change ??
Merci d'avance
Eliot

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis
le déroulé normal ?
Merci















Avatar
EliotNaiss
merci Flo riant
mais je désire qd même conserver l'aspect d'origine de mon userform !!
merci :-)
Eliot



"Florian" a écrit dans le message de news:

Re,

Copie tout le code
en supposant que yon userform s'appelle Userform1
Flo riant

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
Dim hWnd As Long, exLong As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
exLong = GetWindowLongA(hWnd, -16)
If exLong And &H880000 Then
SetWindowLongA hWnd, -16, exLong And &HFF77FFFF
Me.Hide: Me.Show
End If
End Sub
Private Sub UserForm_Initialize()
With UserForm1
'.StartUpPosition = 0 'Ici réglage
'.Left = 40 'Ici réglage
'.Top = 35 'Ici réglage
End With
Dim hWnd As Long
hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub




"EliotNaiss" a écrit dans le message de news:

tiens, puisque je vous tient :
comment figer un userform dans sa position initiale (au centre de
l'écran), sans pouvoir le déplacer ?
merci
Eliot
"Florian" a écrit dans le message de news:
%
Salut
avec la procédure Change
txtPrenom = application.proper(txtPrenom.value)

Flo riant


"EliotNaiss" a écrit dans le message de news:
%
merci c cool
dans 2 de mes textbox, 1 pour écrire le nom et 1 pour le prenom. POur
le nom
j'arrive à passer le contenu en majuscule (UCase) mais pour le prénom,
je
n'arrive pas à utiliser les fonctions de feuille de calcul pour
libeller à
la facon nompropre !
Est-ce à txtPrenom_BeforeUpdate ou à txtPrenom_Change ??
Merci d'avance
Eliot

"EliotNaiss" a écrit dans le message de news:

Salut tous et toutes,
j'ai créé un UserForm avec des zones de texte et listes déroulantes,
ComboBox, alimentées par RowSource.
J'exécute l'userform, je choisi dans le combo, ok. Mais si je tente
d'écrire qquechose cela provoque une erreur.
Comment faire pour éviter (interdire) toute action dans ce combo ormis
le déroulé normal ?
Merci