Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Convertir "A1:B10" en A1:B10 pour l'utiliser dans une formule

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

T

Tryphon

Guest
Bonjour,

Dans le code qui suis, je désire calculer une fonction présente dans un autre classeur sur un vecteur de longueur variable du classeur actuel et insérer le résultat à un endroit déterminer de la feuille par la variable grid. Le problème est que la fonction ne marche pas car les arguments 1 et 2 sont considérés comme une chaîne de caractère (ex: "CY23:CY46") au lieu de CY23:CY46.
Je me casse les dents là-dessus depuis deux jours. Quelqu'un aurait-il une idée.

Merci d'avance



For grid = 78 To 228
Workbooks(Namefund).Worksheets(Nomfond).Range("AY" & grid).Activate
ActiveCell.Formula = Run("Core.xls!Omega", "CY" & c + 1 & ":" & "CY" & d, "AX" & grid)
Next grid
 
Re : Convertir "A1:B10" en A1:B10 pour l'utiliser dans une formule

bonjour Tryphon

sans connaitre la fonction et notamment ce qu'elle attend comme parametres
il sera difficile de t'aider

peux-tu nous poster la dite fonction ???
 
Re : Convertir "A1:B10" en A1:B10 pour l'utiliser dans une formule

Bien sur.

Code:
Public Function Omega(ExcessReturns, Optional RequiredReturn)
' Omega

If IsMissing(RequiredReturn) Then
    RequiredReturn = 0
End If
      
Omega = 1 + (WorksheetFunction.Average(ExcessReturns) - RequiredReturn) / LPM(ExcessReturns, RequiredReturn, 1)
    
End Function

avec également

Code:
Public Function LPM(r, L, m)

' Input: un vecteur

n = WorksheetFunction.Max(r.Columns.Count, r.Rows.Count)
d = 0
       
For i = 1 To n
    d = d + WorksheetFunction.Max(L - r(i), 0) ^ m
Next i

LPM = d / n
    
End Function

Merci d'avance!
 
Re : Convertir "A1:B10" en A1:B10 pour l'utiliser dans une formule

salut Tryphon
bonjour pierrejean

arff je suis pas sur d'avoir compris lol

mais peut être une aide

On détermine une variable
Code:
Dim Maplage as String
Maplage=Range("CY" & c + 1 & ":" & "CY" & d).Address(0,0)
'cela donne    Exemple si c=3 et d=10
Maplage= CY4:CY10
à voir Lol,il y a peut surement d'autres méthodes. si j'ai compris bien sur !!!!
Bonne fin de journée
 
Dernière édition:
Re : Convertir "A1:B10" en A1:B10 pour l'utiliser dans une formule

re Tryphon

salut Jean Marie🙂

mon analyse:

function LPM(r,L,m)

r -> range
L et m -> nombre
resultat(LPM) -> nombre
Function Omega(ExcessReturns, Optional RequiredReturn)
ExcessReturns -> range
resultat(Omega) -> nombre

je voterai donc pour la formule:

Code:
ActiveCell.Formula = Run("Core.xls!Omega", range("CY" & c + 1 & ":" & "CY" & d), range("AX" & grid).value)

suggestion tester d'abord sans range("AX" & grid).Value
 
Re : Convertir "A1:B10" en A1:B10 pour l'utiliser dans une formule

Merci mille fois!

Range pour le premier et range pour le deuxième sans le .Value qui me fait bugger excel

Au plaisir et bon week-end
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…