Convertir sans faille un range en tableau

Contenu du snippet

Toujours vrai, quelle que soit la plage traitée, y compris si cellule unique.
Le tableau ainsi obtenu est toujours en option base 1 (comme tous les tableaux vba utilisables dans les deux sens (range vers tableau et tableau vers range)

Private Function faire_tableau(plage As Range) 
 If plage.Cells.Count < 2 Then 
    Dim tabli(1 To 1, 1 To 1) 
    tabli(1, 1) = plage.Value 
    faire_tableau = tabli 
    Erase tabli 
  Else 
    faire_tableau = plage.Value 
  End If 
End Function


à utiliser ainsi (exemple)

tabl = faire_tableau(Range("A1:A3")) 
   
  ' la suite n'est là que comme preuve de la bonne exécution 
  For i = 1 To UBound(tabl, 1) 
    For j = 1 To UBound(tabl, 2) 
      MsgBox tabl(i, j) 
    Next 
  Next

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.