Après les collections, les tableaux de valeurs...

adebrux

XLDnaute Occasionnel
Bon, d'accord, je suis un emmerdeur, je change d'avis très souvent, mais je me suis aperçu qu'à l'usage l'utilisation de collections dans mon programme, ce n'est pas top, et que des tableaux se serait mieux.

Après consultations de l'aide Excel, je tape le code suivant pour ma déclaration de variable:
Code:
Dim Name(1 To 20) As String
donc normalement c'est pour créer un tableau que je veux remplir avec des chaines de caractères.

ensuite, je lui rentre ce qui suit pour remplir mon tableau.
Le code est inscrit dans une boucle dont i est le paramètre.
Code:
Name(i)= MultiPage1.Pages(2).Frame6.Txtnamesinglepart.Text

Et alors, là, j'ai le droit à un message 'erreur de compilation: attendu:AS':sick:
Comme si il ne comprenait pas le type de donnée que je veux lui balancer dedans...

Once again, I am asking for your kind help and understanding with VBA dummies !
 

Creepy

XLDnaute Accro
Hello le Forum, Adebrux,

Plusieurs remarques :

1 - Il faut savoir que si tu déclares un tableaux en public il ne faut pas lui mettre public I as string, il aime pas !! Même en public il faut le déclarer en DIM

2 - A moins de le forcer comme tu le fais les tableaux commence toujours à 0

3 - Ici tu déclare un tableaux avec 20 entrées est-tu sûr que tu n'en aura pas plus ou moins ? Parce que tu monopolise de la mémoire pour rien si tu en as moins et tu seras bloqué à 20 si tu as en plus.
L'idéal est de passer par un tableau dynamique comme ceci :

Code:
 Dim Test_Tab () as string
For I=1 To feuil1.range(A1').end(xldown).row 'Fin de t ableau variable
redim preserve Test_Tab
Test_Tab = feuil1.range('A'&i).value
next

redim preserve redimensionne le tableau en gardant les entrées précedentes. Redim seul redimenssionne le tableau mais efface les précédentes entrées

4 - Cerise sur le gateau : IL NE FAUT PAS DONNER A SES VARIABLES ET/OU TABLEAUX DES NOMS D'INSTRUCTIONS VB.
C'est ici ton problème : Name est un fonction VBA qui renomme un fichier !!!!

@+

Creepy

Message édité par: Creepy, à: 24/10/2005 13:52
 

Creepy

XLDnaute Accro
Re All,

Effectivement Redim Prevserve ajoute +1 à ton tableau dynamique, tout en gardant en mémoire ce qui etait deja dans le tableau

Exemple : Admettons que tu ais deja 5 chaine de texte dans ton tableau: I=6

REdim preserve Tableau(I) ajoute une 6eme entrée à ton tableau en gardant les 5 premières intactes.

Redim : Remettrait tout le tableau à 0

Voila

@+

Creepy
 

Statistiques des forums

Discussions
312 571
Messages
2 089 809
Membres
104 278
dernier inscrit
LENZY