Bonjour,
j'espère que je poste dans la bonne question, je sais pas trop si ce topic n'aurait pas plus sa place dans soft et rézo section logiciel
et je sais pas trop si VB/VBA/VBS c la meilleure catégorie ... désolé si je gaffe
en fait, j'aimerais avoir les lumières de gens qui pratique la "programmation" excel depuis un bout de temps, car je trouve excel vraiment pas pratique pour ce que je veux faire, et ça m'étonne, donc je me dis que je dois mal le faire
j'ai donc une liste de mes utilisateurs sous excel, organisée comme suis :
col A - col B - col C - col D - col E
nom - prénom - mot de passe messagerie - adresse email - remarque
mes emails sont de la forme <première lettre de chaque prénom(*)>.nom@société.fr
(*) : pierre = p; jean-marie = jm
j'aimerais en fait faire plusieurs choses :
- transformer tous les noms en majuscule (y compris automatiquement les nouveaux saisis)
- mettre les prénoms sous forme "Prénom", "Prénom-Composé" ou "Double Prénom" (toujours si possible de manière automatique sur les nouveaux saisis). et prévoir les cas spécifiques où il n'y a pas de prénom et où le prénom me sert pour autre chose (par exemple <ville>.<nomchantier>lot<numérolot> ), auquel cas, quand je tape le prénom entièrement en majuscules, il ne me le met pas en forme.
- écrire automatiquement mes adresses emails en fonction du nom et du prénom.
ce que j'ai fait pour ça :
- utilisation fonction "MAJUSCULE" => ça m'oblige à récupérer le résultat dans une colone à part. j'aimerais écraser la colone originale avec celle réécrite en majuscule. et ça ne me met pas automatiquement les nouveaux noms en majuscules
autre chose, j'ai des noms composés ou à particule, dans le cas de noms avec particule ("de truc", "di chose" ), je voulais juste supprimer l'espace. merci SUPPRESPACE ... enfin presque ... au final, SUBSTITUE(<macellule>; " "; "" ).
j'ai aussi un ou deux noms composés ("prénom machin de truc" ), et je veux juste garder "truc" ... malheureusement, ceux-là, je pense que je vais les conserver à gérer au cas par cas, car aussi bien le prochain il voudra conserver juste "machin" ...
- utilisation fonction "NOMPROPRE" => pareil + j'ai pas trouvé de fonction "est_majuscule" qui renverrais "vrai" si son argument est une chaine de caractères composée uniquement de lettres en majuscules. car j'aimerais faire un truc dans le style :
SI(est_majuscule(<macellule> ); <macelllule>; NOMPROPRE(<macellule> )) et remplacer le contenu de "macellule" par le résultat de cette fonction.
J'ai aussi le cas de un ou deux prénoms (évelyne, éloi ...) qui commencent par une voyelle accentuée ... et j'ai l'impression que ça me met pas la voyelle en majuscule. faudrait que je remplace l'accent (ou la cédille) par la lettre correspondante avant de passer la moulinette, en fait
- pour l'email, enfin, j'ai un énorme soucis :
j'ai mon prénom sous la forme que je voulais. je me suis donc dit qu'il me suffisait de virer toutes les minuscules, les "-" des prénoms composés et les espaces des prénoms doubles de ma cellule "Prénom" pour ne garder que les "initiales" (= les majuscules). comme ça, si j'écris un truc tout en majuscule, ça ne me vire rien, et comme j'ai des tas de prénoms composés ou doubles, je peux pas utiliser des fonction style "DROITE" ou "GAUCHE" qui tronquent à la hache dans la chaine de caractère.
sauf que, pour virer les minuscules, j'ai rien trouvé de mieux que SUBSTITUE(<macellule>; "<lettre minuscule>"; "" ) en imbriquant ... ça donne : SUBSTITUE( ... SUBSTITUE(SUBSTITUE(<macellule>; "a"; "" ); "b"; "" ) ... ; "z"; "" )
sauf qu'excel ne supporte pas plus de 7 niveaux d'imbrication, j'en suis donc à 4 colonnes monopolisées pour le traitement de mon prénom (j'élimine "a" jusqu'à "z", " ", "-", "é", "ë", "ç", "è" ). ça marche, mais bon
au final, je fais un truc style CONCATENER(SI(<cellule du prénom>="";"";CONCATENER(MINUSCULE(<cellule des initiales du prénom> );"." ));MINUSCULE(<cellule du nom> );"@société.fr" ), et ça ça me gène pas que la formule reste dans la cellule, contrairement aux colones nom et prénom.
donc en fait, questions :
- ya pas moyen d'abréger un peu le traitement pour les prénoms ? parce que du coup, je prévois pas les cas où le prénom commence par une voyelle accentuée, et j'aime pas ne pas prévoir tous les cas !, et "sacrifier" 4 colones pour ça me parait un tantinet bourrin .
- je vois dans l'aide qu'il ne faut surtout pas faire une formule qui aurait pour résultat elle-même ... je fais comment pour passer ma formule dans ma colone alors ?
c pour le boulot et j'ai pas eu le temps de regarder l'aide sur les macros. si ça se fait facilement avec une macro, je verrai ça lundi.
tant que j'y suis, si en plus je pouvais préciser dans la formule que je veux le nom en arial 12 gras et le prénom en arial 10 gras ... j'ai pas vu si c'était possible de préciser ça, je pense que oui, je regarde lundi.
pour le moment, déja si je trouvais un moyen d'alléger les traitements sur le prénom ... ya pas une fonction comme SUBSTITUE mais qui pourrait prendre plusieurs chaines à supprimer dans la chaine principale ? ... des expressions régulières ?
merci de m'avoir lu jusqu'au bout et merci pour toute aide que vous pourriez m'apporter.
EDIT : j'oubliais la jocefeature ( ) qui transforme " et ) en
FtY
Message édité par misato le 27-03-2006 à 20:57:08
---------------
shibboleet ! - HADOPI vous a plu ? Vous allez adorer la LOPPSI ! - generation NT bande de criminels inconscients !