[RESOLU][VBA][Excel 2000] besoin d'un coup de main rapide

Hello,

Je dois aider un utilisateur à préparer l’export de données depuis une série de fichiers xls. C’est urgent, et le VBA m’est passablement étranger.

En pratique, je veux recopier 20x dans une feuille du classeur, une valeur présente (1x) dans une autre feuille du même classeur. Sans passer par des boucles, ça donne ça :

(L’info à recopier 20x dans les cellules K1 à K20 de la feuille active se trouve en cellule R8 de la feuille Blad1):

[code] Range(“k1”).Select
ActiveCell.Formula = "=Blad1!R8"
Range(“k2”).Select
ActiveCell.Formula = "=Blad1!R8"
Range(“k3”).Select
ActiveCell.Formula = “=Blad1!R8”

…et on continue jusque…

Range("k20").Select
ActiveCell.Formula = "=Blad1!R8"[/code]

J’arrive à faire ça (ooooh !) et ça marche, mais c’est d’une élégance rare ! Vu que je n’ai vraiment pas le temps de me remettre du vba en tête, vous pouvez me pondre la version courte ? Je sais que c’est tout bête, mais le temps presse vraiment.

Je vous en serais méga reconnaissant !

Tente un truc comme ca (la je suis en train de manger et j’ai pas le temps pour la boucle for)
[codebox]
i = 1
While i < 20
ActiveSheet.Cells(i, 11).Formula = "= Blad1!R8"
i = i + 1
Wend
[/codebox]

Allez hop, j’ai fini de manger :
[codebox]
With ActiveSheet
.Range(.Cells(1,11), .Cells(20,11)).Formula = "= Blad1!R8"
End With
[/codebox]

[quote=“ElRed, post:2, topic: 36606”]Tente un truc comme ca (la je suis en train de manger et j’ai pas le temps pour la boucle for)
[codebox]
i = 1
While i < 20
ActiveSheet.Cells(i, 11).Formula = "= Blad1!R8"
i = i + 1
Wend
[/codebox]

Allez hop, j’ai fini de manger :
[codebox]
With ActiveSheet
.Range(.Cells(1,11), .Cells(20,11)).Formula = "= Blad1!R8"
End With
[/codebox][/quote]

Super. le premier code fonctionne à merveille.

Le second non : lorsqu’on descend d’une cellule dans le fichier cible, on descend aussi d’une cellule dans le fichier source. (Au lieu d’avoir R8 dans la cellule K1, K2, K3, … , on a R8 dans K1, R9 dans K2, R10 dans K3, …)

Mais cela n’a aucune importance, vu que le premier fonctionne. Tout grand merci !

chez moi, j’avais essayé avec une constante. Dans ton cas, il faut mettre des $ devant tes references :

[codebox]
With ActiveSheet
.Range(.Cells(1,11), .Cells(20,11)).Formula = "= Blad1!$R$8"
End With
[/codebox]
Et là c’est beau

Ah, l’élégance du code ! C’est une forme d’artisanat, de plaisir du travail bien fait.

Merci encore !