VBA Erreur 6: Array alimenté par un Range

avaya

XLDnaute Nouveau
Bonjour à tous,


J'ai un soucis lié au chargement d'un array via un range.

En général, je remplis mes Array de la manière suivante:
Code:
Sub test()
Dim tableautest()
Dim LastLine as Long
LastLine = 971
tableautest = ActiveSheet.Range("A2" & ":W" & LastLine).Value
End Sub

Dans une macro, une feuille à 971 lignes se remplit alors qu'une feuille à 825 entraîne une erreur de dépassement de capacité.
Je précise que la démarche utilisée est exactement la même.

Je pensais que le problème vennait du fait que dans les feuilles, les cellules de chaque colonne sont des fois renseignées, des fois vides et que cela crée du volume.
Or dans la feuille à 825 il y a 15837 celllules non vides.
Dans la feuille à 971, il y en a 18805.

Dans certaines colonnes, il y a des nombres, d'autres du texte. Mais toutes les colonnes sont dans le format "Standart". Est-ce que VBA convertit les nombres dans un autre type que Variant dans l'array? Est-ce qu'il faut que je déclare l'array dans un autre type? Est-ce qu'il faudrait que je scinde mon array en plusieurs array?

Comment je pourrais détourner ce problème?

Etant donné que les feuilles ont des informations plutôt confidentielles, si quelqu'un souhaite m'aider, je peux lui fournir en message privé ces données. Mais à priori je pense pas que cela soit nécessaire.

Merci d'avance,


avaya
 

Jam

XLDnaute Accro
Re : VBA Erreur 6: Array alimenté par un Range

salut avaya, Pierrot,

Hum juste comme ça, comme tu utilises Activesheet, es-tu certain que tu es sur cette feuille quand tu lances ton code ?
Perso, je préfère utiliser Worksheets("son p'tit nom").Range......pas de risque d'erreur dans ce cas ;)
Pour répondre à ta question concernant le type du tableau, toutes les données sont considérées comme du Variant car ton tableau est désigné comme tel.

Bon courage
 

Paf

XLDnaute Barbatruc
Re : VBA Erreur 6: Array alimenté par un Range

Bonjour avaya, Pierrot93, Jam,


Ca m'est arrivé deux ou trois fois et c'était, curieusement, dû à la valeur d'une cellule qui n'avait apparemment rien de particulier.

J'avais trouvé la ligne en cause en modifiant la limite du tableau (ici LastLine) jusqu'à ne plus avoir d'erreur. et modifier la cellule.

A+
 

avaya

XLDnaute Nouveau
Re : VBA Erreur 6: Array alimenté par un Range

Paf, Jam et Pierrot

Oui effectivement, j'ai procédé de la même manière que Paf pour trouver la cellule fautive.
Et j'ai trouvé!
Bizarrement, VBA convertit trois cellules en format personnalisé à la suite d'une copie d'un array dans une feuille qui lui même copiait les données d'une autre feuille (alors qu'à la base tout est en standart dans la feuille de données d'origine)...
Enfin bref, je n'ai pas compris pourquoi il fait ça mais j'ai trouvé la parade en écrivant:
Code:
Cells.NumberFormat = "General"
Juste après l'activation de la feuille.

L'essentiel c'est que ça marche!

Merci à tous pour vos conseils et bonne soirée!!


avaya
 

Discussions similaires

Réponses
20
Affichages
506
Réponses
0
Affichages
153

Statistiques des forums

Discussions
312 211
Messages
2 086 293
Membres
103 171
dernier inscrit
clemm