OVH Cloud OVH Cloud

Dimension d'une matrice variable

2 réponses
Avatar
Chtibougnat
Bonjour !

J'ai un petit souci dans un code du genre :

R=RefEdit1.text
range(R).select
dim x as variant
x=selection.value2

Là je voudrais un truc pour avoir les dimensions de x (je ne connais aucune
fonction qui permette cela mais je suis un modeste débutant en VBA)

Merci d'avance.

2 réponses

Avatar
MichDenis
Bonjour ,

essaie ceci :

'-----------------------
Sub Tableau()

'Supposons 2 entrées possibles :

't = Range("A1:A10").Value2
'OU
t = Array("denis", "Michel")

On Error Resume Next
If TypeName(t) = "Variant()" Then
Lignes = UBound(t, 1)
colonnes = UBound(t, 2)
If Err <> 0 Then
MsgBox "le tableau est de 1 dimension" & vbCrLf & _
"Contient " & Lignes & " ligne"
Else
Err = 0
MsgBox "le tableau est de 2 dimensions" & vbCrLf & _
"Contient " & Lignes & " lignes et " & colonnes & " Colonnes."
End If
End If

End Sub
.---------------------------


Salutations!



"Chtibougnat" a écrit dans le message de news: %
Bonjour !

J'ai un petit souci dans un code du genre :

R=RefEdit1.text
range(R).select
dim x as variant
x=selection.value2

Là je voudrais un truc pour avoir les dimensions de x (je ne connais aucune
fonction qui permette cela mais je suis un modeste débutant en VBA)

Merci d'avance.
Avatar
MichDenis
Bonjour ,

Juste une légère modification, car l'un des tableaux est de base 0 et la procédure n'en tenait pas compte

'-----------------------------
Sub Tableau()

'Supposons 2 entrées possibles :

't = Range("A1:B10").Value2
'OU
'Tableau Base 0
t = Array("denis", "Michel")

On Error Resume Next
If TypeName(t) = "Variant()" Then
Lignes = UBound(t, 1)
colonnes = UBound(t, 2)
If Err <> 0 Then
'comme c'est un tableau à base 0
'il faut ajouter 1
MsgBox "le tableau est de 1 dimension" & vbCrLf & _
"Contient " & Lignes + 1 & " ligne"
Else
Err = 0
MsgBox "le tableau est de 2 dimensions" & vbCrLf & _
"Contient " & Lignes & " lignes et " & colonnes & " Colonnes."
End If
End If

End Sub
'-----------------------------


Salutations!



"MichDenis" a écrit dans le message de news: %
Bonjour ,

essaie ceci :

'-----------------------
Sub Tableau()

'Supposons 2 entrées possibles :

't = Range("A1:A10").Value2
'OU
t = Array("denis", "Michel")

On Error Resume Next
If TypeName(t) = "Variant()" Then
Lignes = UBound(t, 1)
colonnes = UBound(t, 2)
If Err <> 0 Then
MsgBox "le tableau est de 1 dimension" & vbCrLf & _
"Contient " & Lignes & " ligne"
Else
Err = 0
MsgBox "le tableau est de 2 dimensions" & vbCrLf & _
"Contient " & Lignes & " lignes et " & colonnes & " Colonnes."
End If
End If

End Sub
.---------------------------


Salutations!



"Chtibougnat" a écrit dans le message de news: %
Bonjour !

J'ai un petit souci dans un code du genre :

R=RefEdit1.text
range(R).select
dim x as variant
x=selection.value2

Là je voudrais un truc pour avoir les dimensions de x (je ne connais aucune
fonction qui permette cela mais je suis un modeste débutant en VBA)

Merci d'avance.