Fonction paramètre reference 3D

Bonjour,

J'essaie de créer une fonction ou une sub ayant en paramètre une référence 3D.

Mon problème est que je n'arrive pas à trouver comment définir ce paramètre.

J'ai essayé successivement:

as variant,

() as variant,

range,

() as range,

Pour le dernier j'y croyais beaucoup, mais rien à faire.

Quelqu'un sait-il comment se référence une référence 3D en VBA ?

merci à tous.

Bonjour,

Je ne suis pas sûr d'avoir compris.

Regardez l'exemple suivant si il répond à votre question :

Type struct3D
  Column As Long
  Row As Long
  NomFeuille As String
End Type

Sub appelFonction()
Dim param3D As struct3D
With param3D
  .Column = 3 'colonne "C"
  .Row = 20
  .NomFeuille = "Feuil1"
End With
MsgBox AdresseCellule(param3D)
End Sub

Function AdresseCellule(arg3D As struct3D) As String
AdresseCellule = Sheets(arg3D.NomFeuille).Range(Cells(arg3D.Row, arg3D.Column), _
Cells(arg3D.Row, arg3D.Column)).Address
End Function

Cordialement.

PMO

Patrick Morange

Bonjour,

Je reprends cette question car je n'ai pas trouvé.

je vais aussi préciser.

Je veux passer à une fonction une sélection 3D d'une plage de cellule de mes feuilles, mais je n'arrive pas à savoir quel type a cette sélection.

J'obtiens toujours "#VALEUR" comme erreur avant même d'entrer dans ma fonction.

Définition de la référence 3D:

Une référence qui se rapporte à la même cellule ou plage (plage : deux cellules au minimum d’une feuille de calcul. Une plage peut contenir des cellules adjacentes ou non adjacentes.) de cellules dans plusieurs feuilles est appelée une référence 3D (référence 3D : référence à une plage qui s’étend sur deux ou plusieurs feuilles de calcul d’un classeur.).

1.Cliquez sur la cellule dans laquelle vous voulez entrer la fonction.

2.Tapez = (signe égal), entrez le nom de la fonction, puis tapez une parenthèse ouvrante.

3.Cliquez sur l'onglet correspondant à la première feuille de calcul à référencer.

4.Maintenez la touche MAJ enfoncée et cliquez sur l'onglet correspondant à la dernière feuille de calcul à référencer.

5.Sélectionnez la cellule ou la plage de cellules à référencer.

6.Complétez la formule et appuyez sur ENTRÉE.

par exemple: j'entre comme formule =test(Feuil1:Feuil3!A1:A3)

et test est une fonction que j'ai défini comme :

Function test(sel As Range) As Single

pour info de dernière minute, j'ai essayé ce qui suit:

Function test(sel As Variant) As Single

MsgBox TypeName(sel)

MsgBox "coucou"

End Function

et à l'usage j'obtiens un message "error" puis le message "coucou"

donc variant semble pas mal, mais je ne sais pas comment faire pour l'utiliser ensuite ...

autre essai: (en commentaire, ce qui m'est retourné)

Function test(ParamArray sel() As Variant) As Single

MsgBox TypeName(sel) ' -> variant()

MsgBox UBound(sel) ' -> 0

MsgBox TypeName(sel(0)) ' -> error

MsgBox "coucou" ' -> coucou

End Function

Rechercher des sujets similaires à "fonction parametre reference"