[Résolu] Utiliser dans une cellule une fonction visual basic

Pour toutes vos questions à propos d'Excel ...

[Résolu] Utiliser dans une cellule une fonction visual basic

Messagepar zakuli » 20 Août 2009, 16:45

Bonjour,

Débutant Visual basic, j'aimerai y créer des fonctions que je pourrais utiliser dans mes cellules.

Est ce possible ?
Si oui, comment s'y prendre ?

Merci
Dernière édition par zakuli le 21 Août 2009, 23:03, édité 1 fois.
zakuli
Utilisateur occasionnel
 
Messages: 10
Inscription: 20 Août 2009, 16:38
Version Excel: 2003 FR

Messagepar Math » 21 Août 2009, 14:21

Bonjour,

pour écrire du code visual basic:

- alt+F11 depuis excel
- ensuite menu insertion et Module
- dans la fenêtre propriété ( en bas à gauche ) renomme le module ( Module1 ) pour quelque chose de plus explicite ( MesFonctionsPerso )
- dans la grande fenêtre de droite tu peux y écrires tes fonctions

reste à savoir maintenant le genre de fonction que tu veux écrire. Voici un petit exemple de fonction qui additionne deux valeurs:

Code: Tout sélectionner
Public Function AdditionSimple(Valeur1, Valeur2)
    AdditionSimple = Valeur1 + Valeur2
End Function


ta fonction s'appelle AdditionSimple, elle prend deux valeurs en paramêtre ( Valeur1 et Valeur2 ). Ensuite, on affecte la valeur de l'opération ( Valeur1 + Valeur2 ) à la fonction AdditionSimple pour qu'elle puisse retourner le résultat.

Ensuite on peut l'utiliser comme les autres fonctions Excel.

Code: Tout sélectionner
=AdditionSimple(A1;A2)


Si tu as des questions hésite pas
Bonne journée
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR

Messagepar zakuli » 21 Août 2009, 15:03

Merci Math,

C'est parfait comme explication je ne pouvais espérer mieux.
Et en plus ça marche parfaitement.

Encore merci pour tes explications.

Peut être peux tu me renseigner aussi sur un autre point, peut on explorer une chaine de caractère de type String avec, si n est le numéro du caractère à sélectionner, une instruction du type str(n) ou str.n ou str[n] et comment on ferme une chaine.
Pour l'exemple, prenons une fonction qui voudrait supprimer les espaces d'une chaine (je sais que ça existe déjà, mais c'est pour l'exemple) , le script pourrait être du genre :

Code: Tout sélectionner
Function suppresp(src As String) As String
    resultat = ""
    longueur = src.Count
    j = 0
    For i = 0 To longueur
        If src[i] <> " " Then resultat[j++] = src[i]   End If
    Next i
    resultat[j] = chr(00); pour fermer (si la string contient un caractère de fin
    suppresp = resultat
End Function

Pourrais tu me dire me le corriger avec la bonne forme ?
En fait, si tu préfères, je recherche à savoir la structure d'une string et les moyens de la manipuler.

Encore Merci
zakuli
Utilisateur occasionnel
 
Messages: 10
Inscription: 20 Août 2009, 16:38
Version Excel: 2003 FR

Messagepar Math » 21 Août 2009, 19:11

- Pour connaitre la longueur d'une chaine utilise Len(TaChaine)
- Pour parcourir les caractères d'une chaine, j'utilise la fonction Mid(TaChaine, Position de départ, Longueur) jumelé à une boucle FOR.

une fonction pour supprimer les espaces ( sans utiliser de TRIM ) pourrait ressembler à ceci:

Code: Tout sélectionner
Public Function SupprEsp(src) As String
    Dim resultat As String
   
    For i = 1 To Len(src)
        If Mid(src, i, 1) <> " " Then resultat = resultat & Mid(src, i, 1)
    Next i
   
    SupprEsp = resultat
End Function
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR

Messagepar zakuli » 21 Août 2009, 21:52

Merci Math,

Donc on est loin d'une structure d'array comme dans C ou les autres langages ! Dommage, ça doit bien ralentir d'être obligé de passer par des fonctions !!!

Encore merci pour tes réponses

Cordialement
zakuli
Utilisateur occasionnel
 
Messages: 10
Inscription: 20 Août 2009, 16:38
Version Excel: 2003 FR

Messagepar Math » 21 Août 2009, 23:00

Bonjour Zakuli,

c'est une façon de faire, il y en a surement d'autres. Quand au structure d'array, je ne sais pas si on peut coder quelque chose de similaire en VBA.

Content de t'avoir aider.

Bonne journée
Avatar de l’utilisateur
Math
Membre dévoué
 
Messages: 726
Inscription: 05 Déc 2007, 18:57
Localisation: Québec, Canada
Version Excel: 2003 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google Adsense [Bot], messondewez, rico95 et 28 invités