OVH Cloud OVH Cloud

Ne fonctionne toujours pas avec 3 caratères

4 réponses
Avatar
Florian
Bonsoir
J'ai une procédure qui fonctionne normalement mais avec 2 caractères
Je saisi dans Textbox6 les numéros, et j'ai dans Textbox7 le département
cela fonctionne très bien avec 2 numéros ex : 15 = Cantal, mais avec 3
caractères ex : 974 La Réunion, cela ne fonctionne pas.
Ma procédure de départ :

Private Sub TextBox6_Change()
On Error Resume Next
varNum = TextBox6.Value
TextBox7 = ""
TextBox7.Value = Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
End Sub

Corrigé par M.Gaboly, qui ne fonctionne pas du tout chez moi :


>avec les départements dans une colonne (plage nommée "NumDép") et les
>noms dans la colonne immédiatement à droite, la cellule précédant le
>premier nom étant nommée "RéfNoms". (par exemple numéros de A2 à A100,
>correspondant au nom "NumDép", les noms de B2 à B100 et la cellule B1
>nommée "RéfNoms".

>NB1 - Dans le UserForm, j'ai remplacé TextBox6 par TNum et TextBox7 par
>TNom, c'est + parlant.

>Private Sub TNum_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
> On Error Resume Next
> TNom = Range("RéfNoms").Offset(Application.Match(Val(TNum),
>Range("NumDép"), 0)) ' Sur la même ligne que TNom = ...
>End Sub

Merci beaucoup
Flo riant

4 réponses

Avatar
michdenis
Bonjour Florian,

essaie ceci :

'--------------------
Private Sub TextBox6_Change()
dim a as long
On Error Resume Next
a = Range("Les_départements").Row + Range("Les_départements").Rows.Count - 1
if isnumeric(TextBox6.Value) then
varNum = clng(TextBox6.Value)
if varnum>=1 and varnum<e536-a then
TextBox7.Value = Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
Else
Msgbox "hors limite"
end if
else
Msgbox "la donnée dans textbox6 est erronnée."
end if
End Sub
'--------------------


Salutations!



"Florian" a écrit dans le message de news:
Bonsoir
J'ai une procédure qui fonctionne normalement mais avec 2 caractères
Je saisi dans Textbox6 les numéros, et j'ai dans Textbox7 le département
cela fonctionne très bien avec 2 numéros ex : 15 = Cantal, mais avec 3
caractères ex : 974 La Réunion, cela ne fonctionne pas.
Ma procédure de départ :

Private Sub TextBox6_Change()
On Error Resume Next
varNum = TextBox6.Value
TextBox7 = ""
TextBox7.Value = Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
End Sub

Corrigé par M.Gaboly, qui ne fonctionne pas du tout chez moi :


avec les départements dans une colonne (plage nommée "NumDép") et les
noms dans la colonne immédiatement à droite, la cellule précédant le
premier nom étant nommée "RéfNoms". (par exemple numéros de A2 à A100,
correspondant au nom "NumDép", les noms de B2 à B100 et la cellule B1
nommée "RéfNoms".

NB1 - Dans le UserForm, j'ai remplacé TextBox6 par TNum et TextBox7 par
TNom, c'est + parlant.

Private Sub TNum_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
TNom = Range("RéfNoms").Offset(Application.Match(Val(TNum),
Range("NumDép"), 0)) ' Sur la même ligne que TNom = ...
End Sub


Merci beaucoup
Flo riant

Avatar
Florian
Re Denis
Lorsque je saisi 3 caractères cela fonctionne, mais lorsque je saisi 05, le
msgbox se lance dès le 0
Flo riant

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

Bonjour Florian,

essaie ceci :

'--------------------
Private Sub TextBox6_Change()
dim a as long
On Error Resume Next
a = Range("Les_départements").Row + Range("Les_départements").Rows.Count -
1
if isnumeric(TextBox6.Value) then
varNum = clng(TextBox6.Value)
if varnum>=1 and varnum<e536-a then
TextBox7.Value =
Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
Else
Msgbox "hors limite"
end if
else
Msgbox "la donnée dans textbox6 est erronnée."
end if
End Sub
'--------------------


Salutations!



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

Bonsoir
J'ai une procédure qui fonctionne normalement mais avec 2 caractères
Je saisi dans Textbox6 les numéros, et j'ai dans Textbox7 le département
cela fonctionne très bien avec 2 numéros ex : 15 = Cantal, mais avec 3
caractères ex : 974 La Réunion, cela ne fonctionne pas.
Ma procédure de départ :

Private Sub TextBox6_Change()
On Error Resume Next
varNum = TextBox6.Value
TextBox7 = ""
TextBox7.Value = Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
End Sub

Corrigé par M.Gaboly, qui ne fonctionne pas du tout chez moi :


avec les départements dans une colonne (plage nommée "NumDép") et les
noms dans la colonne immédiatement à droite, la cellule précédant le
premier nom étant nommée "RéfNoms". (par exemple numéros de A2 à A100,
correspondant au nom "NumDép", les noms de B2 à B100 et la cellule B1
nommée "RéfNoms".

NB1 - Dans le UserForm, j'ai remplacé TextBox6 par TNum et TextBox7 par
TNom, c'est + parlant.

Private Sub TNum_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
TNom = Range("RéfNoms").Offset(Application.Match(Val(TNum),
Range("NumDép"), 0)) ' Sur la même ligne que TNom = ...
End Sub


Merci beaucoup
Flo riant










Avatar
michdenis
Choisis un autre événement que celui-là .
Private Sub TextBox6_Change pour lancer ta procédure .


Il n'est pas interdit d'avoir un bouton de commande pour actionner le tout au moment opportun.


Salutations!



"Florian" a écrit dans le message de news:
Re Denis
Lorsque je saisi 3 caractères cela fonctionne, mais lorsque je saisi 05, le
msgbox se lance dès le 0
Flo riant

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

Bonjour Florian,

essaie ceci :

'--------------------
Private Sub TextBox6_Change()
dim a as long
On Error Resume Next
a = Range("Les_départements").Row + Range("Les_départements").Rows.Count -
1
if isnumeric(TextBox6.Value) then
varNum = clng(TextBox6.Value)
if varnum>=1 and varnum<e536-a then
TextBox7.Value > Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
Else
Msgbox "hors limite"
end if
else
Msgbox "la donnée dans textbox6 est erronnée."
end if
End Sub
'--------------------


Salutations!



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

Bonsoir
J'ai une procédure qui fonctionne normalement mais avec 2 caractères
Je saisi dans Textbox6 les numéros, et j'ai dans Textbox7 le département
cela fonctionne très bien avec 2 numéros ex : 15 = Cantal, mais avec 3
caractères ex : 974 La Réunion, cela ne fonctionne pas.
Ma procédure de départ :

Private Sub TextBox6_Change()
On Error Resume Next
varNum = TextBox6.Value
TextBox7 = ""
TextBox7.Value = Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
End Sub

Corrigé par M.Gaboly, qui ne fonctionne pas du tout chez moi :


avec les départements dans une colonne (plage nommée "NumDép") et les
noms dans la colonne immédiatement à droite, la cellule précédant le
premier nom étant nommée "RéfNoms". (par exemple numéros de A2 à A100,
correspondant au nom "NumDép", les noms de B2 à B100 et la cellule B1
nommée "RéfNoms".

NB1 - Dans le UserForm, j'ai remplacé TextBox6 par TNum et TextBox7 par
TNom, c'est + parlant.

Private Sub TNum_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
TNom = Range("RéfNoms").Offset(Application.Match(Val(TNum),
Range("NumDép"), 0)) ' Sur la même ligne que TNom = ...
End Sub


Merci beaucoup
Flo riant










Avatar
Florian
Oui, je vais opter pour le bouton
Je te remercie
Flo riant

"michdenis" a écrit dans le message de news:
%23bqkU$
Choisis un autre événement que celui-là .
Private Sub TextBox6_Change pour lancer ta procédure .


Il n'est pas interdit d'avoir un bouton de commande pour actionner le tout
au moment opportun.


Salutations!



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

Re Denis
Lorsque je saisi 3 caractères cela fonctionne, mais lorsque je saisi 05,
le
msgbox se lance dès le 0
Flo riant

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

Bonjour Florian,

essaie ceci :

'--------------------
Private Sub TextBox6_Change()
dim a as long
On Error Resume Next
a = Range("Les_départements").Row +
Range("Les_départements").Rows.Count -
1
if isnumeric(TextBox6.Value) then
varNum = clng(TextBox6.Value)
if varnum>=1 and varnum<e536-a then
TextBox7.Value >> Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
Else
Msgbox "hors limite"
end if
else
Msgbox "la donnée dans textbox6 est erronnée."
end if
End Sub
'--------------------


Salutations!



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

Bonsoir
J'ai une procédure qui fonctionne normalement mais avec 2 caractères
Je saisi dans Textbox6 les numéros, et j'ai dans Textbox7 le département
cela fonctionne très bien avec 2 numéros ex : 15 = Cantal, mais avec 3
caractères ex : 974 La Réunion, cela ne fonctionne pas.
Ma procédure de départ :

Private Sub TextBox6_Change()
On Error Resume Next
varNum = TextBox6.Value
TextBox7 = ""
TextBox7.Value = Range("Les_départements").Item(Application.Match(varNum,
Range("Les_numéros_départements"), 0))
End Sub

Corrigé par M.Gaboly, qui ne fonctionne pas du tout chez moi :


avec les départements dans une colonne (plage nommée "NumDép") et les
noms dans la colonne immédiatement à droite, la cellule précédant le
premier nom étant nommée "RéfNoms". (par exemple numéros de A2 à A100,
correspondant au nom "NumDép", les noms de B2 à B100 et la cellule B1
nommée "RéfNoms".

NB1 - Dans le UserForm, j'ai remplacé TextBox6 par TNum et TextBox7 par
TNom, c'est + parlant.

Private Sub TNum_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
TNom = Range("RéfNoms").Offset(Application.Match(Val(TNum),
Range("NumDép"), 0)) ' Sur la même ligne que TNom = ...
End Sub


Merci beaucoup
Flo riant