Utiliser dans une cellule une fonction visual basic

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

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:

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.

=AdditionSimple(A1;A2)

Si tu as des questions hésite pas

Bonne journée

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 :

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

  • 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:

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

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

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

Rechercher des sujets similaires à "utiliser fonction visual basic"