VBA : variable tableau : erreur avec une cellule

Bonsoir à tous,

J'ai une question concernant le code ci-dessous :

Je ne comprends pas pourquoi lorsque cell est une cellule, le code provoque une erreur.

Sub ok()

Dim ws As Worksheet
Set ws = Worksheets(1)
Dim cell As Range
Set cell = ws.Range("A1:A2")
Dim tableau() As Variant
tableau() = cell

End Sub

Si

Set cell = ws.Range("A1:A2")

le code fonctionne

Si

Set cell = ws.Range("A1")

erreur type mismatch

Si quelqu'un a une explication

merci à tous pour votre aide

Bonsoir

Une explication peut-être pas, juste une réflexion

Tableau() attend un tableau en entrée et si tu lui mets juste une cellule, il va râler

Par contre si tu initialises juste

Dim Tableau As Variant

ensuite

Tableau = Cell

Dans les deux cas cela passe

Bonne soirée

Merci pour la réponse.

Si jamais je souhaite connaître ensuite la limite du tableau;

ubound(tableau) m'affichera une erreur si le tableau contient une seule cellule Set cell = ws.Range("A1").

Je suis donc obligé de passer par un if... si je veux utiliser ubound et ne pas avoir d'erreur ?

Bonsoir

Désolé pas mieux en magasin

Aussi tu peux compter les éléments de ta plage avec Count

En attente d'une meilleure réponse

Merci pour ta réponse Banzai.

L'astuce pour ne pas utiliser de count etc... consiste à créer un range d'au moins deux cellules à chaque fois.

En fait c'était pour utiliser avec une plage du genre :

set maplage = range("A1:A" & range("A65000").end(xlup).row+1)

Je rajoute +1 dans ce cas, comme ca aucun souci.

Cordialement

Rechercher des sujets similaires à "vba variable tableau erreur"