Re,
Workbooks(ws).Range("A1").Value = Workbooks(wb).Sheets("Feuil1").Range(Cells(i, 1), Cells(i, 1)).Value
On ne met pas de guillemets dans ce cas où le nom du workbook est stocké dans une variable !
De plus, à quoi sert
Range(Cells(i, 1), Cells(i, 1)
Remplace par C'est la même chose et ça sera plus simple.
Enfin, tout dépend des workbooks sur lesquels tu souhaites opérer lorsque tu définis ws et wb. Dans ton cas, ws et wb pourraient correspondre exactement au même workbook (je t'avoue, je n'ai pas regardé). Bref, fais bien gaffe que ce soient bien ceux que tu souhaites.
En gros, tu devrais avoir Set ws = "Test" A la place de Test, tu mets le nom du workbook où tu as mis ta macro.
Puis, au lieu de
Windows("Feuille1.xls").Activate
mets
Workbooks("Feuille1").activate
Et après tu peux enfin mettre tonBref, en gros, au final tu devrais tomber sur ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Sub publipostage()
Dim i As Integer
Dim wb As Workbook
Dim ws as Workbook
i = 2 'pour que ta boucle ne passe pas sur la ligne de titre
Set ws = "Test" 'Le nom du workbook où tu as mis ta macro : ici il s'appelerait Test.xls
Do While Cells(i, 1) <> ""
'on ouvre le fichier avec la mise en forme souhaité
Workbooks.Open Filename:="C:\Documents and Settings\Gauthier\Bureau\Stage\Feuille1.xls"
Workbooks("Feuille1").Activate
Set wb = ActiveWorkbook
'on remplit les cellule du fichier mis en forme avec les données de ta liste
Workbooks("wb").Range("A1").Value = Workbooks("ws").Sheets("Feuil1").Range("A"&i).Value
'.....
'ainsi de suite pour tous les champs de la ligne
'.....
'on sauvegarde le fichier avec le nom voulu
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Gauthier\Bureau\Stage" & Cells(i, 1).Value & Cells(i, 2).Value & Cells(i, 3).Value & ".xls"
ActiveWorkbook.Close SaveChanges:=wdDoNotSaveChanges
i = i + 1
Loop
End Sub |
Sinon, je lis
ActiveWorkbook.Close SaveChanges:=wdDoNotSaveChanges
Es-tu sûr de ne pas vouloir sauvegarder tes modifications ?
Bref, plus mâché que ça on ne peut pas faire. Dis-nous si ça amrche et bonne nuit !
Partager