Visual basic boucle sous excel

Résolu
boboss56 -  
jejelefou Messages postés 304 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   42
 
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
boboss56
 
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   Statut Membre Dernière intervention   42
 
tu veux copier la valeur, ou faire un lien comme tu as fais?

merci
0
jejelefou Messages postés 304 Date d'inscription   Statut Membre Dernière intervention   42
 
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
boboss56
 
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   Statut Membre Dernière intervention   42
 
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
boboss56
 
ok parfait en tout cas merci de votre aide
0