Visual basic boucle sous excel

Résolu/Fermé
boboss56 - 14 avril 2010 à 15:31
jejelefou Messages postés 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 - 14 avril 2010 à 17:31
Bonjour,

je voulais savoir si quelqu'un pouvait m'aider. Je cherche à copier les valeurs de certaines cellules d'une feuille à une autre. Mais je les réorganise différemment suivant les 2 feuilles.
Si je n'ai pas été claire, je vous envoie mes 2 premières séquences, j'en ai 100 à faire c'est pour ça que j'aimerai trouver une façon de répéter une séquence. Peut être y a t'il de meilleure solution?

Merci d'avance!

Sub Macro3()
'
' Macro3 Macro
'

'
Range("E2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[0]C[-2]"
Range("F2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[1]C[-3]"
Range("G2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[2]C[-4]"
Range("H2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[3]C[-5]"
Range("I2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-6]"
Range("J2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-5]"
Range("K2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-4]"
Range("L2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-4]"
Range("M2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-4]"
Range("N2").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-10]"


Range("E3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[4]C[-2]"
Range("F3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[5]C[-3]"
Range("G3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[6]C[-4]"
Range("H3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[7]C[-5]"
Range("I3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[8]C[-6]"
Range("J3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[8]C[-5]"
Range("K3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[8]C[-4]"
Range("L3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[8]C[-4]"
Range("M3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[8]C[-4]"
Range("N3").Select
ActiveCell.FormulaR1C1 = "='liste prépa cde'!R[8]C[-10]"

End Sub

A voir également:

2 réponses

jejelefou Messages postés 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 15:55
Bonjour, si j'ai bien compris : tu veux copier la cellule 'liste prépa cde!C2 dans la page active!e2 ect ...?

a+

jéjé
0
Oui c'est exactement ça.
Et pour la 2ème séquence je veux copier la cellule 'liste prépa cde!C7 dans la page active!e3 ect

Merci
0
jejelefou Messages postés 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 16:24
tu veux copier la valeur, ou faire un lien comme tu as fais?

merci
0
jejelefou Messages postés 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 16:29
Si tu veux juste recuperer les données essaie ca :

Sub Macro3()
'
' Macro3 Macro
'

x = 0
For i = 2 To 100



Sheets("feuil1").Cells(i, 5) = Sheets("liste prépa cde").Cells(i + x * 4, 3)
Sheets("feuil1").Cells(i, 6) = Sheets("liste prépa cde").Cells(i + x * 4 + 1, 3)
Sheets("feuil1").Cells(i, 7) = Sheets("liste prépa cde").Cells(i + x * 4 + 2, 3)
Sheets("feuil1").Cells(i, 8) = Sheets("liste prépa cde").Cells(i + x * 4 + 3, 3)
Sheets("feuil1").Cells(i, 9) = Sheets("liste prépa cde").Cells(i + x * 4 + 4, 3)
Sheets("feuil1").Cells(i, 10) = Sheets("liste prépa cde").Cells(i + x * 4 + 4, 5)
Sheets("feuil1").Cells(i, 11) = Sheets("liste prépa cde").Cells(i + x * 4 + 4, 7)
Sheets("feuil1").Cells(i, 12) = Sheets("liste prépa cde").Cells(i + x * 4 + 4, 8)
Sheets("feuil1").Cells(i, 13) = Sheets("liste prépa cde").Cells(i + x * 4 + 4, 9)
Sheets("feuil1").Cells(i, 14) = Sheets("liste prépa cde").Cells(i + x * 4 + 4, 4)

x = x + 1


Next

End Sub
0
Parfait merci ça marche.

Par contre comment je peux lui dire de s'arrêter quand les cellules de la feuille "liste prépa cde"sont vides? Car, en fait je n'ai jamais la même quantité mais par exemple au début j'en ai environ 10 puis 50, et ainsi jusqu'à 100.

En tout cas merci beaucoup
0
jejelefou Messages postés 304 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 18 février 2016 42
14 avril 2010 à 16:52
Soit tu change la boucle
For i=2 to 100

en
For i=2 to 10


soit il faut faire un calcul du nombre de ligne, et la comme je n'ai pas ton fichier, je ne sais pas comment faire
0
ok parfait en tout cas merci de votre aide
0