A voir également:
- [VBA] Traitement d'une chaine de caractère
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Caractère spéciaux mac clavier - Guide
- Chaine tnt gratuite sur mobile - Guide
10 réponses
Armojax
Messages postés
1858
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2024
1 528
19 janv. 2006 à 17:19
19 janv. 2006 à 17:19
Bonjour georgette,
Tu peux essayer ça :
Tu peux essayer ça :
Function TRANSFO(Chaine) Dim I As Integer I = 1 Do While UCase(Left(Chaine, I)) = Left(Chaine, I) I = I + 1 Loop TRANSFO = Left(Chaine, I - 1) & "." End Function
re !
Nickel Chrome, ça marche !! Par contre c'est bizare ke la condition d'arret de marche pas sous Access...
Merci beaucoup en tout cas ! Et bonne fin de soirée !
Nickel Chrome, ça marche !! Par contre c'est bizare ke la condition d'arret de marche pas sous Access...
Merci beaucoup en tout cas ! Et bonne fin de soirée !
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
21 janv. 2006 à 23:19
21 janv. 2006 à 23:19
Re,
si tes chaines que tu veux modifier ont le format NOM Prenom et tu veux obtenir NOM P. voilà une autre fonction sans utiliser une boucle
si tes chaines que tu veux modifier ont le format NOM Prenom et tu veux obtenir NOM P. voilà une autre fonction sans utiliser une boucle
Function transfo2(chaine) Dim pos As Integer, stemp As String pos = InStr(chaine, " ") stemp = Mid(chaine, pos + 1, 1) stemp = Left(chaine, pos - 1) & " " & stemp & "." transfo2 = stemp End Function
Wouaouuu merci pour le code, c'est super sympa !! Je le testerai demain au taf'. Un grand merci de nouveau !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et oui, c'est encore moi... par curiosité j'ai finalement testé chez moi, et apparement il me manque une librairie car quand j'éxécute il me dit "projet ou bibliothèque introuvable" et me surligne LEFT.
Par hasard, sais tu qu'elle bibliothèque il me faut ?
Par hasard, sais tu qu'elle bibliothèque il me faut ?
Armojax
Messages postés
1858
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2024
1 528
19 janv. 2006 à 20:03
19 janv. 2006 à 20:03
Re,
Tu vas dans VBA, et dans la barre de menu, tout en haut, tu fais : Outils/Références... Coche, si ce n'est déjà fait, les librairies suivantes :
- Visual Basic For Applications
- Microsoft Excel 10.0 Object Library
- OLE Automation
- Microsoft Office 10.0 Object Library
Tu devrais avoir tout ce qu'il te faut pour les besoins courants...
Tu vas dans VBA, et dans la barre de menu, tout en haut, tu fais : Outils/Références... Coche, si ce n'est déjà fait, les librairies suivantes :
- Visual Basic For Applications
- Microsoft Excel 10.0 Object Library
- OLE Automation
- Microsoft Office 10.0 Object Library
Tu devrais avoir tout ce qu'il te faut pour les besoins courants...
Alors là c'est incompréhensible, la condition de sortie n'est pas valide. En effet mon programme plante à cause d'un dépassement de capacité de la variable 'i' (il arrive à 32700), pourtant ton code me semble cohérent...
Franchement je vois pas d'ou ça peut venir.
Bon sinon, il me manquait en effet la librairie Excel, donc merci beaucoup de l'info !!
Dim Chaine As String Dim rr As String Chaine = "MARTIN Bob" Dim I As Integer I = 1 Do While UCase(Left(Chaine, I)) = Left(Chaine, I) I = I + 1 Loop rr = Left(Chaine, I - 1) & "." MsgBox (rr)
Franchement je vois pas d'ou ça peut venir.
Bon sinon, il me manquait en effet la librairie Excel, donc merci beaucoup de l'info !!
Armojax
Messages postés
1858
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2024
1 528
19 janv. 2006 à 21:45
19 janv. 2006 à 21:45
Eh bien ton code fonctionne très bien chez moi...
Alors ?
Pour utiliser ma fonction, si "MARTIN Bob" se trouve dans la cellule A1, il faut écrire :
=TRANSFO(A1)
... mais je suppose que c'est ce que tu fais.
Vois pas pourquoi ça marche pas chez toi.
Alors ?
Pour utiliser ma fonction, si "MARTIN Bob" se trouve dans la cellule A1, il faut écrire :
=TRANSFO(A1)
... mais je suppose que c'est ce que tu fais.
Vois pas pourquoi ça marche pas chez toi.
En faite moi je testais ta fonction sous Access, dans un formulaire.
J'ai testé sous Excel, j'ai donc inséré ta fonction dans Visual Basic Editor et mis =TRANSFO(A1) dans une cellule mais ça me retourne #NOM? Je dois pas savoir utiliser cette chose là...
J'ai testé sous Excel, j'ai donc inséré ta fonction dans Visual Basic Editor et mis =TRANSFO(A1) dans une cellule mais ça me retourne #NOM? Je dois pas savoir utiliser cette chose là...
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
20 janv. 2006 à 22:43
20 janv. 2006 à 22:43
salut Georgette,
As-tu déclaré ta fonction en Public dans un module, afin qu'elle soit accessible depuis une feuille ?
As-tu déclaré ta fonction en Public dans un module, afin qu'elle soit accessible depuis une feuille ?
Salut Kobaya !
Oui, dans excel j'ai tapé dans (feuil1) de Visual Basic Editor le code qui suit :
Mais lorsque je teste ma fonction j'ai '#NOM?' dans la cellule ou j'appelle la fonction
C'est bizare kan meme
Oui, dans excel j'ai tapé dans (feuil1) de Visual Basic Editor le code qui suit :
Public Function TRANSFO(Chaine) Dim I As Integer I = 1 Do While UCase(Left(Chaine, I)) = Left(Chaine, I) I = I + 1 Loop TRANSFO = Left(Chaine, I - 1) & "." End Function
Mais lorsque je teste ma fonction j'ai '#NOM?' dans la cellule ou j'appelle la fonction
C'est bizare kan meme
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
21 janv. 2006 à 22:03
21 janv. 2006 à 22:03
Salut,
ce n'est pas dans le feuil1 de VBE que tu dois écrire ta fonction.
Il faut créer un module (voir menu Insertion/Module ou clic droit-Insertion-Module) et dans le module insère la fonction.
lami20j
P.S. kobaya a demandé : As-tu déclaré ta fonction en Public dans un module,...?
ce n'est pas dans le feuil1 de VBE que tu dois écrire ta fonction.
Il faut créer un module (voir menu Insertion/Module ou clic droit-Insertion-Module) et dans le module insère la fonction.
lami20j
P.S. kobaya a demandé : As-tu déclaré ta fonction en Public dans un module,...?
Salut Lami20j !
En faite je crois qu'il y a un petit quiproquo, je parle d'Excel, car sous Acces la fonction ne marche pas (la condition d'arret de la boucle ne fonctionne pas) .
Donc, je ne vois pas sous Excel le menu Insertion/module. J'ai donc rentré la fonction dans le VBE, car apparement il n'y a pas de module sous Excel (du moins pas dans ma version) et j'ai ce fichue #NOMS? qui apparait....
En faite je crois qu'il y a un petit quiproquo, je parle d'Excel, car sous Acces la fonction ne marche pas (la condition d'arret de la boucle ne fonctionne pas) .
Donc, je ne vois pas sous Excel le menu Insertion/module. J'ai donc rentré la fonction dans le VBE, car apparement il n'y a pas de module sous Excel (du moins pas dans ma version) et j'ai ce fichue #NOMS? qui apparait....
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
21 janv. 2006 à 22:55
21 janv. 2006 à 22:55
Re,
Tu ouvre l'editeur Visual Basic (je parle d'Excel). Donc depuis un classeur Excel voir menu Outils/Macro/Visual Basic Editor.
Une fois le VBE ouvert tu verras dans l'Explorateur des projets le répertoire Microsoft Excel Objects VBAProject(Classeur1) avec ses Feuilles.
Tu fait un clic droit et dans le menu contextuel tu verras Insertion/Module ou menu Insertion/Module (je parle de menu du VBE pas d'Excel)
Tu clic sur Module et tu verras que un répertoire Modules et crée et maintenant contient un module (Module 1)
Ecrit la fonction dans ce module et testes ta fonction.
Quelques images http://www.excel-vba-francais.com/vba-excel-fonctionalites-editeur.htm
Tu ouvre l'editeur Visual Basic (je parle d'Excel). Donc depuis un classeur Excel voir menu Outils/Macro/Visual Basic Editor.
Une fois le VBE ouvert tu verras dans l'Explorateur des projets le répertoire Microsoft Excel Objects VBAProject(Classeur1) avec ses Feuilles.
Tu fait un clic droit et dans le menu contextuel tu verras Insertion/Module ou menu Insertion/Module (je parle de menu du VBE pas d'Excel)
Tu clic sur Module et tu verras que un répertoire Modules et crée et maintenant contient un module (Module 1)
Ecrit la fonction dans ce module et testes ta fonction.
Quelques images http://www.excel-vba-francais.com/vba-excel-fonctionalites-editeur.htm