> Tous les forums > Forum Bureautique
 copier plage excel 2003 coller dans word + m en pSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
vieuxmonsieur
  Posté le 29/10/2011 @ 12:49 
Aller en bas de la page 
Astucien

bonjour,

une nouvelle fois, j'ai besoin de vos connaissances

je cherche par vba à copier une plage nommee (Liste) d'une feuille excel et la coller dans word (nouveau document) avec Recueil pour nom

puis dans word effectuer la mise en page souhaitée

me faut-il faire 2 macros (une dans excel une dans word) ce que j'aimerai éviter si possible

dans l'attente de vos lumiere je vous remercie et vous souhaite un bon week end



Modifié par vieuxmonsieur le 29/10/2011 13:44
Publicité
gilbert_rgi
 Posté le 29/10/2011 à 15:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour;

voilà un truc comme ça vous irait-il

il faut 3 fichiers doc à un endroit (bien reperer le chemin {#} ) le programme ne fait pas

modifier la macro suivant votre chemin

Sub OuvrirWordAvecExcel1()
Dim AppWord As Object, lesdocuments As Object, ledoc As Object
Dim i As Byte
On Error GoTo piegeerreur
'Essaie de récupérer l'instance de Word
'active au cas où Word serait ouvert
'Si Word n'est pas ouvert, cela génère
'l'erreur numéro 429
'Dans ce cas, c'est le gestionnaire d'erreur "piegeerreur"
'qui prend le relais et qui ouvre Word
Set AppWord = GetObject(, "Word.Application")
AppWord.Visible = True
'ouvrir 3 documents Word
AppWord.documents.Open "C:\Users\........\Documents\Editions.doc"
AppWord.documents.Open "C:\Users\.........\Documents\Editions1.doc"
AppWord.documents.Open "C:\Users\..........\Documents\Editions2.doc"
'Parcourir la collection Documents et écrire un texte différent
'à la fin de chaque document
Set lesdocuments = AppWord.documents
For Each ledoc In lesdocuments

If ledoc.Name = "Editions.doc" Then
'Écrire "C'est le début et C'est fini" dans le document
ledoc.Select
AppWord.Selection.EndKey ' Unit:=wdStory
AppWord.Selection.InsertParagraph
AppWord.Selection.InsertAfter "C'est le début"
AppWord.Selection.EndKey
AppWord.Selection.InsertParagraph
AppWord.Selection.InsertAfter "Fin du texte"
ledoc.Save
ElseIf ledoc.Name = "Editions1.doc" Then
'Écrire "Fin du texte" à la fin du document
ledoc.Select
AppWord.Selection.EndKey 'Unit:=wdStory
AppWord.Selection.InsertParagraph
AppWord.Selection.InsertAfter "Fin du texte"
ledoc.Save
ElseIf ledoc.Name = "Editions2.doc" Then
'Écrire "Bonjour" à la fin du document
ledoc.Select
AppWord.Selection.EndKey 'Unit:=wdStory, Extend:=wdMove
AppWord.Selection.InsertParagraph
AppWord.Selection.InsertAfter "Bonjour"
ledoc.Save
End If
Next
'Fermer les documents
For Each ledoc In lesdocuments
ledoc.Close
Next
'Fermer Word
AppWord.Quit
'Sortie de routine, pour éviter le gestionnaire d'erreurs
Exit Sub
'Gestionnaire d'erreurs
piegeerreur:
Select Case Err.Number
Case 429
'Word n'est pas ouvert
'Ouverture de Word et reprise
'du programme à la ligne suivant
'celle où s'est produit l'erreur
Set AppWord = CreateObject("Word.Application")
Resume Next
Case 5153
'Le fichier "DOC" existe déjà.
'Fin du programme.
'Au lieu de terminer le programme, on pourrait
'mettre à laplace la possibilité de changer le
'nom du fichier, mais là, je n'ai pas le temps
MsgBox "Le fichier existe déjà. Fin du programme et retour à Word "
Case 4120
MsgBox "Erreur mauvais paramétres"
Case 5273
MsgBox "Erreur Nom ou chemin du fichier non valide"

Case Else

MsgBox "Erreur imprévue. Fin du programme et retour à Word" & Err.Number
End
End Select
End Sub

vieuxmonsieur
 Posté le 29/10/2011 à 15:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour Gilbert,

je te remercie une nouvelle fois et je te tiendrai au courant, mais pourquoi : il faut 3 fichiers doc à un endroit

gilbert_rgi
 Posté le 29/10/2011 à 15:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

c'est juste une demo

et dans cette demo il y a 3 fichiers différents dans lesquels on ecrit un texte different aussi

tout simplement

mais on peut faire que pour un seul fichier bien entendu il suffit de modifier ou de placer des remarques



Modifié par gilbert_rgi le 29/10/2011 15:47
vieuxmonsieur
 Posté le 29/10/2011 à 15:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

OK

Merci infiniement Gilbert et bon week-end

vieuxmonsieur
 Posté le 31/10/2011 à 13:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

re,

bonjour à vous,

merci gilbert, mais je bloque ici pour l'instant :

'Ce programme permet de copier des données d'Excel,
'd'ouvrir un document Word et d'y coller les données
Const WordDocName = "Recueil.doc"

Sub ExportExcelVersWord()
Dim MonAppliWord As Word.Application
Dim MonDocWord As Word.Document
'Désactivation de la mise à jour de l'écran
Application.ScreenUpdating = False
'Création d'un nouvel objet Word
Set MonAppliWord = New Word.Application
'Permet d'afficher l'application WOrd
MonAppliWord.Visible = True
'Crée un nouveau document dans Word
Set MonDocWord = MonAppliWord.Documents.Add
'J'affiche la feuille mp3
Sheets("mp3").Visible = True
Sheets("mp3").Activate
'Sélectionne la plage de cellule utilisée dans la feuille active

***ICI***

'Copie la sélection de cellules
Selection.Copy
'Colle les données copiées dans Word
MonAppliWord.Selection.Paste
'Ajuste le tableau copié à la largeur de la page
MonDocWord.Tables(1).AutoFitBehavior wdAutoFitWindow
'Désactive le mode Copier/Coller
Application.CutCopyMode = False
'Pour changer de dossier, mettre avant la ligne :
ChangeFileOpenDirectory "C:\Cantiques\"
'Fermer le document Word en enregistrant les modifications
'''DocWord.Close True
'quitter l'application Word
AppWord.Quit
'Réactivation de la mise à jour de l'écran
Application.ScreenUpdating = True
End Sub

ICI : je desire selectionner les colonnes A et B (A qui contient cette formule : =SI(B3="";"";A2+1) - et la colonne B qui contient un nom - la selection devant se faire par rapport au contenu de la colonne B et selectionner A et B

Je vous remercie



Modifié par vieuxmonsieur le 31/10/2011 16:48
gilbert_rgi
 Posté le 31/10/2011 à 19:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

a la place de Ici il faut mettre le code conditionnel

pour selectionner la plage qui vous interesse

vieuxmonsieur
 Posté le 31/10/2011 à 19:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonsoir gilbert,

heureux de te voir

c'est justement la que je bloque

gilbert_rgi
 Posté le 31/10/2011 à 20:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

he oui je travaille le reste du temps :-))

il faudrait juste mettre un petit exemple de ce que vous desirez

parce que avec cette explication je ne comprends pas grand chose

"ICI : je desire selectionner les colonnes A et B (A qui contient cette formule : =SI(B3="";"";A2+1) - et la colonne B qui contient un nom - la selection devant se faire par rapport au contenu de la colonne B et selectionner A et B"

selectionner les colonnes A et B si B = ????? sinon !!!!!!!

vieuxmonsieur
 Posté le 31/10/2011 à 20:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

http://www.cijoint.fr/cjlink.php?file=cj201110/cij6iTPoDD.xls

bien sur cette zone va augmenter lors des rajouts de titres

pour la numerotation je viens de trouver ca :

Private Sub Num_Change()
Range("a2000").End(xlUp).Row 1
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",R[-1]C+1)"
End Sub



Modifié par vieuxmonsieur le 31/10/2011 20:25
gilbert_rgi
 Posté le 31/10/2011 à 21:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

un truc du genre ?

cliquez ici

vieuxmonsieur
 Posté le 31/10/2011 à 21:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

merci beaucoup gilbert et bonne soiree

gilbert_rgi
 Posté le 31/10/2011 à 21:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

une erreur excusez moi

cliquez là

vieuxmonsieur
 Posté le 01/11/2011 à 08:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

effectivement, merci gilbert d'avoir corrigé c'est ok maintenant.

en te souhaitant une bonne journee

vieuxmonsieur
 Posté le 01/11/2011 à 12:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

gilbert, ton code me numerote a partir de A1 comment le modifier pour commencer a A2

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
nl = Range("b65536").End(xlUp).Row
For i = 1 To nl
Cells(i, 1).NumberFormat = "0000"
Cells(i, 1).Value = i
Next
End Sub

en te remerciant



Modifié par vieuxmonsieur le 01/11/2011 13:47
gilbert_rgi
 Posté le 01/11/2011 à 18:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

For i = 1 To nl
Cells(i, 1).NumberFormat = "0000"
Cells(i, 1).Value = i
Next

ce qui veut dire

faire une boucle qui va de un à nl (nl etant le nombre de lignes)

cells(i,1) signifie cellule (ligne i , colonne 1) donc ( A1) pour la première boucle

alors pour commencer en A2 il faut que la boucle démarre en 2 donc

For i = 2 to nl

voilà ce n'est pas sorcier {#}

vieuxmonsieur
 Posté le 01/11/2011 à 19:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

je te remercie gilbert c'est ok

bonne soiree

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Lot de 6 housses de rangement sous vide Amazon Basics (2xXXL, 2xL, 2xM) à 9,84 €
9,84 € 13,99 € -30%
@Amazon
Chargeur rapide VOLTME 35W GaN 2xUSB C à 12,89 €
12,89 € 17 € -24%
@Amazon
SSD MSI Spatium M450 1 To (NVMe, PCIe 4.0, 3600 Mo/s) à 65,90 €
65,90 € 82 € -20%
@Amazon
Kit de 32 Go (2 x 16 Go) de mémoire DDR5 Corsair Vengeance RGB 6000 MHz CL30 à 114,99 €
114,99 € 142 € -19%
@Amazon
Boîtier PC moyen-tour MSI MAG Forge 120A Airflow (fenêtre acrylique, 6 ventilateurs RGB) à 64,99 €
64,99 € 90 € -28%
@Amazon
Mini PC Ninkear N4 (Ryzen 5 4600H, 16 Go RAM, SSD 512 Go, WiFi 6, Windows 11 Pro) à 234 €
234 € 280 € -16%
@Geekbuying

Sujets relatifs
copier liste word et coller dans Excel
Excel 2007 Copier/Coller d’une feuille à l’autre Dans un même classeur.
Problème copier/coller une page Web dans word.
Coller des données brutes de mise en forme dans Excel/Word
Copier & Coller une image dans Word
Copier coller dans word et wordpad
Copier/Coller une page POWER POINT dans WORD
copier coller Excel dans powerpoint?
copier coller dans Word
Copier-coller une adresse dans Word "enveloppes"
Plus de sujets relatifs à copier plage excel 2003 coller dans word + m en p
 > Tous les forums > Forum Bureautique