Bloc Function et méthode range

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

ricoben

XLDnaute Nouveau
Bjr,
dans un bloc,
Public Function (param1,etc...) ...End Function

j'ai l'impression qu'on ne peut pas écrire:
si le param1=x alors worksheet(s).range("C1").value=Valeur.

les méthodes range ou cells ne peuvent pas être employées dans ce cadre?
Y a t il un autre moyen pour le faire?

Merci d'avance
 
Re : Bloc Function et méthode range

Bonjour
Si bien sur :
Code:
Function test(ref As Range, param1 As Integer)
If param1 = 2 Then
test = ref.Value * param1
Else
test = ref.Value
End If
End Function

tu écris une valeur en A1
en A2 tu écris = test(A1;2) ou test(A1;54) et regarde ce qui se passe
 
Re : Bloc Function et méthode range

Bonjour.

Si on peut. Coté VBA, ça marche très bien, si la fonction est à vocation de procédure normale appelée par du code, la valeur retournée servant juste de code retour d'erreur. Mais bien évidemment, elle restera sans effet si Excel est dans sa phase d'exécution des calculs. Il s'en suit qu'elle ne doit en aucun cas être employée dans une formule de cellule.
L'impasse faite par Excel sur toute modification de cellules pendant les calculs pourrait être contournée par l'inscription dans des variables globales de "consignes" d'exécution ultérieure, qui pourrait être exécutées par une Worksheet_Calculate.
Mais le plus souvent on peut s'en sortir en modifiant les cellules non pas dans des Function mais dans des Worksheet_Change en veillant à mettre Application.EnableEvents = False devant pour éviter un processus récursif.
 
Dernière édition:
Re : Bloc Function et méthode range

merci pour la réponse, c'est toujours plus compliqué d'être synthétique.
En fait le changement de valeur d'une cellule dans la fonction est un élément de calcul du résultat à renvoyer par la fonction et non pas le résultat de la fonction elle même. et c'est là que ca bloque.
 
Re : Bloc Function et méthode range

Je te fais la même réponse que dans ton autre fil : être synthétique c'est bien mais donner un exemple (un classeur !) en montrant ce dont tu pars, ce que tu voudrais passer en paramètre et ce à quoi tu voudrais aboutir, ce serait mieux.

quand tu imbriques deux fonctions d'excel, tu récupères le résultat de la première pour l'injecter dans la seconde. Tu peux faire la même chose avec des fonctions persos. Mais sans plus de précision sur ce que tu souhaites...
 
Re : Bloc Function et méthode range

ci joint l'exemple qui est une modif. d'une autre application, donc bcp de chose non utilisée dans l'exemple.
L'idée est de passer d'un paramétrage classeur à un paramétrage ligne par ligne.
Merci pour votre aide.
 

Pièces jointes

  • PM.zip
    PM.zip
    364.2 KB · Affichages: 23
- 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

Discussions similaires

Réponses
8
Affichages
1 K
L
Réponses
6
Affichages
2 K
lukes67
L
G
Réponses
0
Affichages
1 K
guiboubou233
G
P
  • Question Question
Réponses
1
Affichages
3 K
Patrosso
P
M
Réponses
2
Affichages
968
maroon
M
Réponses
18
Affichages
4 K
N
Réponses
5
Affichages
3 K
Nicocotte125
N
L
  • Question Question
Réponses
2
Affichages
1 K
lienard6u
L
Retour