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
J'ai un document Excel avec divers onglets.

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

Rechercher des sujets similaires à "fusions multiples onglets"