Visual basic boucle sous excel

Résolu
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

2 réponses

  1. 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
    1. tu veux copier la valeur, ou faire un lien comme tu as fais?

      merci
      0
    2. 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
    3. 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
    4. 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
    5. ok parfait en tout cas merci de votre aide
      0
  2. 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