IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Retour d'arguments fonctions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut Retour d'arguments fonctions
    Bonjour,

    Je suis débutant en VBA, ceci dit je cherche ici à calculer l'étendue d'une plage ip en fonction du masque. J'essaye d'utiliser le passage de valeur par référence.

    Normalement si tout se passe bien, les valeurs passées en paramètre devraient être modifiées ou pas par la fonction après exécution.

    Par exemple "=range(A1;B1;C1;D1;E1)"

    Cela ne devrait-il pas modifier directement ces cellules après exécution ? Car cela ne fait que m'afficher 0 dans la cellule où est appelée la fonction. Les cellules A1-D1 qui devraient être modifiées, elles restent égales à elles-mêmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Function Range( ByRef o1, ByRef o2, ByRef o3, ByRef o4, m As Integer )
     
    If (24 <= m And m < 32) Then
        o4 = o4 + 2 ^ (32 - m) - 1
    End If
     
    If (16 <= m And m < 24) Then
        o3 = o3 + 2 ^ (24 - m) - 1
        o4 = 255
    End If
     
    If (8 <= m And m < 16) Then
        o2 = o2 + 2 ^ (16 - m) - 1
        o3 = 255
        o4 = 255
    End If
     
    If (1 <= m And m < 8) Then
        o1 = o1 + 2 ^ (8 - m) - 1
        o2 = 255
        o3 = 255
        o4 = 255
    End If
     
    End Function
    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,

    Un peu de lecture pour bien comprendre ce qu'est une fonction personnelle et ce qu'elle peut aider à faire.

    http://silkyroad.developpez.com/vba/fonctions/

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/12/2010, 20h52
  2. PL/SQL retour d'une fonction
    Par aaronw dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/12/2005, 13h25
  3. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 16h54
  4. valeur de retour de la fonction "system" en C
    Par benhoeil dans le forum C
    Réponses: 14
    Dernier message: 16/09/2005, 11h30
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo