Excel algo-> vba

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
--
wait worry who cares?

6 réponses

  1. 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
    1. 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

      1. 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
        1. 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
          1. 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 :)
        2. 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
          1. while

            ...
            wend ça c'est bon

            mais j'ai essayé : Classeur1!(i).NomOrdi mais ca marche pas
            voila