× Plantage du forum 28/03/2023 - Perte de messages - A lire
 > 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

Publicité
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
SSD WD Black SN770 1 To (PCIe Gen4, NMVe M.2, 5150 Mo/s) à 74,29 € livré
74,29 € 100 € -26% @Amazon Allemagne

Amazon Allemagne fait une promotion sur le SSD WD Black SN770 1 To (NMVe M.2) qui passe à 69,58 €. Comptez 4,71 € pour la livraison en France soit un total de 74,29 € livré alors qu'on le trouve ailleurs à partir de 100 €.

Ce SSD utilise une interface M.2 NVMe PCIe Gen4 pour une connexion simple et des performances exceptionnelles : jusqu’à 5150 Mo/s en lecture séquentielle et jusqu’à 4900 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de cinq ans. Ce SSD est bien sûr compatible PC mais également PS5.


Voir le bon plan
Hub Minix Neo S2 USB C (SSD 240 Go intégré, 2xUSB 3.0, 1xHDMI 4K, 1xUSB C PD ) à 39,99 €
39,99 € 112 € -64% @Geekbuying

GeekBuying fait une belle promotion sur le hub Minix Neo S2 USB C qui passe à 39,99 € avec le code NNNFRSOLDEMINIX au lieu de 112 €. La particularité de ce hub USB C est qu'il intègre un SSD de 240 Go (400 Mo/s) en plus de ports USB 3.0, un port HDMI 4K et un port USB C PowerDelivery pour alimenter directement un ordinateur portable. Il est compatible PC et Mac.


Voir le bon plan
Tournevis de précision (61 pièces, informatique, électronique, téléphone, console) à 14,97 €
14,97 € 29 € -48% @Geekbuying

Geekbuying fait une promotion sur le coffret tournevis de précision (61 pièces) qui passe à 14,97 € au lieu de 29 €. Il contient tous les embouts pour démonter vos appareils électroniques, ordinateurs, téléphones, consoles de jeux, etc. Un arbre flexible est fourni pour atteindre les emplacements difficiles.


Voir le bon plan
Processeur AMD Ryzen 7 5800X à 234,90 €
234,90 € 300 € -22% @Amazon

Amazon fait une promotion sur le processeur AMD Ryzen 7 5800X (8 coeurs, 16 threads, 3.8 GHz/4.7 GHz) qui passe à 234,90 €. On le trouve ailleurs autour de 300 €. 


Voir le bon plan
Station de charge portable Bluetti PowerOak AC50S 500Wh/300W à 329 €
329 € 450 € -27% @Geekbuying

Geebuying fait une belle promotion sur la station de charge portable Bluetti PowerOak AC50S 500Wh/300W à 329 € grâce au code promo 7PM3N6NA. On la trouve ailleurs à partir de 450 €.

Cette Power Station offre une capacité de 500Wh/137700 mAh et deux sortie AC de 300W à onde sinusoïdale pure. Elle peut alimenter des appareils de moins de 300 W, tels que des ordinateurs portables, des drones, des petits congélateurs TV, des petits ventilateurs, etc. En tant que batterie au lithium de secours de 500 Wh, elle fournit suffisamment de jus pour faire fonctionner les appareils essentiels pendant des heures, en fonction de la sortie réelle. Elle possède également 4 ports USB, un ports USB-C PD de 45W et un port de charge sans fil 10W.

Elle intègre aussi une lumière LED intégrée.

La batterie peut être rechargée via l'adaptateur secteur fourni, un panneau solaire ou un adaptateur 12V voiture (fourni).

Très pratique en voyage, camping ou pour parer à des coupures électriques.


Voir le bon plan
Clé USB WiFi N150 Nano TP-Link à 6,99 €
6,99 € 9,95 € -30% @Amazon

Amazon fait une offre éclair sur la clé USB WiFi TP-Link N150 Nano qui passe à 6,99 € alors qu'on la trouve habituellement à partir de 9,95 €. Cette micro clé USB vous permettra d'ajouter le WiFi (jusqu'à 150 Mbit/s) à un ordinateur qui en est dépourvu.


Voir le bon plan

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