XL 2013 comment Identifier le type Rows où columns

patricktoulon

XLDnaute Barbatruc
bonjour à tous
comment peut on identifier le type Rows ou Columns avec un argument rows ou columns
j'explique
j'ai une fonction dans la quelle j'injecte un argument rng.rows ou rng .columns
je voudrais identifier le type d'object et non "Range"

VB:
Sub test()
Dim rng As Range

Set rng = [A1:A20]
mafiontion rng, rng.Rows

Set rng = [A1:H10]
mafiontion rng, rng.Columns
End Sub

Function mafonction(r As Range, RowColumns)
MsgBox TypeName(RowColumns)
End Function
 
Solution
donc si je ne veux pas intégrer ces deux lignes dans une fonction
je me fait une fonction perso
VB:
Sub test()
    Dim rng As Range
    '-----------------------------------------
    Set rng = [A1:A10]
    MsgBox GetTypeRange(rng.Rows)

    Set rng = [A1:A10]
    MsgBox GetTypeRange(rng.Columns)
'-----------------------------------------
    Set rng = [A1:J1]
   MsgBox GetTypeRange(rng.Rows)

    Set rng = [A1:J1]
     MsgBox GetTypeRange(rng.Columns)
 '-----------------------------------------
    Set rng = [A1:J10]
    MsgBox GetTypeRange(rng.Rows)

    Set rng = [A1:J10]
     MsgBox GetTypeRange(rng.Columns)
End Sub

Function GetTypeRange(Rowcolumns As Range)
 Dim X As Boolean
 X = Rowcolumns(1).Address = Rowcolumns.Rows(1).Address...

patricktoulon

XLDnaute Barbatruc
oui mais elle n'avait pas tout juste dans les autres cas

un truc un peu téléphoné
mais ça m'oblige à avoir 2 arguments
VB:
Sub test()
    Dim rng As Range
    Set rng = [A1:A10]
    MsgBox GetTypeRange(rng)
    '-----------------------------------------
    Set rng = [A1:A10]
    MsgBox GetTypeRange(rng, rng.Rows)

    Set rng = [A1:A10]
    MsgBox GetTypeRange(rng, rng.Columns)
    '-----------------------------------------
    Set rng = [A1:J1]
    MsgBox GetTypeRange(rng, rng.Rows)

    Set rng = [A1:J1]
    MsgBox GetTypeRange(rng, rng.Columns)
    '-----------------------------------------
    Set rng = [A1:J10]
    MsgBox GetTypeRange(rng, rng.Rows)

    Set rng = [A1:J10]
    MsgBox GetTypeRange(rng, rng.Columns)
End Sub

Function GetTypeRange(rng As Range, Optional Rowcolumns As Range)
    Dim X As Long
    If Rowcolumns Is Nothing Then GetTypeRange = "Range": Exit Function
    X = Abs(Rowcolumns(1).Address = Rowcolumns.Rows(1).Address)
    GetTypeRange = Array("column", "Row", "Range")(X)
End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35