Boucle For "Visual basic" avec le step

Résolu
Bonjour,

J'aimerai a partir d'une colonne de chiffre la collée dans une autre colonne mais

avec la boucle for et donc utiliser la fonction step,

Quelqu'un pourrai m'aider??

bonne journée
Configuration: Windows XP
Internet Explorer 6.0

15 réponses

Résumé de la discussion

Utilisation d'une boucle For avec Step négatif pour recopier les valeurs d'une colonne dans une autre en inversant l'ordre des lignes est le problème central. Des propositions évoquent d'écrire chaque valeur A250, A249, etc. dans B1, B2, et ainsi de suite, en utilisant une boucle qui lit les valeurs de la colonne source. Des solutions techniques évitent de modifier x à l'intérieur de la boucle et privilégient une affectation directe selon l'indice, par exemple B1 = A250, B2 = A249. En cas d'orientation horizontale, une méthode alternative telle que la transposition des valeurs ou l'utilisation de WorksheetFunction.Transpose peut être nécessaire pour éviter les erreurs et obtenir le bon ordre.

Bobot (l’IA à votre service)
  1. j'ai ceci mais ca ne fonctionne pas,

    Public Sub cmd2_Click()
    Dim x As Integer 'valeur de la cellule

    For x = 250 To 1 Step -1 'boucle for pour le décroissement

    Cells(13, (x + 1)) = Cells(x, 1) 'copie la colonne A dans B14
    x = x - 1

    Next x

    End Sub

    j'aimerai mettre une liste en decroissant

    je vois pas ce que je dois dire de plus !

    Quelqu'un saurais m'aider??

    bonne soirée
    8
    1. lami20j a répondu a toutes mes questions,

      Un grand merci a vous

      Bonne fin de journée
      -1
      1. re, essaie

        Public Sub cmd2_Click()

        Dim x As Integer 'valeur de la cellule

        For x = 250 To 1 Step -1 'boucle for pour le décroissement

        Cells(13, (250-x+2)) = Cells(x, 1) 'copie A250 dans B13 , A249 dans C13, A248 dans D13...

        Next x

        End Sub
        0
        1. Merci à lami20j
          0
          1. Contributeur
            Si tu a enfin ce que tu veux oublie pas de valider Résolu en haut du topic
            0
        2. Bonjour,

          On ne comprend pas ce que tu demandes.
          Est ce que tu veux copier une colonne dans une autre en inversant les lignes?
          Est ce que tu veux remplir une colonne avec une serie de nombres décroissants?
          Est ce que tu veux une explication du fonctionnement de la boucle For avec un Step négatif?

          Essaie d'etre plus précis.
          2
          1. Est ce que tu veux une explication du fonctionnement de la boucle For avec un Step négatif? oui je lai dis dans mon premier message et pour le reste je sais pas donner plus d'info

            j'ai une cononne remplie de 1 à 250 en A
            et je voudrais faire un copiage horizontal a partir de B13 en commencant par la plus grande valeur de la liste en A. et donc sous la boucle for!

            je demandais aussi le comment fonctionne la boucle For avec un Step négatif

            Tout ca a ete dis au depart !
            -1
          2. Modérateur
            @numbatva sur le lien que je t'ai donné et télécharge le fichier que je t'ai donné
            -1
          3. @lami20jje lai fé, ca fonctionne mais j'aimerai le mettre horizontal et ca fonctionne pas !
            -1
          4. Contributeur
            @lami20jOuuuuf, vé qd même spliqué comment fonctionne
            For i = 1 to 250
            La boucle compte de 1,2,3,4,etc..

            fori i = 250 to 1
            la boucle commence à 250
            250..et... Terminer, si tu ne dit pas à VB qu'il doit compter à l'enver.
            donc..
            For i =250 to 1 step -1
            la boucle compte 250,249,248,247 etc..
            tu peu aussi faire
            For i=1 to 250 step 2
            la boucle compte 1,3,5,7 etc..
            et l'inverse
            For i =250 to 1 step -2
            la boucle comte
            250,248,246,244, etc..
            C'est compris ?
            A+
            0
          5. @lermite222merci
            mais ca je savais dejà c'est ce que l'aide me donne, le problème c'est que qd je veux le mettre horizontalement il me met une erreur
            fin bon tampis
            -1
        3. Personne ne sait m'aider?
          0
          1. en y incerant ton pregramme voici ce que j'obtien:
            depart
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            apres
            1 2 3 4 5 6 7 8 9 10 11

            Ou alors tu na po tout copier ici de ton programme mais il fonctionne pas

            Fin la je comprend pas comment tu obtien ca alors?
            -1
            1. Pourtant ils le montre bien dans l'aide microsoft, je dois en conclur qu'ils inscrivent des betîses alors !!

              C'est je le fonctionnement que je demande,

              ou tu lis pas ou tu te fous de moi !

              la boucle "for" avec la fonction "step-1" sert a une décroissance, mais chez moi elle ne veut pas fonctionner !!!

              J'aurais besoin d'un exemple??

              (répition de la question)

              bonne apres midi
              -1
              1. 2 4 6 8 10 12

                Voila ce que j'obtient et voila ce que je recherche

                par exemple: 9 8 7 6 5 4 3 2 1

                Et en byte suffit pour la variable
                -1
                1. Personne ne sait m'aider??
                  -1
                2. Contributeur
                  @numbatComprend de moins en moins tes explications, avec la macro de Lami20j tu ne peu pas avoir le résultat que tu montre.
                  A+
                  0
                3. Modérateur
                  @lermite222Salut,

                  en revanche il a le résultat demandé

                  recopie A250 dans B1, A249 dans B2,

                  A        B
                  1	250
                  2	249
                  3	248
                  4	247
                  5	246
                  6	245
                  7	244
                  8	243
                  9	242
                  10	241
                  11	240
                  12	239
                  13	238
                  
                  ...................
                  
                  238	13
                  239	12
                  240	11
                  241	10
                  242	9
                  243	8
                  244	7
                  245	6
                  246	5
                  247	4
                  248	3
                  249	2
                  250	1
                  
                  

                  -1
              2. Modérateur
                Salut,
                Public Sub cmd2_Click() 
                Dim x As Integer
                Dim y As Integer
                y=1
                
                    For x = 250 To 1 Step -1 
                          cells(y,2)=cells(x,1)
                          y = y+1
                    Next x 
                
                End Sub
                0
                1. c'est un exemble je lai noter avec mon programme de départ, je l'ai marquer etant croissant, et bien specifier, que c'etait le contraire,

                  Fin merci je vais essayer
                  -1
              3. non j'ai dis qui recopie A250 dans B1, A249 dans B2,

                Tout ca se fait avec la boucle for et le step -1

                et m'expliquer la boucle for avec le step -1, comment elle fonctionne?
                -1
                1. Contributeur
                  non j'ai dis qui recopie A250 dans B1, A249 dans B2,
                  Où c'est que t'a dit ca ?????? Faudrait savoir in !!!!
                  -1
              4. Contributeur
                Si c'est pas ce que toi veux c'est toi explique pas bien.
                La boucle commence à 250 et copie A250 dans B250, A249 dans B249, A248 dans B248 etc..
                -1
                1. Contributeur
                  Public Sub cmd2_Click() 
                  Dim x As Integer 'valeur pour la boucle
                  
                      For x = 250 To 1 Step -1 'boucle for pour le décroissement 
                  
                            Cells(x,  2).value = Cells(x, 1).value 'copie la colonne A dans B14 ? PAS possible de mettre une colonne dans une cellule, je suppose que tu veux dire colonne B
                  'TU NE DOIT PAS MODIFIE LA VALEUR
                  '...........x = x - 1 ' à supprimé
                  
                      Next x 
                  
                  End Sub


                  A+
                  1
                  1. Ca ne fonctionne pas,

                    Moi c'est en décroissant que je recherche et le fonctionnement de la boucle for?
                    -1
                2. Personne ne sait m'aider??
                  2
                  1. Contributeur
                    Bonjour,
                    Pour que l'ont puissent t'aidés il faut beaucoup plus d'explications sur ce que tu veux faire.
                    A titre d'info...
                    Dim i as long
                        For i = 1 to 1000 step 4
                            'Exécution des commandes
                            '......
                        next i

                    A+
                    0