Boucle For "Visual basic" avec le step
Résolulermite222 Messages postés 9042 Statut Contributeur -
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
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.
-
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 -
-
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.-
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 ! -
-
-
Ouuuuf, 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+ -
-
-
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+ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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..
-
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? -
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 -
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 -
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 -
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? -
-
Alors tu ne sais pas faire le test ou je n'ai pas compris ton problème
Vas-y teste ce fichier https://www.cjoint.com/?fupZDzsz8U -
-
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 -
lami20j a répondu a toutes mes questions,
Un grand merci a vous
Bonne fin de journée