LukeSkywalker67
Messages postés20Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention21 août 2006
-
20 déc. 2005 à 17:02
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 2022
-
21 déc. 2005 à 19:47
Bonjour à tous,
J'aimerai savoir comment on peut éxecuter une macro sous Excel 200 sans être obligé de cliquer
sur outil/macros/éxecuter ou encore créer un raccourci. En fait, peut-on appeler une macro de la
même manière que l'on applique une formule de calcul ???
Je suis complétement ignard sous Excel alors je pose peut-être une question stupide.
conseildg
Messages postés86Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention18 mars 2007 20 déc. 2005 à 17:22
il n'y a jamais de question stupide.
tu peux affecter la macro à un bouton dans une feuille.
selon le cas tu peux aussi en faire une fonction qui devient disponible dans excel.
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 20 déc. 2005 à 21:57
Lut,
1°) Faire Alt F11 pour entrer dans l'éditeur VBA.
2°) Faire Menu [Insertion] [Module]
3°) Sélectionner le module
4°) Faire Menu [Insertion] [Procedure]
- Donner un Nom
- Sélectionner Function et Public
5°) Ecrire la fonction
Voilà celle-ci sera disponible sous excel dans les fonctions personalisées
LukeSkywalker67
Messages postés20Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention21 août 2006 21 déc. 2005 à 09:55
Merci pour tes explications Valtrase.
J'arrive bien à rendre ma procédure disponible sous Excel maintenant. Par contre j'ai un autre problème :
ma procédure effectue un traitement des chaines de caractéres contenues dans une cellule de la feuille
et affiche le résultat dans une autre cellule. Je récupère bien la chaine de caractère en paramètre de ma fonction
, le hic c'est que je n'arrive pas à retourner le résultat dans la cellule en cours. Je ne sais pas quel type d'objet
je dois retourner : Range, Cells, Object... Voici à quoi ressemble ma fonction :
Public Function TraitementChaine(CellEnCours As Object) As Object
Dim Texte as string
Dim Resultat as string
Texte = Str(CellEnCours)
'---- Traitement de la chaine Texte et résultat dans variable Résultat--------
TraitementChaine=resultat
end function
Mais là je n'arrive pas à retourner ma chaine de caractère car TraitementChaine est vide.
Je sais pas si je suis très clair dans mes explications.
Vous n’avez pas trouvé la réponse que vous recherchez ?
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 21 déc. 2005 à 19:47
Re,
Si tu colles ta fonction dans une cellule de ta feuille ( ex: cellule B1 "=TraitementChaine(A1)"
Celle-ci te renvéra le résultat dans B1
si ce n'est pas le cas c'est que tu as un bug dans ta fonction .......
Par contre si tu lances ta macro depuis un bouton un menu etc.... alors là tu dois lui dire que le résultat doit aller dans la cellule active.
ce n'est même plus la peine de faire une fonction une simple sub suffit
Public Sub TraitementChaine(CellEnCours As Range)
Dim Texte as string
Dim Resultat as string
Texte = Str(CellEnCours)
'---- Traitement de la chaine Texte et résultat dans variable Résultat--------