0/5 (9 avis)
Vue 4 666 fois - Téléchargée 248 fois
' REDLUPUS 2004 : Petites procédures de mise en forme d'un texte (typiquement : ' saisie utilisateur) pour s'affranchir de certaines variations orthographiques. ' ============================================================= Public Function MiseEnForme(ByVal S As String, _ Optional ByVal C As String = "AB") 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 ' ATTENTION : La chaîne d'origine est convertie en minuscules. ' ============================================================= Const O As String = "àâäèéêëïîôöüùû" ' caractères accentués à remplacer Const N As String = "aaaeeeeiioouuu" ' 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(LCase$(S), _ Mid$(O, I, 1), _ Mid$(N, I, 1), , , vbTextCompare) Next I Case "B": Let S = Replace(Trim$(S), " ", vbNullString, , , vbTextCompare) '... Ici, ajout d'autres traitements possibles, suivant les besoins End Select Next K MiseEnForme = S End Function
13 févr. 2007 à 10:24
That is the question!
4 oct. 2005 à 23:48
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 ""
4 oct. 2005 à 17:27
' =============================================================
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
15 août 2004 à 09:35
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.
10 août 2004 à 17:31
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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.