Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

verification et autocorrection dans textbox excel 97

2 réponses
Avatar
MATHIEU
Bonsoir à tous,

Voilà, je suis sous Excel 97 et j'aurais besoin de vos conseils pour une
procédure sur laquelle je séche.


Mon soucis se situe sur la ligne 34. J'ai créé des textbox dans une fiche de
saisie. Dedans il y a des zones à validation auto et d'autres avec "Entrée".
Jusque là tout fonctionne bien. J'aimerais maintenant établir sur les
Textbox 12 et 13 (qui représentent respectivement sur 2 chiffres, un
département pour la 12 et un numéro de commune sur 3 chiffres pour la 13),
d'abord un regroupement (pour préparer le controle) puis faire verifier ce
résultat par rapport à une liste ou autre et si le résulat se trouve dans
cette liste, faire remplacer les 3 derniers chiffres du résultat par 3
nouveaux dans la textbox 13. Pas facile à expliquer.

Exemple:
ligne 34 textbox 12, je saisie : 16
ligne 34 textbox 13, je saisie : 007

Réunification de ces 2 zones donne 16007 (à faire juste aprés la saisie ou
en fin de saisie aprés la dernière ligne mais avant le déclenchement de
l'impression)

j'établie une liste ou autre procédure (je ne sais pas comment le tourner),
ou l'on trouve ce style : 16007 devient 16052, 17038 devient 17043 etc

donc verification de la réunification 16007 recherche, trouve que si 16007
présent alors réinscrire 16052 et mettre 052 à la place de 007 sur la fiche
de saisie. bien sur s'il n'y a pas de correspondance, ne rien faire.

Et bien sur, pour couronner le tout que ce travail soit fait de manière
transparente pour l'utilisateur.

Code
_______________________________________________________
Private Sub textbox12_change()
If Len(Trim(TextBox12.Text)) = 2 Then Call button12_click
End Sub

Private Sub textbox12_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Trim(TextBox12.Text)) = 2 Then KeyAscii = 0:
End Sub

Private Sub button12_click()
On Error Resume Next
TextBox12.Visible = False: TextBox12.Text = UCase(TextBox12.Text)
cpt = 1: If cpt1 <> 34 Then cpt1 = 34:
If pos <> 408.75 Then pos = 408.75
Range("R" & cpt1).Select
ActiveCell.FormulaR1C1 = Mid(TextBox12.Text, cpt, 1)
Range("S" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox12.Text, cpt, 1)

TextBox12.Text = "": button12.Visible = False: TextBox13.Visible = True:
Feuil1.TextBox13.Activate

End Sub
________________________________________________________
Private Sub textbox13_change()
If Len(Trim(TextBox13.Text)) = 3 Then Call button13_click
End Sub

Private Sub textbox13_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Trim(TextBox13.Text)) = 3 Then KeyAscii = 0:
End Sub

Private Sub button13_click()
On Error Resume Next

TextBox13.Visible = False: TextBox13.Text = UCase(TextBox13.Text)
cpt = 1: If cpt1 <> 34 Then cpt1 = 34:
If pos <> 408.75 Then pos = 408.75
Range("AG" & cpt1).Select
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)
Range("AH" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)
Range("AI" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)

'on passe ligne suivante
pos = pos + 35.25

'on remet état initial pour continuer
TextBox13.Text = "": button13.Visible = False:
TextBox14.Top = pos:
TextBox14.Visible = True: Feuil1.TextBox14.Activate
cpt1 = cpt1 + 3: TextBox14.Text = ""

End Sub



Voilà, j'ai essayé d'être le plus clair possible, mais aprés beaucoup de
recherches je ne trouve pas de solution à ce problème. Alors merci beaucoup
si vous pouvez m'aider.
Cordialement
lo87

2 réponses

Avatar
Daniel.C
Bonjour.
En admettant que tu aies une liste de corresppondance dans les colonnes
A et B de Feuil2 :

Arg = .TextBox12.Text & .TextBox13.Text
Valeur = Application.VLookup(Arg, [Feuil2!A:B], 2, 0)

Cordialement.
Daniel

Bonsoir à tous,

Voilà, je suis sous Excel 97 et j'aurais besoin de vos conseils pour une
procédure sur laquelle je séche.


Mon soucis se situe sur la ligne 34. J'ai créé des textbox dans une fiche de
saisie. Dedans il y a des zones à validation auto et d'autres avec "Entrée".
Jusque là tout fonctionne bien. J'aimerais maintenant établir sur les
Textbox 12 et 13 (qui représentent respectivement sur 2 chiffres, un
département pour la 12 et un numéro de commune sur 3 chiffres pour la 13),
d'abord un regroupement (pour préparer le controle) puis faire verifier ce
résultat par rapport à une liste ou autre et si le résulat se trouve dans
cette liste, faire remplacer les 3 derniers chiffres du résultat par 3
nouveaux dans la textbox 13. Pas facile à expliquer.

Exemple:
ligne 34 textbox 12, je saisie : 16
ligne 34 textbox 13, je saisie : 007

Réunification de ces 2 zones donne 16007 (à faire juste aprés la saisie ou
en fin de saisie aprés la dernière ligne mais avant le déclenchement de
l'impression)

j'établie une liste ou autre procédure (je ne sais pas comment le tourner),
ou l'on trouve ce style : 16007 devient 16052, 17038 devient 17043 etc

donc verification de la réunification 16007 recherche, trouve que si 16007
présent alors réinscrire 16052 et mettre 052 à la place de 007 sur la fiche
de saisie. bien sur s'il n'y a pas de correspondance, ne rien faire.

Et bien sur, pour couronner le tout que ce travail soit fait de manière
transparente pour l'utilisateur.

Code
_______________________________________________________
Private Sub textbox12_change()
If Len(Trim(TextBox12.Text)) = 2 Then Call button12_click
End Sub

Private Sub textbox12_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Trim(TextBox12.Text)) = 2 Then KeyAscii = 0:
End Sub

Private Sub button12_click()
On Error Resume Next
TextBox12.Visible = False: TextBox12.Text = UCase(TextBox12.Text)
cpt = 1: If cpt1 <> 34 Then cpt1 = 34:
If pos <> 408.75 Then pos = 408.75
Range("R" & cpt1).Select
ActiveCell.FormulaR1C1 = Mid(TextBox12.Text, cpt, 1)
Range("S" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox12.Text, cpt, 1)

TextBox12.Text = "": button12.Visible = False: TextBox13.Visible = True:
Feuil1.TextBox13.Activate

End Sub
________________________________________________________
Private Sub textbox13_change()
If Len(Trim(TextBox13.Text)) = 3 Then Call button13_click
End Sub

Private Sub textbox13_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Trim(TextBox13.Text)) = 3 Then KeyAscii = 0:
End Sub

Private Sub button13_click()
On Error Resume Next

TextBox13.Visible = False: TextBox13.Text = UCase(TextBox13.Text)
cpt = 1: If cpt1 <> 34 Then cpt1 = 34:
If pos <> 408.75 Then pos = 408.75
Range("AG" & cpt1).Select
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)
Range("AH" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)
Range("AI" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)

'on passe ligne suivante
pos = pos + 35.25

'on remet état initial pour continuer
TextBox13.Text = "": button13.Visible = False:
TextBox14.Top = pos:
TextBox14.Visible = True: Feuil1.TextBox14.Activate
cpt1 = cpt1 + 3: TextBox14.Text = ""

End Sub



Voilà, j'ai essayé d'être le plus clair possible, mais aprés beaucoup de
recherches je ne trouve pas de solution à ce problème. Alors merci beaucoup
si vous pouvez m'aider.
Cordialement
lo87
Avatar
MATHIEU
Merci beaucoup
je vais testé

Cordialement
Mathieu

"Daniel.C" a écrit dans le message de news:
%
Bonjour.
En admettant que tu aies une liste de corresppondance dans les colonnes A
et B de Feuil2 :

Arg = .TextBox12.Text & .TextBox13.Text
Valeur = Application.VLookup(Arg, [Feuil2!A:B], 2, 0)

Cordialement.
Daniel

Bonsoir à tous,

Voilà, je suis sous Excel 97 et j'aurais besoin de vos conseils pour une
procédure sur laquelle je séche.


Mon soucis se situe sur la ligne 34. J'ai créé des textbox dans une fiche
de
saisie. Dedans il y a des zones à validation auto et d'autres avec
"Entrée".
Jusque là tout fonctionne bien. J'aimerais maintenant établir sur les
Textbox 12 et 13 (qui représentent respectivement sur 2 chiffres, un
département pour la 12 et un numéro de commune sur 3 chiffres pour la
13),
d'abord un regroupement (pour préparer le controle) puis faire verifier
ce
résultat par rapport à une liste ou autre et si le résulat se trouve dans
cette liste, faire remplacer les 3 derniers chiffres du résultat par 3
nouveaux dans la textbox 13. Pas facile à expliquer.

Exemple:
ligne 34 textbox 12, je saisie : 16
ligne 34 textbox 13, je saisie : 007

Réunification de ces 2 zones donne 16007 (à faire juste aprés la saisie
ou
en fin de saisie aprés la dernière ligne mais avant le déclenchement de
l'impression)

j'établie une liste ou autre procédure (je ne sais pas comment le
tourner),
ou l'on trouve ce style : 16007 devient 16052, 17038 devient 17043 etc

donc verification de la réunification 16007 recherche, trouve que si
16007
présent alors réinscrire 16052 et mettre 052 à la place de 007 sur la
fiche
de saisie. bien sur s'il n'y a pas de correspondance, ne rien faire.

Et bien sur, pour couronner le tout que ce travail soit fait de manière
transparente pour l'utilisateur.

Code
_______________________________________________________
Private Sub textbox12_change()
If Len(Trim(TextBox12.Text)) = 2 Then Call button12_click
End Sub

Private Sub textbox12_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Trim(TextBox12.Text)) = 2 Then KeyAscii = 0:
End Sub

Private Sub button12_click()
On Error Resume Next
TextBox12.Visible = False: TextBox12.Text = UCase(TextBox12.Text)
cpt = 1: If cpt1 <> 34 Then cpt1 = 34:
If pos <> 408.75 Then pos = 408.75
Range("R" & cpt1).Select
ActiveCell.FormulaR1C1 = Mid(TextBox12.Text, cpt, 1)
Range("S" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox12.Text, cpt, 1)

TextBox12.Text = "": button12.Visible = False: TextBox13.Visible = True:
Feuil1.TextBox13.Activate

End Sub
________________________________________________________
Private Sub textbox13_change()
If Len(Trim(TextBox13.Text)) = 3 Then Call button13_click
End Sub

Private Sub textbox13_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Trim(TextBox13.Text)) = 3 Then KeyAscii = 0:
End Sub

Private Sub button13_click()
On Error Resume Next

TextBox13.Visible = False: TextBox13.Text = UCase(TextBox13.Text)
cpt = 1: If cpt1 <> 34 Then cpt1 = 34:
If pos <> 408.75 Then pos = 408.75
Range("AG" & cpt1).Select
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)
Range("AH" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)
Range("AI" & cpt1).Select: cpt = cpt + 1
ActiveCell.FormulaR1C1 = Mid(TextBox13.Text, cpt, 1)

'on passe ligne suivante
pos = pos + 35.25

'on remet état initial pour continuer
TextBox13.Text = "": button13.Visible = False:
TextBox14.Top = pos:
TextBox14.Visible = True: Feuil1.TextBox14.Activate
cpt1 = cpt1 + 3: TextBox14.Text = ""

End Sub



Voilà, j'ai essayé d'être le plus clair possible, mais aprés beaucoup de
recherches je ne trouve pas de solution à ce problème. Alors merci
beaucoup
si vous pouvez m'aider.
Cordialement
lo87