FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Support FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Support FlexPro
FR
DE
EN
Porte-plaquette
Produits et solutions
Support et téléchargements
Entreprise
Magazine
Contact
Langue
MyWeisang

Paramètres du compte.

Topic

copy data from Flexpro to Excel via VBA ?

Page d'accueil ' Communauté ' Automation et VBA ' copy data from Flexpro to Excel via VBA ?

Voir les messages de 3 - 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #35122
    MAZOYER Thomas
    Participant

    Hello,

    i would like to copy a data from Flexpro to a specific cell on Excel 2007. How can I do ?

    I try this code:

    ActiveDatabase.TaskWindows(fpTaskWindowObjectList).Activate
    ActiveDatabase.Selection.SelectObject “Data”
    ActiveDatabase.Selection.Copy

    but there is nothing in the clipbord and I have the error :
    “Run-time error 1004”.

    I create an object Excel and open it:

    Set oAppExcel = CreateObject(“Excel.Application”)
    sFichier = InputBox(“Sélectionner le fichier Excel à renseigner”, File, “H:macrototo.xlsx”)
    oAppExcel.Workbooks.Open (sFichier)

    but it doesn’t work.

    could someone help me ?

    Thanks,
    ToM

    #35124
    MAZOYER Thomas
    Participant

    Hello,

    i would like to copy a data from Flexpro to a specific cell on Excel 2007. How can I do ?

    I try this code:

    ActiveDatabase.TaskWindows(fpTaskWindowObjectList).Activate
    ActiveDatabase.Selection.SelectObject “Data”
    ActiveDatabase.Selection.Copy

    but there is nothing in the clipbord and I have the error :
    “Run-time error 1004”.

    I create an object Excel and open it:

    Set oAppExcel = CreateObject(“Excel.Application”)
    sFichier = InputBox(“Sélectionner le fichier Excel à renseigner”, File, “H:macrototo.xlsx”)
    oAppExcel.Workbooks.Open (sFichier)

    but it doesn’t work.

    could someone help me ?

    Thanks,
    ToM

    #35123
    Bernhard Kantz
    Participant

    With the lines
    [code]
    ActiveDatabase.TaskWindows(fpTaskWindowObjectList).Activate
    ActiveDatabase.Selection.SelectObject “Data”
    ActiveDatabase.Selection.Copy
    [/code]
    you activate the object list, add the object named “Data” to an existing selection and copy them all as objects. But Excel can’t insert whole FlexPro objects, what leads to an error.

    Using
    [code]
    Set oAppExcel = CreateObject(“Excel.Application”)
    sFichier = InputBox(“Sélectionner le fichier Excel à renseigner”, File, “H:macrototo.xlsx”)
    oAppExcel.Workbooks.Open (sFichier)
    [/code]
    works fine, but one has to set the Visible property of oAppExcel to see something happening.

    One possible solution for writing FlexPro values to Excel cells would be the following: We assume a folder “DataFolder” containing two datasets, one named “Scalar” containing a single value, the other named “Vector” containing 25 values. To write them into some cells of an excisting Excel sheet, one chan use a VBA script like the following:
    [code]
    Option Explicit

    Const sDefaultExcelSheet As String = “C:UsersPublicDocumentsTest.xlsx”

    Sub DataIntoExcel()

    ‘ access data from FlexPro
    Dim oFolder As Folder
    Set oFolder = ActiveDatabase.RootFolder.Object(“DataFolder”, fpObjectTypeFolder)

    Dim vScalar
    vScalar = oFolder.Object(“Scalar”, fpObjectTypeDataSet).Value

    Dim vVector
    vVector = oFolder.Object(“Vector”, fpObjectTypeDataSet).Value

    ‘ open Excel sheet
    Dim oExcel As Excel.Application
    Set oExcel = CreateObject(“Excel.Application”)
    Dim sSheet As String
    sSheet = InputBox(“Excel sheet”, “Choose an Excel sheet”, sDefaultExcelSheet)

    With oExcel
    .Visible = True
    .Workbooks.Open Filename:=sSheet, ReadOnly:=False
    With .Workbooks(1)
    Dim oSheet As Excel.Worksheet
    Set oSheet = .Worksheets(1)

    MsgBox “Transfer data?”

    oSheet.Cells(2, 2).Value = vScalar
    oSheet.Range(“B5:B29”).Value = WorksheetFunction.Transpose(vVector)

    If MsgBox(“Save Excel sheet?”, vbYesNo) = vbYes Then
    .Save
    Else
    .Close SaveChanges:=False
    End If
    End With
    .Quit
    End With
    Set oExcel = Nothing
    End Sub
    [/code]

Voir les messages de 3 - 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.