Jump to content

Exporter tableau de CATIA vers EXCEL d'un fichier draw


Recommended Posts

Bonjour a tous,

 

Je souhaiterai pourvoir exporter un tableau depuis une draw sur un fichier excel nommer P3 et ranger dans "C/temp/p3":

le code que j'utilise est le suivant :

Mon soucis est lorsqu'il ouvre le fichier excel il les ranges automatiquement dans la 1erfeuill du claseur ouvert

Ce que je souhaiterai c'est pouvoir le ranger sur une autre feuille exemple feuil2 ou feuil3 du claseur excel

la ligne qui me pose peut etre soucis est celle ci

(myexcel.ActiveSheet.Cells(i, j) = DrwTbl.GetCellString(i, j))

 

j'ai essayer plusieurs facon de tourner le Sheet mais sans succèes

 

le deuxieme soucis c'est qu'avce ce code je ne peut que seletionner une tableau

y at-il une facon de selectioner plusieurs tableau a la fois et de les exporter sur le fichier excel dit

 

 

Sub catmain()

 

Set odrawing = CATIA.ActiveDocument

Set osel = odrawing.Selection

Dim inpsel(0)

inpsel(0) = "DrawingTable"

 

osel.Clear

st = osel.SelectElement2(inpsel, "Selectionnez un tableau",False)

Set DrwTbl = osel.Item(1).Value

 

 

Set myexcel = CreateObject("Excel.application" )

Set myexcel = GetObject(, "Excel.Application")

 

 

 

If Err.Number <> 0 Then ExcelWasNotRunning = True

 

Err.Clear

 

Set myexcel = GetObject("C:\Temp\P3.xls")

 

myexcel.Application.Visible = True

 

myexcel.Parent.Windows(1).Visible = True

 

 

 

For i = 1 To DrwTbl.NumberOfRows

For j = 1 To DrwTbl.NumberOfColumns

myexcel.ActiveSheet.Cells(i, j) = DrwTbl.GetCellString(i, j)

Next

Next

 

End Sub

 

Merci d'avance pour votre aide

Link to post
Share on other sites

 

 

 

Bonjour

 

 

Tu devrais essayer ceci, j'ai un peu la même macro et ca marche

 

' Tu ajoutes une sheet
myexcel.Sheets.Add


'Ensuite tu peux la renommer
Excel_Renommer_sheet("Tableau" & i)

 

 

Avec le sub ci dessous

 

 




Public Sub Excel_Renommer_sheet(Nom_sheet As String)




With Excel_Application
.ActiveWorkbook.ActiveSheet.Name = Nom_sheet
End 
With
Set MaFeuille = Excel_Application.ActiveWorkbook.Sheets(Nom_sheet)




End Sub


 

 

Voila, dis moi si ca répond a ton probleme.

 

 

Pour ton deuxieme point, il faut en fait que tu passe en revue toutes les vues de ton draw, puis pour chaque vue tu regardes si des tableaux son présent et pour chaque tableau présent tu ajoutes une sheet excel et tu exporte le tableau.

 

 

 

@+

 

 

 

 

 

Connaître son ignorance est la meilleure part de la connaissance !http://mooneck.pagesperso-orange.fr/confucius_mini.gif

Link to post
Share on other sites

Bonjour mooneck,

 

j'ai essayer ce que tu ma dit en disposant les elements de cette facon dans la macro :

 

Sub catmain()

 

Set odrawing = CATIA.ActiveDocument

Set osel = odrawing.Selection

Dim inpsel(0)

inpsel(0) = "DrawingTable"

osel.Clear

st = osel.SelectElement2(inpsel, "Selectionnez un tableau",False)

Set DrwTbl = osel.Item(1).Value

Set myexcel = CreateObject("Excel.application" )

Set myexcel = GetObject(, "Excel.Application")

 

If Err.Number <> 0 Then ExcelWasNotRunning = True

Err.Clear

Set myexcel = GetObject("C:\Temp\P3.xls")

myexcel.Application.Visible = True

myexcel.Parent.Windows(1).Visible = True

For i = 1 To DrwTbl.NumberOfRows

For j = 1 To DrwTbl.NumberOfColumns

 

For i = 1 To DrwTbl.NumberOfRows

For j = 1 To DrwTbl.NumberOfColumns

myexcel.ActiveSheet.Cells(i, j) = DrwTbl.GetCellString(i, j)

Next

Next

 

myexcel.Sheets.Add

Excel_Renommer_sheet("Feuil3" & i)

 

Next

Next

 

End Sub

 

 

mais sa ne marche pas il me creer une autre feuille excel vide

Pour le sub il m'indique en rouge le with surligne:

je l'ai placer dans le ThisWorkbook fichier excel

 

Public Sub Excel_Renommer_sheet(Nom_sheet As String)

 

With Excel_Application

.ActiveWorkbook.ActiveSheet.Name = Nom_sheet

End

With

Set MaFeuille = Excel_Application.ActiveWorkbook.Sheets(Nom_sheet)

 

 

End Sub

 

 

le Sub je le met ou dans le ThisWorkbook du fichier excel P3 ou de la feuille 3 ?

 

 

Merci @+

.

Link to post
Share on other sites

Bonjour,

 

 

En fait, il te manque quelques déclaration

 

Voici celle que j'ai concernant excel :

Option Explicit
Public Excel_Application As Excel.Application
Public MonClasseur As 
Excel.Workbook
Public MaFeuille As Excel.Worksheet
'

 

Il faut que tu adapte ces déclaratifs avec les noms de variables que tu as utilisé.

Ou que tu remplaces dans la sub : With Excel_Application par With myexcel

 

Ensuite, j'ai créé un module Pilotage_Excel dans lequel j'ai placé toutes les sub et function liées au manipulation d'excel et que tu peux appeler depuis les autres module et en l'occurence depuis la sub Catmain. Il ne faut pas oublié de déclarer les sub et function en public pour cela !

 

Bon courage

 

 

 

 

 

 

Connaître son ignorance est la meilleure part de la connaissance !http://mooneck.pagesperso-orange.fr/confucius_mini.gif

Link to post
Share on other sites

Bonjour,

 

 

En fait, il te manque quelques déclaration

 

Voici celle que j'ai concernant excel :

Option Explicit
Public Excel_Application As Excel.Application
Public MonClasseur As 
Excel.Workbook
Public MaFeuille As Excel.Worksheet
'

 

Il faut que tu adapte ces déclaratifs avec les noms de variables que tu as utilisé.

Ou que tu remplaces dans la sub : With Excel_Application par With myexcel

 

Ensuite, j'ai créé un module Pilotage_Excel dans lequel j'ai placé toutes les sub et function liées au manipulation d'excel et que tu peux appeler depuis les autres module et en l'occurence depuis la sub Catmain. Il ne faut pas oublié de déclarer les sub et function en public pour cela !

 

Bon courage

 

Merci pour ton aide quand meme

j'y suis pas arriver

mais bon jvais perceveré

Link to post
Share on other sites
  • 4 weeks later...
  • 1 year later...

SAlut mooneck

 

sa va tu m'avais refiler une macro catvba ya quelque mois de sa

mais elle a un mot de passe que je ne retrouve plus

 

est ce qu'il serait possible de me renvoyer le mot de passe pour voir le code vba que tu as utiliser

 

merci d'avance

mon adresse mail a changer

c'est scud745@gmail.com

Link to post
Share on other sites

SAlut mooneck

 

sa va tu m'avais refiler une macro catvba ya quelque mois de sa

mais elle a un mot de passe que je ne retrouve plus

 

est ce qu'il serait possible de me renvoyer le mot de passe pour voir le code vba que tu as utiliser

 

merci d'avance

mon adresse mail a changer

c'est scud745@gmail.com

 

Bonjour Colti

J'ai retrouvé l'courriel que j'avais envoyé en 2012

Je te le re transfere

 

bon courage

Connaître son ignorance est la meilleure part de la connaissance !http://mooneck.pagesperso-orange.fr/confucius_mini.gif

Link to post
Share on other sites
  • 7 years later...
On 01/03/2012 at 23:02, mooneck said:

Bonjour,

 

 

En fait, il te manque quelques déclaration

 

Voici celle que j'ai concernant excel :

 


Option Explicit
Public Excel_Application As Excel.Application
Public MonClasseur As 
Excel.Workbook
Public MaFeuille As Excel.Worksheet
'
 

 

 

Il faut que tu adapte ces déclaratifs avec les noms de variables que tu as utilisé.

Ou que tu remplaces dans la sub : With Excel_Application par With myexcel

 

Ensuite, j'ai créé un module Pilotage_Excel dans lequel j'ai placé toutes les sub et function liées au manipulation d'excel [url=https://www.picard-demenagement.fr/]déménagement Marseille[/url] et que tu peux appeler depuis les autres module et en l'occurence depuis la sub Catmain. Il ne faut pas oublié de déclarer les sub et function en public pour cela !

 

Bon courage

 

 

 

 

 

 

C'est vraiment sympa de nous avoir apporté toutes ces informations, mais j'ai peur d'oublier certains codes.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...