verification et autocorrection dans textbox excel 97
2 réponses
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)
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
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
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)
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
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
Bonjour.
En admettant que tu aies une liste de corresppondance dans les colonnes
A et B de Feuil2 :
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)
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
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
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)
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
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
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 :
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)
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
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
Merci beaucoup
je vais testé
Cordialement
Mathieu
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
%23zg1hDPxKHA.4752@TK2MSFTNGP04.phx.gbl...
Bonjour.
En admettant que tu aies une liste de corresppondance dans les colonnes A
et B de Feuil2 :
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)
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
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
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)
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
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