Excel algo-> vba

Fermé
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 - 3 mars 2005 à 10:19
 Utilisateur anonyme - 3 mars 2005 à 16:18
bonjour à tous
je travail sous xp pro
excel
voila ce que je veux obtenir
TQ Tableau(i).NomOrdi = Tableau(i+1).NomOrdi
....
FTQ

comment cela se traduit dans une macro pour une feuille excel?

merci pour vos rep
A voir également:

6 réponses

Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
3 mars 2005 à 10:20
while

...
wend ça c'est bon

mais j'ai essayé : Classeur1!(i).NomOrdi mais ca marche pas
voila
0
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
3 mars 2005 à 11:07
en effectuant quelque recherche
j'ai fait quelque modification :
Type TableauType
NomOrdi As String
JourAppel As Integer
Mois As Integer
Heure As Date
End Type
Dim Clas() As TableauType



seulement a la ligne
While Clas(i).NomOrdi <> " "
il me met l'erreur suivante : l'indice n'appartient pas a la sélection
// en débogage le curseur sur i indique bien une valeur
0
Utilisateur anonyme
3 mars 2005 à 14:27
Salut,

Avant d'utiliser la ligne :
While Clas(i).NomOrdi <> " "

Il te faut dimensionner ton tableau.

Dim I As Integer

I = 10 ' Valeur fixe connu!
ReDim Clas(I) As TableauType

I = 1
While Clas(I).NomOrdi <> " "
.......
..I = ( I + 1 )
Wend

Lupin
0
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
3 mars 2005 à 15:09
pour pour ta reponse

débogage le curseur sur i indique bien une valeur

comme tu peut le voir
i (mon indice de parcours du tableau) à déja été déclarer en variable (Dim i as Integer)
et avant d'entré dans la boucle j'ai la ligne
i=2
ce que je pense c'est qu'il ne doit pas faire le lien entre class (qui est le nom de la feuille) et justement cette feuille où il y a toutes les données

par contre donnée le nombre de ligne du tableau peut etre une soluce => je vais tester

en attendant galere2 le retour :)
0
Utilisateur anonyme
3 mars 2005 à 15:31
re :


[...pour ta reponse... débogage le curseur sur i indique bien une valeur ]

Même si i indique bien une valeur, cela ne dimensionne pas ton tableau.

Cette ligne [ Dim Clas() As TableauType ] déclare la variable
tableau mais ne la dimensionne pas. Si celle-ci n'est pas
dimensionné, aucune valeur ne sera accepté en indice pour
ce tableau.

L'Instruction [ Clas(1).NomOrdi = "MonOrdi" ] ne sera jamais
accepté.

En plaçant cette ligne :
ReDim Clas(5) As TableauType

L'instruction [ Clas(1).NomOrdi = "MonOrdi" ] sera accepté.

Lupin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
3 mars 2005 à 15:52
entre mon post et ta rep
j'ai vu cet erreur et je l'ai dimensionné entre tps
ya plus d'erreur de compilation maintenant j'ai juste des problemes d'execution : resultat de la macro = null alors qu'il y a un resultat

ce qui manque je pense ça doit etre l'activation des cellules
ou comment la macro rentre dans le tableau (ou est le début )

mais cela ne sais pas comment le gérer j'ai vu dans l'aide la methode activate mais j'ai pas compris


0
Utilisateur anonyme
3 mars 2005 à 16:18
re :

c'est pas clair là ce que tu veux faire !

Tu veux remplir ton tableau avec le contenu de la feuille ?

Range("A1").Select

For I = 1 To 5
..Clas(I).NomOrdi = Activecell.Offset(0,0).Value
..Clas(I).JourAppel = Activecell.Offset(0,1).Value
..Clas(I).Mois = Activecell.Offset(0,2).Value
..Clas(I).Heure = Activecell.Offset(0,3).Value

..Activecell.Offset(1,0).Select ' Avance d'une ligne sur la feuille

Next I

Lupin
0