Fusions multiples onglets
Bonjour à toutes la communauté,
J'ai des modèles de documents Word avec des signets :
- Pour des articles de téléphonies
- Pour des articles informatiques
En case A1 pour chaque onglet j'ai les termes "Téléphone" ou "informatique"
Pour le moment et pour chaque onglet j'utilise manuellement une macro en fonction du terme en A1(modèle d'objet étant le modèle téléphone ou informatique) :
sub génération rapport()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.Documents.Open("c:\User\moi\Documents\rapport\modèle d'objet")
WordApp.Visible = False
WordDoc.Bookmarks("nom du signet").Range.Text = Cells(numéro de ligne, numéro de colonne)
WordDoc.Bookmarks("nom du second signet").Range.Text = Cells(numéro de ligne, numéro de colonne)
...
WordApp.Visible = True
End Sub
Actuellement je fais :
- Autant de fusion que j'ai d'onglets.
- Je prends tous mes fichiers et j'insère le contenu (copier/coller) les un derrière les autres dans un même rapport.
Le but serai de pouvoir avoir le rapport en une seule fois et que la macro choisisse le modèle en fonction de la case A1.
Une fois tous les onglets lus (nbr variable) la macro s’arrête et le document Word est ouvert.
Cela m'éviterai des problèmes de poignets en fin de journée.....
Merci
Cordialement
Pascal
Bonjour la communauté ,
Je pensais ajouter une commande If mais cela bug.
sub generation_rapport()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application")
If Cells(1,1) = telephone Then
Set WordDoc = WordApp.Documents.Open("c:\User\moi\Documents\rapport\rapport telephone")
Else
Set WordDoc = WordApp.Documents.Open("c:\User\moi\Documents\rapport\rapport informatique")
End If
WordApp.Visible = False
WordDoc.Bookmarks("nom du signet").Range.Text = Cells(numéro de ligne, numéro de colonne)
WordDoc.Bookmarks("nom du second signet").Range.Text = Cells(numéro de ligne, numéro de colonne)
WordApp.Visible = True
End Sub
Je n'arrive pas non plus à faire la boucle jusqu'au dernier onglet.
Pascal
Re ,
J'ai aussi essayé de mettre une boucle mais cela bug.
sub generation_rapport()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application")
If Cells(1,1) = telephone Then
Set WordDoc = WordApp.Documents.Open("c:\User\moi\Documents\rapport\rapport telephone")
Else
Set WordDoc = WordApp.Documents.Open("c:\User\moi\Documents\rapport\rapport informatique")
End If
WordApp.Visible = False
WordDoc.Bookmarks("nom du signet").Range.Text = Cells(numéro de ligne, numéro de colonne)
WordDoc.Bookmarks("nom du second signet").Range.Text = Cells(numéro de ligne, numéro de colonne)
Next ws
WordApp.Visible = True
End Sub
Je n'arrive pas non plus à faire la boucle jusqu'au dernier onglet.
Pascal
bonjour
pourquoi ne pas utiliser la fusion de Word dans Excel (ou l'inverse
on peut filtrer les données en cours de processus.
note : dans le fichier Excel il faut un unique onglet avec toutes les données sous forme de tableau en simples colonnes, et non de multiples onglets.
peux-tu revoir ton fichier ?
amitiés