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
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
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:
- Excel algo-> vba
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
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
3 mars 2005 à 10:20
while
...
wend ça c'est bon
mais j'ai essayé : Classeur1!(i).NomOrdi mais ca marche pas
voila
...
wend ça c'est bon
mais j'ai essayé : Classeur1!(i).NomOrdi mais ca marche pas
voila
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
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
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
Utilisateur anonyme
3 mars 2005 à 14:27
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
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
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
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 :)
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 :)
Utilisateur anonyme
3 mars 2005 à 15:31
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
[...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
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
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
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
Utilisateur anonyme
3 mars 2005 à 16:18
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
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