Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

creer une fonction dans une macro

  • Initiateur de la discussion Initiateur de la discussion seb1989
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

seb1989

XLDnaute Nouveau
Bonjour,
j'aimerai créer une fonction dans une macro. D'après ce que j'ai compris, on peut créer une fonction en utilisant la fonction macro complémentaire. Mais il me semble que la fonction ne sera plus disponible si l'on change de pc. Ainsi j'aimerai inclure la définition de ma fonction à l'intérieur de la macro mais je ne sais pas comment faire.
merci d'avance.
 
Re : creer une fonction dans une macro

Bonjour

Que doit faire ta fonction ?
Comme toujours, regarder ce qui dit l'aide de VBA (touches: ALT+F11 puis F1)
VB:
Sub Main()     
temp = Application.InputBox(Prompt:= _         
"Veuillez entrer la température en degrés F.", Type:=1) 
    MsgBox "La température équivaut à " & Celsius(temp) & " degrés C." 
End Sub
VB:
 Function Celsius(fDegrees) 
    Celsius = (fDegrees - 32) * 5 / 9 
End Function
 
Dernière édition:
Re : creer une fonction dans une macro

je dispose de plusieurs tableaux sur différentes feuilles. Le but est de rentrer comme argument de ma fonction le nom de ma feuille et le nom d'une colonne du tableau sur cette feuille. La fonction me renvoi ensuite X si dans la colonne que j'ai indiqué dans la fonction il y a un X (peu importe ou dans la colonne) ou rien si aucune case n'est coché.

Je compte utiliser ensuite cette fonction dans une macro qui remplirai un autre tableau en fonction des résultats renvoyés par cette fonction.
 
Re : creer une fonction dans une macro

Re


En attendant ta PJ, je vais me faire un café

PS: et donc tu as été voir dans l'aide VBA pour avoir plus d'infos, je suppose ?

EDITION: bonjour pierrejean
 
Dernière édition:
Re : creer une fonction dans une macro

Voila ce que j'ai fais rapidement. le but est entait de remplir automatiquement d'un X la dernière feuille résultat. Je veux pouvoir rentrer dans ma fonction le nom de la page et les X1 X2 ... Car c'est une base destiné à s'agrandir ainsi le nombre de feuille sera croissant. De même le nombre de colonne sera croissant.
 

Pièces jointes

Re : creer une fonction dans une macro

Bonjour seb1989

Salut Staple

Un essai

VB:
Function x_dans(feuille, colonne)
  Set c = Sheets(feuille).Columns(colonne).Find("x", LookIn:=xlValues, lookat:=xlWhole)
  If Not c Is Nothing Then
     x_dans = True
  Else
  x_dans = False
  End If
End Function

Sub essai()
MsgBox (x_dans("Feuil1", 1))
End Sub
 
Re : creer une fonction dans une macro

Re

Application a ton fichier

Ps: La fonction est l'equivalent d'une macro a la difference pres qu'elle renvoie un resultat
Elle doit etre placée dans un module standard
Dans une macro elle est utilisée comme toutes les autres fonctions (ex: Ucase(lettre))
dans ton fichier je l'ai utilisée directement dans les cellules
 

Pièces jointes

Dernière édition:
Re : creer une fonction dans une macro

Re

La macro pour remplir le tableau

VB:
Sub remplissage()
Dim feuille As String
For Each cel In Sheets("résultat").Range("B2:I23")
  feuille = Sheets("résultat").Cells(cel.Row, 1)
  If feuille <> "" Then cel.Value = x_dans(feuille, cel.Column)
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
641
Réponses
4
Affichages
433
Réponses
2
Affichages
143
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…