Transferer des données d'un classeur à un template excel vba

Fermé
marieleag Messages postés 1 Date d'inscription samedi 11 avril 2015 Statut Membre Dernière intervention 8 juin 2015 - Modifié par Whismeril le 12/04/2015 à 10:48
BmV Messages postés 90464 Date d'inscription samedi 24 août 2002 Statut Modérateur Dernière intervention 15 avril 2024 - 13 avril 2015 à 08:56
Bonjour, je dois répondre à la question suivante;
Dans votre classeur tp3.xlsm, écrivez une macro, associée au raccourci clavier Ctrl-Maj-W, qui va parcourir les clients de la feuille clients et transférer quelques informations d'un client vers un nouveau document Word.
Pour chacun de ces clients, la macro va ouvrir le modèle tp3Modele.dotx (qui sera placé dans le même répertoire que le classeur), calculer le rendement total sur les 2 années, placer les informations du client aux endroits appropriés et sauvegarder le fichier sous un nom formé du nom de client et du suffixe.docx. Par exemple, si le client se nomme Stéphane Dionne, alors un fichier Dionne.docx sera créé dans le même répertoire que le classeur.

J'ai le code suivant ;

Sub partie1()

Dim orig As Range
Dim dest As Range
Dim chemin As String
Dim i As Integer
Dim classeuro As Workbook
Dim classeurd As Workbook

Set classeuro = ActiveWorkbook

Set orig = Sheets("clients").Range("A3")

chemin = ActiveWorkbook.Path

While Not IsEmpty(orig)

Set classeurd = Workbooks.Add(chemin & "\" & "tp3Modele.xltx")

Set dest = classeurd.Sheets("Feuil1")

For i = 0 To 7

dest.Offset(1, 3) = orig.Offset(i, 0)

dest.Offset(1, 2) = orig.Offset(i, 1)

dest.Offset(5, 18) = orig.Offset(i, 2)

dest.Offset(5, 19) = orig.Offset(i, 3)

dest.Offset(5, 20) = orig.Offset(i, 4)

dest.Offset(6, 18) = orig.Offset(i, 5)

dest.Offset(6, 19) = orig.Offset(i, 6)

dest.Offset(6, 20) = orig.Offset(i, 7)

dest.Offset(18, 1) = "Marie-Léa Girouard"

dest.Offset(19, 1) = "Caroline Rheault"

classeurd.SaveAs Filename:=chemin & orig.Offset(i, 0), FileFormat:=xlNormal
classeurd.Close

Next

Wend

End Sub

Et ça bloque toujours!! Là il me dit que ici;

Set dest = classeurd.Sheets("Feuil1")

For i = 0 To 7

dest.Offset(1, 3) = orig.Offset(i, 0)


à la première ligne j'ai erreur d'automation et à la dernière j'ai objet requis!

Je ne comprends pas bouuu et j'ai pris la plupart de ce code d'un exemple fait par mon professeur :)

Merci

EDIT: Ajout de la coloration syntaxique.


A voir également:

1 réponse

BmV Messages postés 90464 Date d'inscription samedi 24 août 2002 Statut Modérateur Dernière intervention 15 avril 2024 4 685
13 avril 2015 à 08:56
-1