OVH Cloud OVH Cloud

Rajouter des méthodes à Range

5 réponses
Avatar
John Fuss
Bonjour,

est-il possible d'ajouter une méthode à l'objet Range pour obtenir qq chose
du type :

Range("A1").MaMethodePerso() ????

Merci d'avance.

John

5 réponses

Avatar
anonymousA
bonjour,

les méthdes et popriétés de l'objet range sont déjà extrêmement nombreuse et
riches.
A ma conniassance, il n'est pas possible de rajouter ( au sens strict) une
méthode. Maintenant, rien ne t'empêche de passer par un module de classe pour
affecter à une plage des propriétés ou des méthodes particulières.
Exemple.Créer un module de classe appelé ModClass et déclarer dans celui-ci

Public rng As Range

Sub gg()
MsgBox rng.Address
MsgBox "je suis biencontent"
End Sub

et d

Bonjour,

est-il possible d'ajouter une méthode à l'objet Range pour obtenir qq chose
du type :

Range("A1").MaMethodePerso() ????

Merci d'avance.

John





Avatar
anonymousA
suite du précédent message,

et dans un module standard le code suivant

Dim rng1 As New ModClass

Sub xx()
Set rng1.rng = Range("A1")
rng1.gg
End Sub

Quand tu exécuteras la sub xx, le range A1 pointera sur le module de classe
et tu peux appliquer la sub gg du module de classe , ce qui revient au fond à
créer une méthode supplémentaire pour un objet de la collection range mais
absolument pas de manière formelle à l'objet Range lui-même.

A+


Bonjour,

est-il possible d'ajouter une méthode à l'objet Range pour obtenir qq chose
du type :

Range("A1").MaMethodePerso() ????

Merci d'avance.

John





Avatar
John Fuss
Ok, merci, pour info j'ai une formule qui mets bien 45 min à se calculer
(grosse formule + gros volume de lignes), et souvent mon PC plante par
manque de mémoire, j'ai fait un bout de fonction qui écrit la formule pas
sur le range complet mais le fait par lot de cellules dont le nombre est
passé en paramètre (ex : 1000 cellules).

Voilà.

Merci

John

"anonymousA" a écrit dans le message
de news:
suite du précédent message,

et dans un module standard le code suivant

Dim rng1 As New ModClass

Sub xx()
Set rng1.rng = Range("A1")
rng1.gg
End Sub

Quand tu exécuteras la sub xx, le range A1 pointera sur le module de
classe

et tu peux appliquer la sub gg du module de classe , ce qui revient au
fond à

créer une méthode supplémentaire pour un objet de la collection range mais
absolument pas de manière formelle à l'objet Range lui-même.

A+


Bonjour,

est-il possible d'ajouter une méthode à l'objet Range pour obtenir qq
chose


du type :

Range("A1").MaMethodePerso() ????

Merci d'avance.

John







Avatar
anonymousA
re,

si c'est une fonction qui est appelée depuis une sub, 45 mns me parait
gigantesque. Es-tu sur d'avoir optimisé ton code ? si c'est une UDF, faut
voir.

A+


Ok, merci, pour info j'ai une formule qui mets bien 45 min à se calculer
(grosse formule + gros volume de lignes), et souvent mon PC plante par
manque de mémoire, j'ai fait un bout de fonction qui écrit la formule pas
sur le range complet mais le fait par lot de cellules dont le nombre est
passé en paramètre (ex : 1000 cellules).

Voilà.

Merci

John

"anonymousA" a écrit dans le message
de news:
suite du précédent message,

et dans un module standard le code suivant

Dim rng1 As New ModClass

Sub xx()
Set rng1.rng = Range("A1")
rng1.gg
End Sub

Quand tu exécuteras la sub xx, le range A1 pointera sur le module de
classe

et tu peux appliquer la sub gg du module de classe , ce qui revient au
fond à

créer une méthode supplémentaire pour un objet de la collection range mais
absolument pas de manière formelle à l'objet Range lui-même.

A+


Bonjour,

est-il possible d'ajouter une méthode à l'objet Range pour obtenir qq
chose


du type :

Range("A1").MaMethodePerso() ????

Merci d'avance.

John












Avatar
John Fuss
Non,

c'est juste une formule Excel qui fait des recoupement sur plusieurs
colonnes de plusieurs feuilles à base de 'RECHERCHEV, NB.SI, SOMME.SI &
INDEX'
Quand je peux me passer de VBA je n'hesite pas :)

John

P.S je précise que mon PC est volontairement aussi puissant que le PC le
moins puissant de ma société pour être sûr de ne pas me lancer dans une
'usine à gaz' qui ne tournera jamais chez mes utilisateurs.

"anonymousA" a écrit dans le message
de news:
re,

si c'est une fonction qui est appelée depuis une sub, 45 mns me parait
gigantesque. Es-tu sur d'avoir optimisé ton code ? si c'est une UDF, faut
voir.

A+


Ok, merci, pour info j'ai une formule qui mets bien 45 min à se calculer
(grosse formule + gros volume de lignes), et souvent mon PC plante par
manque de mémoire, j'ai fait un bout de fonction qui écrit la formule
pas


sur le range complet mais le fait par lot de cellules dont le nombre est
passé en paramètre (ex : 1000 cellules).

Voilà.

Merci

John

"anonymousA" a écrit dans le
message


de news:
suite du précédent message,

et dans un module standard le code suivant

Dim rng1 As New ModClass

Sub xx()
Set rng1.rng = Range("A1")
rng1.gg
End Sub

Quand tu exécuteras la sub xx, le range A1 pointera sur le module de
classe

et tu peux appliquer la sub gg du module de classe , ce qui revient au
fond à

créer une méthode supplémentaire pour un objet de la collection range
mais



absolument pas de manière formelle à l'objet Range lui-même.

A+


Bonjour,

est-il possible d'ajouter une méthode à l'objet Range pour obtenir
qq




chose
du type :

Range("A1").MaMethodePerso() ????

Merci d'avance.

John