> 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 !!!!!!!

Publicité
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 poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
12,90 €Windows 10 Pro 32/64 bits OEM à 12,90 €
Valable jusqu'au 26 Février

Le vendeur sérieux DIGITAL FR propose sur Amazon  la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 1Z,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
42,99 €Trackball sans fil Logitech M570 à 42,99 €
Valable jusqu'au 20 Février

Amazon fait une promotion sur le trackball sans fil Logitech M570 qui passe à 42,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 60 €. Si vous avez du mal à vous servir d'une souris et souhaitez plus de confort et de précision, ce trackball est fait pour vous. La connexion sans fil passe par un récepteur USB Unifying fourni, offre 10 mètres de portée. La pile AA offre 18 mois d'autonomie (elle est bien sûr remplaçable).


> Voir l'offre
137,70 €Disque dur externe USB 3.0 Seagate 8 To à 137,70 € livré
Valable jusqu'au 20 Février

Amazon Allemagne propose actuellement le disque dur Seagate Expansion Desktop Drive 8 To à 131,09 € (avec la TVA ajustée). Comptez 6,61 € pour la livraison en France soit un total de 137,70 € livré alors qu'on le trouve ailleurs à partir de 200 €. Le disque est non soudé et vous pourez le récupérer pour l'utiliser dans un ordinateur, un NAS, etc. Connexion USB 3.0.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douanes. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre

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