Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2011, 15h13   #1
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Par défaut Enregistrer sous Automatique Fichier Excel depuis macro Autocad

Bonjour, Bonjour,

Je séche sur un petit truc qui me bloque pas mal.

J'ai une macro autocad qui m'ouvre un fichier excel en lecture seule (pour ne pas enregistrer n'importe comment mon fichier plateforme), me le rempli via une extraction de certaien données.
Notamment le nom en A3 et chemin du fichier en A2.

Je souhaite enregistrer le fichier rempli avec les infos contenu en A3 et A2.

Depuis excel je sais faire c'est :

Sub enregistrement()
Code :
1
2
3
4
5
6
7
8
9
10
 
Dim str As String
Dim dir As String
Dim Name As String
Dim ongletexcel As Worksheet
dir = Cells(1, 2).Value
Name = Cells(2, 3).Value
str = dir & "\" & Name & ".xls"
ActiveWorkbook.SaveAs Filename:=str, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Par contre depuis autocad je séche .... Une idée ?

Voici mon code vba AUTOCAD :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 
 
Sub Extractionptinsertion()
 
Dim applicationexcel As Object ' dimension variable application excel
 
Set applicationexcel = GetObject(, "excel.Application")  ' On récupère l'objet Application
applicationexcel.Visible = True ' on le rend visible
 
monfichier = applicationexcel.ActiveWorkbook.Name 'definition de la variable monfichier = variable application excel, classeur actif + le nom
applicationexcel.Workbooks(monfichier).Activate ' on active le fichier
 
 
Set ongletexcel = applicationexcel.Workbooks(monfichier).Worksheets("Injectionbloclocal") 'on va chercher l'onglet qui nous interresse
 
'Dimension des variables autocad à prendre en compte
Dim Textes As AcadText
Dim Objets As AcadEntity
Dim tt As String
 
 
' action autocad (document actif)
Set Applicationautocad = AutoCAD.Documents.Application.ActiveDocument
 
'On commence à la ligne
Ligne = 5
 
 
ongletexcel.Cells(1, 1).Value = ThisDrawing.Path + "\" + ThisDrawing.Name
ongletexcel.Cells(2, 1).Value = ThisDrawing.Path
ongletexcel.Cells(3, 1).Value = ThisDrawing.Name
 
ongletexcel.Cells(4, 1).Value = "Label"
ongletexcel.Cells(4, 2).Value = "Position X"
ongletexcel.Cells(4, 3).Value = "Position Y"
ongletexcel.Cells(4, 4).Value = "Rotation"
ongletexcel.Cells(4, 5).Value = "Calques"
ongletexcel.Cells(4, 6).Value = "Hauteur du texte"
 
For Each Objets In Applicationautocad.ModelSpace ' pour chaque "varible objets" dans la variable "application autocad" dans l'espace objet
 
 
tt = Objets.ObjectName
If tt = "AcDbText" Then
Set Textes = Objets
 
If Textes.Layer = "CODE_PIECE" Then
 
 
'Set Textes = Textes.TextAlignmentPoint("left")
 
'Textes.Alignment = acAttachmentPointleft
 
ongletexcel.Cells(Ligne, 1).Value = Textes.TextString
ongletexcel.Cells(Ligne, 2).Value = Textes.InsertionPoint(0)
ongletexcel.Cells(Ligne, 3).Value = Textes.InsertionPoint(1)
ongletexcel.Cells(Ligne, 4).Value = Textes.Rotation
ongletexcel.Cells(Ligne, 5).Value = Textes.Layer
ongletexcel.Cells(Ligne, 6).Value = Textes.Height
 
On Error Resume Next
 
Ligne = Ligne + 1
Else
End If
 
Else
End If
Next Objets
 
'On recommence pour les gaines
Set ongletexcel = applicationexcel.Workbooks(monfichier).Worksheets("Injectionblocgaine") 'on va chercher l'onglet qui nous interresse
 
Ligne = 5
 
 
ongletexcel.Cells(1, 1).Value = ThisDrawing.Path + "\" + ThisDrawing.Name
 
ongletexcel.Cells(4, 1).Value = "Label"
ongletexcel.Cells(4, 2).Value = "Position X"
ongletexcel.Cells(4, 3).Value = "Position Y"
ongletexcel.Cells(4, 4).Value = "Rotation"
ongletexcel.Cells(4, 5).Value = "Calques"
ongletexcel.Cells(4, 6).Value = "Hauteur du texte"
 
 
 
For Each Objets In Applicationautocad.ModelSpace ' pour chaque "varible objets" dans la variable "application autocad" dans l'espace objet
 
 
tt = Objets.ObjectName
If tt = "AcDbText" Then
Set Textes = Objets
If Textes.Layer = "02B_gaines_num" Then
 
 
'Set Textes = Textes.TextAlignmentPoint("left")
 
 
ongletexcel.Cells(Ligne, 1).Value = Textes.TextString
ongletexcel.Cells(Ligne, 2).Value = Textes.InsertionPoint(0)
ongletexcel.Cells(Ligne, 3).Value = Textes.InsertionPoint(1)
ongletexcel.Cells(Ligne, 4).Value = Textes.Rotation
ongletexcel.Cells(Ligne, 5).Value = Textes.Layer
ongletexcel.Cells(Ligne, 6).Value = Textes.Height
 
On Error Resume Next
 
Ligne = Ligne + 1
Else
End If
 
Else
End If
Next Objets
 
 
ZoomExtents 'Zoom etendu
ThisDrawing.PurgeAll 'pour purger le dessin en cours
'ThisDrawing.ModelSpace.Regen 'on regen
ThisDrawing.Save 'on sauvegarde
ThisDrawing.Close 'on ferme
 
'fermeture.fermeture 'envois vers le module de fermeture
 
 
MsgBox "Le fichier excel créé est à enregistrer dans le dossier en cours de traitement"
 
End Sub
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 14h24   #2
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Bonjour,

Teste ceci après avoir activé la référence "Microsoft Excel x.x Library" dans l'éditeur VBA d'Autocad

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'################################################################
'# Nécessite d'activer la référence Microsoft Excel x.x Library #
'################################################################
 
Sub test()
Dim Xl As Excel.Application, Wbk As Excel.Workbook, Sh As Excel.Worksheet
 
Set Xl = New Excel.Application
Xl.Visible = True '<-- on pourrait laisser excel invisible
Set Wbk = Xl.Workbooks.Add
Set Sh = Wbk.Worksheets("Feuil1")
 
Sh.Cells(1, 1) = ThisDrawing.Path
Sh.Cells(2, 1) = Split(ThisDrawing.Name, ".")(0) '<-- pour ne prendre que le nom du dessin sans l'extension dwg
 
Wbk.SaveAs Sh.Cells(1, 1) & "\" & Sh.Cells(2, 1) & ".xls"
Wbk.Close
Xl.Quit
 
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 15h55   #3
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Bonjour,

Merci pour le code,

Mais j'avoue ne pas tout comprendre, pourquoi ouvrir un nouvel excel, ainsi qu'un nouvel onglet puisqu'il est dejà ouvert.

Il ne faudrait pas plutôt activer l'excel actif?

Edit :

J'ai incrementé mon fichier de la sorte :
Code :
1
2
3
4
5
6
7
8
9
10
 
applicationexcel.Workbooks(monfichier).Activate
Set ongletexcel = applicationexcel.Workbooks(monfichier).Worksheets("Injectionbloclocal").Select
 
ongletexcel.Cells(1, 1) = ThisDrawing.Path
ongletexcel.Cells(2, 1) = Split(ThisDrawing.Name, ".")(0) '<-- pour ne prendre que le nom du dessin sans l'extension dwg
 
monfichier.SaveAs ongletexcel.Cells(1, 1) & "\" & Sh.Cells(2, 1) & ".xls"
monfichier.Close
applicationexcel.Quit
Mais il me pose la question de savoir si je veux enregistrer ou non et aussi bien avec un fichier en lecture seule ou non......
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h20   #4
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Citation:
Envoyé par Arno_ap Voir le message
Mais j'avoue ne pas tout comprendre, pourquoi ouvrir un nouvel excel, ainsi qu'un nouvel onglet puisqu'il est dejà ouvert.
C'était juste un exemple pour te montrer qu'il était relativement aisé de piloter Excel depuis Autocad à partir du moment où l'on active la référence
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h27   #5
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
A ok effectivement , mais la référence est bel et bien activé.

Mais je bloque vraiment sur l'enregistrement.

On dirait qu'il saute ma ligne Saveas pour aller directement à .quit

Du coup j'ai le message voulez vous enregistrer les modifications etc.

J'en conclu donc que je n'ais pas bien défini la dimension de mon classseur.

Donc j'ai testé plein de chose mais il me manque une variable (ou dimension) quelque part...

Pour info voilà le cheminement de ma suite (pas logique) de vba et script.

Depuis SAS (superautoscript) je lui donne une liste de fichier dwg à gérer avec un script en particulier, ce script appel 2 macro vba (l'une pour l'ouverture d'une plateforme d'echange autocad<=> excel) et la seconde une extraction de données.
Une fois l'extraction finis je souhaite qu'il enregistre ce fichier xls en du nom et du chemin.
Ensuite il enregistre le plan, le ferme.
Et SAS passe au suivant.....

Mais je reste bloquer sur voulez vous enregistrer les modifs
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h50   #6
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Si je comprend bien, tu as un fichier modèle (en lecture seule) que tu ouvres et que tu veux sauvegarder sous un autre nom une fois que les données sont transférées.

Je laisserais Autocad ouvrir le fichier Excel modèle plutôt que de l'ouvrir manuellement et de travailler avec le fichier actif. Un jour ou l'autre le fichier actif ne sera pas celui qu'on croit et ça va coincer.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'################################################################
'# Nécessite d'activer la référence Microsoft Excel x.x Library #
'################################################################
 
Sub test()
Dim Xl As Excel.Application, Wbk As Excel.Workbook, Sh As Excel.Worksheet
Dim NomFich As String
 
NomFich = "D:\Temp\test.xls" '<-- adapter chemin et nom du fichier excel à ouvrir
 
Set Xl = New Excel.Application
Xl.Visible = False '<-- excel reste invisible
Set Wbk = Xl.Workbooks.Open(NomFich)
Set Sh = Wbk.Worksheets("Feuil1") '<-- adapter nom feuille
 
Sh.Cells(1, 1) = ThisDrawing.Path
Sh.Cells(2, 1) = Split(ThisDrawing.Name, ".")(0) '<-- pour ne prendre que le nom du dessin sans l'extension dwg
 
'tes extractions de donnée
'...
'...
'...
 
Wbk.SaveAs Sh.Cells(1, 1) & "\" & Sh.Cells(2, 1) & ".xls"
Wbk.Close
Xl.Quit
 
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 17h06   #7
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Tu veux m'epouser


Ca à l'air de marché au poil !!, et le pire c'est que j'ai déjà un bout de code qui me sert dans un autre module à ouvrir cette fameuse plateforme, et à aucun momen je n'ai pensé passer par ce code la (en appelant mon autre module d'extraction en cours de route)

Merci beaucoup,

Je termine mon script etc, et je fais le test grandeur nature sur une 20aine de plan (on vera lundi comme ca )

Edit : une petite question, il ne me quitte pas le fichier en lecture seule ?

Edit 3 : J'ai trouvé, il suffisait de mettre false aprés .close
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 17h29   #8
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Citation:
Envoyé par Arno_ap Voir le message
Tu veux m'epouser

je ne suis pas un homme facile, je ne couche pas le premier soir...
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 16h15   #9
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Citation:
je ne suis pas un homme facile, je ne couche pas le premier soir...
Ils disent tous ça !

En tout cas cela marche nickel

Mais une autre question me viens,

est il possible de lancer une macro (toujours depuis autocad) contenu dans un fichier excel?

Exemple :

Ton super code ouvre l'xls

Mon super code extrait mes données

La un super code encore inconue lance ma super macro de fusion de donnée contenu dans l'xls.

Ton super code enregistre le fichier

Et hop on passe au suivant?
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 16h39   #10
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
En reprenant mon bout de code, essaie ceci (il s'agit de la dernière ligne de code) :
Code :
1
2
3
4
5
6
7
8
9
10
'...
NomFich = "D:\Temp\test.xls" '<-- adapter chemin et nom du fichier excel à ouvrir
 
Set Xl = New Excel.Application
Xl.Visible = False '<-- excel reste invisible
Set Wbk = Xl.Workbooks.Open(NomFich)
Set Sh = Wbk.Worksheets("Feuil1") '<-- adapter nom feuille
 
Xl.Run "test.xls!LaMacro" '<-- nom du fichier et de la macro à adapter
'...
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 11h45   #11
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Bonjour,

Merci

Je teste dans l'aprés midi
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 16h27   #12
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Par défaut Re

Bonjour,Bonjour,

Dsl, l'après midi a été longue...

Malheureusement cela ne fonctionne pas

"Erreur 1004 - Impossible de trouver la macro 'monfichier.xls!mamacro'



Pour être sur de ne pas me tromper dans l'appel, j'ai nommé mon module et ma macro de la même maniere...
Je lui ai également donnée le chemin complet, le module plus le nom de la macro...

Mais rien n'y fait

Voici les tests que j'ai effectué :
Code :
 Xl.Run "PlateformeVGR.xls!Transfert!"
Code :
 Xl.Run "PlateformeVGR.xls!Transfert"
Code :
Macro = Xl.Run("G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls!Transfert.Transfert")
Code :
Macro = Xl.Run("G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls!Transfert")
Etc, etc....
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 19h33   #13
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Etrange, j'avais fait les test avant et ça fonctionne chez moi.
Ton fichier contenant la macro est bien ouvert avant de faire appel à cette macro ?
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 19h51   #14
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Par défaut :)

Bonsoir,

Oui oui car c'est votre code qui ouvre ce fichier (depuis autocad), et j'ai mis X1.run avec l'enregistrement et la fermeture.

Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 08h54   #15
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Là je ne vois pas ce qui coince. A tout hasard remontre moi ton code
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 13h56   #16
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Bonjour,

Le voici

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
'# Nécessite d'activer la référence Microsoft Excel x.x Library #
'################################################################
 
Sub Traitement()
Dim Xl As Excel.Application, Wbk As Excel.Workbook, Sh As Excel.Worksheet
Dim NomFich As String
Dim appautocad As AcadApplication
 
NomFich = "G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls" '<-- adapter chemin et nom du fichier excel à ouvrir
 
Set Xl = New Excel.Application
Xl.Visible = False '<-- excel reste invisible
Set Wbk = Xl.Workbooks.Open(NomFich)
Set Sh = Wbk.Worksheets("injectionbloclocal") '<-- adapter nom feuille
 
Sh.Cells(2, 1) = ThisDrawing.Path
Sh.Cells(3, 1) = Split(ThisDrawing.Name, ".")(0) '<-- pour ne prendre que le nom du dessin sans l'extension dwg
 '################################################################
 '################################################################
'Lancement macro d'extraction
 
 
Extractiontexte.Extractionptinsertion
 
 
'################################################################
'################################################################
 'Lancement macro d'importation Excel
 
'Macro = Xl.Run("G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls!Transfert!Transfert!")
 
 
 
Wbk.SaveAs Sh.Cells(2, 1) & "\" & Sh.Cells(3, 1) & ".xls"
Wbk.Close False
Xl.Quit
 
 
End Sub
C'est le votre
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 15h35   #17
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
On va essayer de procéder par élimination

Dans ton fichier "PlateformeVGR.xls" insère, dans un module standard, ce petit bout de code
Code :
1
2
3
Sub test()
MsgBox "COUCOU"
End Sub
Désactive la macro d'extraction "Extractiontexte.Extractionptinsertion"

Et teste simplement comme ça
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'# Nécessite d'activer la référence Microsoft Excel x.x Library #
'################################################################
 
Sub Traitement()
Dim Xl As Excel.Application, Wbk As Excel.Workbook, Sh As Excel.Worksheet
Dim NomFich As String
Dim appautocad As AcadApplication
 
NomFich = "G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls" '<-- adapter chemin et nom du fichier excel à ouvrir
 
Set Xl = New Excel.Application
Xl.Visible = False '<-- excel reste invisible
Set Wbk = Xl.Workbooks.Open(NomFich)
Set Sh = Wbk.Worksheets("injectionbloclocal") '<-- adapter nom feuille
 
Sh.Cells(2, 1) = ThisDrawing.Path
Sh.Cells(3, 1) = Split(ThisDrawing.Name, ".")(0) '<-- pour ne prendre que le nom du dessin sans l'extension dwg
 '################################################################
 '################################################################
'Lancement macro d'extraction
 
 
'Extractiontexte.Extractionptinsertion
 
 
'################################################################
'################################################################
 'Lancement macro d'importation Excel
 
Xl.Run "PlateformeVGR.xls!test"
 
 
 
Wbk.SaveAs Sh.Cells(2, 1) & "\" & Sh.Cells(3, 1) & ".xls"
Wbk.Close False
Xl.Quit
 
 
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 10h23   #18
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Bonjour, Bonjour,

Désolé, c'est un peu la course au boulot cette semaine, je teste ceci ce soir chez moi

Bonne journée

Arno
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 11h51   #19
Invité de passage
 
Inscription : février 2011
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 26
Points : 4
Points : 4
Bonjour, Bonjour,

J'ai mis un peu de temps, mais aprés test cela marche

Donc me viens une question bête, le fait que le nom du module, et le nom la macro soit identique n'y serais pas pour qq chose ????
Arno_ap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 13h22   #20
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
En effet, je viens de tester et ça coince si le module porte le même nom que la macro. Je ne connaissais pas cette subtilité.
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h50.


 
 
 
 
Partenaires

Hébergement Web