Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Boucle "FOR i= 1 to 30" et feuil Excel

6 réponses
Avatar
Loupio
Bonjour tout le monde,

Je suis heureux de cette très belle journée ensoleillée malgré mon pb sous
VBA excel.

J'ai un code qui fonctionne, mais je souhaiterai le simplifier au taquet
pour des raisons d'efficacité:

Mon code:
------------

Set mc=Sheets("Feuil1").Range("A2")

mc.value=Sheets("Feuil3").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil3").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil4").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil4").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil5").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil5").Range("D28").Value

... jusqu'à la feuil 30

Serait il possible de remplacer ces nombreuses lignes par une boucle "For i=
1 to 30).... Next i ???

Merci d'avance

Et profitez bien des cette journée

Loupio

6 réponses

Avatar
JLuc

Set mc=Sheets("Feuil1").Range("A2")
For I = 1 To 30
mc.Offset(I - 1, 0) = Sheets("Feuil" & I + 2).Range("B28")
mc.offset(I - 1, 1) = Sheets("Feuil" & I + 2).Range("D28")
Next

Devrait convenir, dis nous

--
JLuc
Avatar
Lolote
Salut Loupio,

Effectivement avec un For Next ca devrait marcher. Je n'ai pas testé, mais
je me lance :

Set Mc=Sheets("Feuil1").Range("A2")
For F=3 to 30
Mc.value=Sheets("Feuil" & F & "").Range("B28").Value
Mc.offset(0,1).Value=Sheets("Feuil" & F & "").Range("D28").Value
Set Mc=Mc.offset(1,0)
Mc.select
Next F

En espérant que cela marche....
@+ Lolote



"Loupio" a écrit dans le message de news:

Bonjour tout le monde,

Je suis heureux de cette très belle journée ensoleillée malgré mon pb sous
VBA excel.

J'ai un code qui fonctionne, mais je souhaiterai le simplifier au taquet
pour des raisons d'efficacité:

Mon code:
------------

Set mc=Sheets("Feuil1").Range("A2")

mc.value=Sheets("Feuil3").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil3").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil4").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil4").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil5").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil5").Range("D28").Value

... jusqu'à la feuil 30

Serait il possible de remplacer ces nombreuses lignes par une boucle "For
i > 1 to 30).... Next i ???

Merci d'avance

Et profitez bien des cette journée

Loupio




Avatar
isabelle
bonjour Loupio,

Sub Macro1()
For i = 2 To 30
Sheets("Feuil1").Range("A" & i).Value = Sheets("Feuil" & i).Range("B28").Value
Sheets("Feuil1").Range("B" & i).Value = Sheets("Feuil" & i).Range("D28").Value
Next
End Sub

isabelle


Bonjour tout le monde,

Je suis heureux de cette très belle journée ensoleillée malgré mon pb sous
VBA excel.

J'ai un code qui fonctionne, mais je souhaiterai le simplifier au taquet
pour des raisons d'efficacité:

Mon code:
------------

Set mc=Sheets("Feuil1").Range("A2")

mc.value=Sheets("Feuil3").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil3").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil4").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil4").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil5").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil5").Range("D28").Value

... jusqu'à la feuil 30

Serait il possible de remplacer ces nombreuses lignes par une boucle "For i=
1 to 30).... Next i ???

Merci d'avance

Et profitez bien des cette journée

Loupio




Avatar
papou
Bonjour
Par exemple si ta feuille de départ est la feuille 3 (comme tu sembles
l'indiquer dans ton message)
Dim NomFeuille As String
NomFeuille = "Feuil"
For i = 3 To 30
mc.Value = Sheets(NomFeuille & i).Range("B28").Value
mc.Offset(0, 1).Value = Sheets(NomFeuille & i).Range("D28").Value
Set mc = mc.Offset(1, 0)
Next i

Cordialement
Pascal

"Loupio" a écrit dans le message de news:

Bonjour tout le monde,

Je suis heureux de cette très belle journée ensoleillée malgré mon pb sous
VBA excel.

J'ai un code qui fonctionne, mais je souhaiterai le simplifier au taquet
pour des raisons d'efficacité:

Mon code:
------------

Set mc=Sheets("Feuil1").Range("A2")

mc.value=Sheets("Feuil3").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil3").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil4").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil4").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil5").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil5").Range("D28").Value

... jusqu'à la feuil 30

Serait il possible de remplacer ces nombreuses lignes par une boucle "For
i > 1 to 30).... Next i ???

Merci d'avance

Et profitez bien des cette journée

Loupio




Avatar
Loupio
Ca marche trop trop trop bien! Merci beaucoup et que cette belle journée
persiste!
loupio




Set mc=Sheets("Feuil1").Range("A2")
For I = 1 To 30
mc.Offset(I - 1, 0) = Sheets("Feuil" & I + 2).Range("B28")
mc.offset(I - 1, 1) = Sheets("Feuil" & I + 2).Range("D28")
Next

Devrait convenir, dis nous

--
JLuc





Avatar
Loupio
Merci à vous tous,

C super cool!

Loupio


Bonjour
Par exemple si ta feuille de départ est la feuille 3 (comme tu sembles
l'indiquer dans ton message)
Dim NomFeuille As String
NomFeuille = "Feuil"
For i = 3 To 30
mc.Value = Sheets(NomFeuille & i).Range("B28").Value
mc.Offset(0, 1).Value = Sheets(NomFeuille & i).Range("D28").Value
Set mc = mc.Offset(1, 0)
Next i

Cordialement
Pascal

"Loupio" a écrit dans le message de news:

Bonjour tout le monde,

Je suis heureux de cette très belle journée ensoleillée malgré mon pb sous
VBA excel.

J'ai un code qui fonctionne, mais je souhaiterai le simplifier au taquet
pour des raisons d'efficacité:

Mon code:
------------

Set mc=Sheets("Feuil1").Range("A2")

mc.value=Sheets("Feuil3").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil3").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil4").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil4").Range("D28").Value

Set mc=mc.offset(1,0)
mc.select

mc.value=Sheets("Feuil5").Range("B28").Value
mc.offset(0,1).Value=Sheets("Feuil5").Range("D28").Value

... jusqu'à la feuil 30

Serait il possible de remplacer ces nombreuses lignes par une boucle "For
i > > 1 to 30).... Next i ???

Merci d'avance

Et profitez bien des cette journée

Loupio