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):
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.
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 !