Convertir sans faille un range en tableau

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 622 fois - Téléchargée 20 fois

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

Ajouter un commentaire

Commentaire

ClaudeDordogne
Messages postés
47
Date d'inscription
mardi 13 janvier 2015
Statut
Membre
Dernière intervention
7 mars 2015
-
Merci,
c'est une chose que je cherchais depuis longtemps
cela va compléter mon nouveau code à base de dictionnaire :)
Salut

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.