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 :

fonction personnalisée avec plage de cellules variables comme argument


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut fonction personnalisée avec plage de cellules variables comme argument
    Bonjour à tous,

    Je fais appel à vous car je souhaite insérer dans chaque cellule de la plage K4:K8 une fonction que j'ai créé et qui fonctionne. Cette fonction prend deux arguments: le premier sera une plage de cellule fixe à savoir E10:H10, jusqu'ici pas de problème. Mon problème vient du second argument de la fonction qui doit prendre une plage variable à savoir E4:H4 pour la cellule K4 puis E5:H5 pour la cellule K5 ... puis E8:H8 pour la cellule K8. Je n'arrive pas à définir cette plage variable à partir d'une boucle du type de celle que j'ai créé ici.

    Voici donc mon code pour réaliser cette opération ainsi que le code de ma fonction:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Option Explicit
    Option Base 1
     
    Sub test()
    Dim rend_pf() As Variant
    ReDim rend_pf(5, 1)
     
    Dim n, i As Integer
    n=5
     
    For i = 1 To n
     
    Range("K" & i + 3).Select
     
    ActiveCell.Formula = "=rend_pf(E10:H10,E & i+3 :H & i+3)"
     
    Next i
     
    End Sub
     
    Function rend_pf(A As Range, B As Range)
    Dim m, j As Integer
    Dim rend As Double
     
    m = B.Columns.Count
     
    rend = 0
     
    For j = 1 To m
     
    rend = rend + A(1, j) * B(1, j)
     
    Next j
     
    rend_pf = rend
     
    End Function
    Merci par avance et bonne journée.

    Cordialement.

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 413
    Points : 16 255
    Points
    16 255
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Formula = "=rend_pf(E10:H10,E" & i + 3 & ":H" & i + 3 & ")"
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut
    Bonjour Chris,

    Tout fonctionne parfaitement, je te remercie pour ta réponse aussi rapide

    Bonne fin de journée.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut
    Encore une petite question:

    comment je peux faire si la plage de cellules qui est indiquée comme argument de la fonction appartient à une autre feuille que celle de l' Activecell ?

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 413
    Points : 16 255
    Points
    16 255
    Par défaut
    Bonjour

    Soit tu prévois un troisième argument pour le nom de la feuille, soit tu analyses la chaîne reçu pour vérifier la présence du !

    Tout dépend comment est utilisée la fonction: si c'est dans une macro ou par un utilisateur. Dans le second cas l'utilisateur va sélectionner la plage donc tu auras le !.

    Si c'est une procédure qui appelle la fonction, il est plus simple de prévoir un troisième argument.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 55
    Points : 61
    Points
    61
    Par défaut
    Ok merci pour ces précieux conseils Chris

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Calcul avec plages de cellules variables
    Par shipuden64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/06/2015, 18h15
  2. Somme dépendant de plage de cellules variable
    Par Talieth dans le forum Excel
    Réponses: 4
    Dernier message: 23/04/2007, 10h37
  3. appliquer une macro a une plage de cellule variable
    Par johndeuf dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2006, 16h18
  4. [VBA-E]Selection plage de cellules variable
    Par julien5 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/05/2006, 14h51
  5. [VBA-E] graphique avec plage de donnees variable
    Par gigs dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/04/2006, 14h50

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