Creation Fonction Excel VBA

  • Initiateur de la discussion Initiateur de la discussion bast0504
  • 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 !

bast0504

XLDnaute Occasionnel
Bonjour a tous,


Je souhaiterais créer une fonction VBA et l'utiliser sur plusieurs feuilles.

Voici la fonction que je cherche à faire fonctionner


PHP:
Function RechercheClient(Code_Ouvrage As String, Table As Variant, indexligne As Byte) As Variant

Dim Message As String

RechercheClient = WorksheetFunction.HLookup(Code_Ouvrage, Table, indexligne, False)

Exit Function

Resume Next
End Function

Explications : Je voudrais en colonne I de la feuille "Stock" avoir la date lorsque l'utilisateur entre le code de l'ouvrage (colonne A), pour cela je souhaite utiliser les données de la feuille Catalogue.

Merci par avance
 

Pièces jointes

Dernière édition:
Re : Creation Fonction Excel VBA

Bonjour bast0504, Papou-net 🙂 ,

Un autre essai avec une même fonction pour les colonnes C à J (en module2) :
VB:
Function RechercheClient(Code_Ouvrage, indexligne As Long)
Dim i&
' Valeurs de indexligne:
'  1 -> Code               2 -> Auteur              3 -> Titre
'  4 -> Code_Collection    40 -> Code_Collection    41 -> Code_Collection
' 42 -> Lieux              43 -> Editeurs           44 -> Collections
'  5 -> N°                  6 -> Date                7 -> Pages

  RechercheClient = CVErr(xlErrNA)
  i = Left(indexligne, 1)
  On Error Resume Next
  RechercheClient = WorksheetFunction.HLookup(Code_Ouvrage, Sheets("Catalogue").range("1:7"), i, 0)
  If Err Then Exit Function
  If indexligne > 41 And indexligne < 45 Then _
    RechercheClient = WorksheetFunction.VLookup(RechercheClient, Sheets("Collections").range("a:d"), indexligne - 40, 0)
End Function
 

Pièces jointes

Dernière édition:
Re : Creation Fonction Excel VBA

RE:

Pour faire simple, on peut considérer qu'une Function est une formule personnalisée.

Il suffit donc de la faire précéder du signe = et de la faire suivre par les paramètres définis dans son en-tête, entre parenthèses.

Ex:

Code:
=RechercheClient(A7;'Librairie2-1.xlsm'!Bibliothèque;6)

A7 ---> Code_Ouvrage As Variant
'Librairie2-1.xlsm'!Bibliothèque ---> Table As Variant
6 ---> indexligne As Byte
Pour vérifier cette assertion, tu peux, dans la barre de menu, cliquer sur Formules, Insérer une fonction et dans la liste sélectionnez une catégorie tu choisis Personnalisées.

Cordialement.
 
- 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
2
Affichages
384
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
544
Retour