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

    ...
    wend ça c'est bon

    mais j'ai essayé : Classeur1!(i).NomOrdi mais ca marche pas
    voila
    1. 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. 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. 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. 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 :

            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