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. 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
    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. 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
    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. 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
      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. 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
      4. 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. 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. 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. 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. lami20j a répondu a toutes mes questions,

              Un grand merci a vous

              Bonne fin de journée
              -1