VBA - transferer des valeurs de Word vers Excel - VB/VBA/VBS - Programmation
Marsh Posté le 28-06-2007 à 00:02:20
il suffit a mon avis de virer le createobject,
tu fais un
set xlbook = workbook.openfile("tonfichier)
et ca devrait aller.
bon comme il est minuit, le code est peut être approximatif, mais il a le mérite d'apparaitre
Marsh Posté le 29-06-2007 à 16:19:50
Essaye plutôt :
'Partie 2 : Création excel
Set xlApp = CreateObject("Excel.Application" )
xlApp.Workbooks.Open "c:\Mon_Dossier\Mon_Fichier.xls"
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
Marsh Posté le 29-06-2007 à 19:57:03
le fichier "Mon_Fichier.xls" s'ouvre bien mais également un autre fichier excel.
Et les valeurs sont collées dans le mauvais fichier.
Modifié comme cela, ça marche :
Citation : Set xlApp = CreateObject("Excel.Application" ) |
Le problème est que lorsque j'exécute la macro alors que mon fichier Toto.xls est déjà ouvert, un nouveau fichier Toto.xls s'ouvre en lecture seule
J'ai trouvé un code, sur le net, qui apparemment contrôle l'ouverture d'un fichier :
Citation : Sub WB_Open() |
Mais il ouvre le fichier en mémoire est n'est pas visible
Marsh Posté le 30-06-2007 à 23:23:41
J'ai touvé un autre code
Citation : Sub Test2() |
Il fonctionne à merveille intégré dans Excel mais je n'arrive pas à le faire fonctionner dans Word
Il y a certainement plein de variable à rajouter comme CreateObject("Excel.Application" ) mais je ne suis pas assez bon en VBA
Marsh Posté le 30-06-2007 à 23:27:10
ReplyMarsh Posté le 01-07-2007 à 09:05:44
si tu travailles sous word, tu as pensé a ajouté la référence excel hein ?
Marsh Posté le 01-07-2007 à 20:25:42
marche pas non plus.
Peut être parce que le code tourne sous Word pour faire fonctionner Excel ?
Shot at 2007-07-01
Et en modifiant ce code ?
Citation : J'ai touvé un autre code |
Marsh Posté le 02-07-2007 à 10:01:11
Ton problème est bien que ton code est lancé sous Word et qu'il s'agit de VBA orienté Excel.
Il te faut créer une instance objet pour Excel (Set objExcel = New Excel.application) et utiliser cet objet avec toutes tes fonctions Excel.
Set myBook = objExcel.Workbooks.Open (Chemin)
mybook.Visible = True
Marsh Posté le 02-07-2007 à 20:25:48
J'ai essayé, mais j'ai des erreurs ....
Peux tu me modifier le code ?
Marsh Posté le 05-07-2007 à 23:43:22
j'ai modifié le code comme suit :
Citation : Sub Test() |
Mais je n'arrive pas à trouver la solution pour :
1 - Activer le fichier "Toto.xls" si il est déjà ouvert ? Le fichier est ouvert en arrière plan et la suite du programme ne s'exécute pas !
2 - Pour transférer la variable a2 de la macro Word "Test" dans la macro "Macro1" de Excel ?
Pouvez vous m'aider
Marsh Posté le 09-07-2007 à 11:17:56
« Set objClasseur = Workbooks("toto.xls" ) » devrait convenir à ton besoin s'il est déjà ouvert avec Excel.
Marsh Posté le 09-07-2007 à 23:01:29
.... sauf tegu qui est encore là ... merci
J'ai le message d'erreur "Permission refusée"
Je crois bien que ce problème est insoluble !
J'ai parcouru le net et je n'ai rien trouvé sur le sujet.
Tout les exemples de code reprennent la solution :
Set objExcel = CreateObject("Excel.Application" )
Set objClasseur = objExcel.Workbooks.Open(fichier)
objExcel.Application.Visible = True
Marsh Posté le 10-07-2007 à 03:54:40
Dans ton 1er listing de code
Partie 2 et 3 réunies
A adapter
|
Marsh Posté le 10-07-2007 à 22:20:17
Citation : .... |
"C:\Transfert\MonFichier.xls" et "MonFichier.xls" c'est normal des noms de fichier différents ?
Marsh Posté le 11-07-2007 à 08:57:30
ReplyMarsh Posté le 15-07-2007 à 11:46:21
Reply
Marsh Posté le 27-06-2007 à 20:55:34
Bonsoir à tous,
A partir d'un document Word, je souhaites récupérer certaines valeurs d'un tableau pour les transférer automatiquement dans un fichier Excel.
Avec de l'aide sur des forums, j'ai ce code :
Sub Test()
Dim objTable As Table
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim a As String
Dim b As String
Dim c As String
' Partie 1 : Récupérer les valeurs du tableau Word sans les 2 derniers caractères bizarres
Set objTable = ActiveDocument.Tables(1)
a1 = Len(Mid(objTable.Cell(1, 1), 7, 25)) - 2
a2 = Mid(objTable.Cell(1, 1), 7, a1)
b1 = Len(Mid(objTable.Cell(1, 2), 10, 25)) - 2
b2 = Mid(objTable.Cell(1, 2), 10, b1)
c1 = Len(Mid(objTable.Cell(1, 3), 7, 25)) - 2
c2 = Mid(objTable.Cell(1, 3), 7, c1)
'Partie 2 : Création excel
Set xlApp = CreateObject("Excel.Application" )
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
'Partie 3 : coller les valeurs dans les cellules de Excel
xlSheet.Cells(1, 1) = a2
xlSheet.Cells(1, 2) = b2
xlSheet.Cells(1, 3) = c2
xlApp.Visible = True
End Sub
Partie 1 ; pas de problème, je récupère bien mes valeurs
J'ai des problèmes pour modifier la partie 2 et 3
Partie 2 ; ce code ouvre à chaque fois un nouveau fichier Excel.
Je souhaiterais qu'il active simplement mon fichier Excel déjà ouvert "Monfichier.xls"
Partie 3 ; les valeurs sont copiées dans les 3 premières cellules de Excel.
Je souhaiterais avoir la possibilité de choisir l'emplacement où seront copiés les valeurs, via un message du type "sélectionner la cellule de destination"
Pourriez vous m'aider à modifier ce code pour ces deux problèmes
Message édité par didieraucun le 28-06-2007 à 20:00:40