MISE EN FORME DE SAISIE UTILISATEUR

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 13 juil. 2004 à 08:52
angelo30 Messages postés 1 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 13 février 2007 - 13 févr. 2007 à 10:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24507-mise-en-forme-de-saisie-utilisateur

angelo30 Messages postés 1 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 13 février 2007
13 févr. 2007 à 10:24
Toutes ces sources sont pas mal, mais comment les utiliser?...
That is the question!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 oct. 2005 à 23:48
étrange, cette facon de spécifier plusieurs traitements facultatifs
pourquoi ne pas avoir fait 4 fonctions distinctes ?

Sans documentation, ou sans regarder le code, il est en fait impossible de savoir comment utiliser ta fonction : A B C ou D cela n'indique rien sur le traitment effectué en aval...

j'ajouterais que le nom des variable n'a rien d'exlpicite (K O S ... )

sur le code en lui même je n'ai rien a dire. Je salue même l'utilisation de VbNullString au lieu de ""
geeko74 Messages postés 1 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 4 octobre 2005
4 oct. 2005 à 17:27
Petite modif pour corriger un bug et qq amélioration :

' =============================================================
Public Function MiseEnForme(ByVal S As String, _
Optional ByVal C As String = "ABCD") As String
' -------------------------------------------------------------
' mise en forme du texte saisi, suivant une chaîne de traitement
' (optionnelle) fournie
' S chaîne à mettre en forme
' C traitement de mise en forme
' par défaut : "AB"
' "A" suppression des accents
' "B" suppression de tous les blancs
' "C" suppression de tous les °
' "D" suppression de tous les .
' Const O As String "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ" ' caractères accentués à remplacer"
Const N As String = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn" ' caractères de remplacement"

Dim i As Byte ' indice de boucle (sur "O")
Dim K As Byte ' indice de boucle (sur "C")

For K = 1 To Len(C)
Select Case UCase$(Mid$(C, K, 1))
Case "A":
For i = 1 To Len(O)
Let S = Replace(S, _
Mid$(O, i, 1), _
Mid$(N, i, 1), , , vbBinaryCompare)
Next i
Case "B":
Let S = Replace(Trim$(S), " ", vbNullString, , , vbTextCompare)
Case "C"
Let S = Replace(S, "°", vbNullString, , , vbTextCompare)
Case "D"
Let S = Replace(S, ".", vbNullString, , , vbTextCompare)
End Select
Next K
MiseEnForme = S

End Function

J'ai ajouté des caratères accentués.
Il me semble qu'il y a la liste complète.
Dans Case "A", j'ai enlevé (pour mon utilisation perso) la convertion en minuscule et changé vbTextCompare par vbBinaryCompare pour que les majuscules accentuée restent majuscule et le minuscules accentuées reste minuscule.
Y'a 2 case supplémentaires pour mon utilisation perso.
Testé et utilisé sous Access 2003
RedLupus Messages postés 5 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 17 août 2004
15 août 2004 à 09:35
Merci à toi "idefixfix". Le code (et le zip) ont été modifiés, mais je vois toujours l'ancien... un peu de temps peut-être...
Il est clair que ce n'est pas "length", mais "len". Concernant "mid", je n'utilise pas access 97, mais j'ai un bouquin dessus et, effectivement, cette fonction n'est pas reconnue. J'ai donc ajouté une petite fonction de substitution (voir code "access 97 : ..."). Comme, par ailleurs, j'avais besoin de "Min" et "Max" et qu'il semble que ces fonctions ne soient pas non plus implémentées sous acces (mais, bon, à vérifier) j'ai ajouté aussi les quelques lignes nécessaires.
J'espère que cela te servira. N'hésite pas à me faire savoir si tu as d'autres problèmes.
idefixfix Messages postés 1 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 10 août 2004
10 août 2004 à 17:31
Bonjour, je suis fort intéressé par ta source et j'ai donc décidé de l'essayer sur un base access 97 et je n'ai pas réussi a la faire fonctionner
J'ai des messages d'erreur de variable non défini (length, mid etc...)
Comme tu dois t'en douter je suis débutant, et ma question est : peut on adapter ta source a access ou dois je activer ou déclarer des trucs dans le module ?
Je t'en remercie vivement par avance
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
13 juil. 2004 à 16:17
Sinon, ses fonctions n'ont pas de bugs, il me semblent, donc c'est plutôt bien...
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
13 juil. 2004 à 16:11
Je pense qu'il doit avoir vb5, ça explique pourquoi il ne peut pas utiliser la fonction Replace.
zzmanshow Messages postés 41 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 18 mars 2010
13 juil. 2004 à 13:37
Un accompagnement d'un fichier zip a ta source serait la bienvenue.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2004 à 08:52
Pourquoi recoder une fonctione Remplacer ?
la fonction Replace existe...


ta fonction "SansBlancs" ne pourrait elle etre simplement :

Public Function SansBlancs(S As String) As String
SansBlancs = Remplacer(" ", VbNullString, S)
End Function
Rejoignez-nous