1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

XML exportieren mittels Makro

Discussion in 'Office-Programme' started by jule23, Dec 16, 2006.

Thread Status:
Not open for further replies.
  1. jule23

    jule23 ROM

    Hallo, ich habe folgendes Problem. Ich habe mittels Makro das exportieren von XML Daten aufgezeichnet; was dann ungefähr so aussah:
    Sub XMLexportieren()
    ActiveWorkbook.XmlMaps("input_Zuordnung").Export URL:=_"C:.../.../.../abc.xml"
    End Sub

    Wenn ich dieses Makro nun aber auf einem anderen Rechner ausführen will findet es die Pfade die nach URL stehen gar nicht! Wie kann ich nach dem URL einen algemeingültigen bzw. keinen Pfad eingeben?
     
  2. steffen0815

    steffen0815 Guest

    Hallo,
    ohne zu wissen, von welchem Programm du sprichst (vermutlich excel) frag ich mich
    was du unter allgemeingültigen Pfad verstehst.
    Man muss die Datei ja irgendwohin speichern, entweder du machst vorher eine Nutzerabfrage, oder du speicherst in den gleichen Pfad wie die Exceldatei. Alles andere ist unsicher, da es keinen Pfadnamen gibt, welcher auf allen Rechnern existiert.
     
  3. jule23

    jule23 ROM

    Hallo, sorry das ich das Programm vergessen habe anzugeben, es handelt sich um Excel. ich möchte quasi, dass genau das fenster geöffnet wird wie wenn ich "Normal" auf Daten->XML->Exportieren kommt.
    Wenn ich diese Schritte aufzeichne kann ich die Aufzeichnung nicht bei dem geöffneten Fenster stoppen ich muss immer eine .xml Datei irgendwo auf meiner Platte speichern und dieser Ort wo ich das .xml speicher wird eben mit aufgezeichnet. Aber ich möchte das wenn ich das Makro ausführe es bis zu dem Punkt kommt nach dem ich Datei-> XML->Exportieren ausgewählt habe.
     
  4. steffen0815

    steffen0815 Guest

    Hallo,
    ich vermute mal das man für diese Geschichte EXcel2003 braucht.
    Deshalb kann ich hier nur theoretisch ein Beispiel zeigen, was allerdings komplex ist ;)
    Code:
    Option Explicit
    
    Type BROWSEINFO
         hOwner         As Long
         pidlRoot       As Long
         pszDisplayName As String
         lpszTitle      As String
         ulFlags        As Long
         lpfn           As Long
         lParam         As Long
         iImage         As Long
    End Type
     
    Const BIF_BROWSEFORCOMPUTER = &H1000
    Const BIF_BROWSEFORPRINTER = &H2000
    Const BIF_BROWSEINCLUDEFILES = &H4000
    Const BIF_BROWSEINCLUDEURLS = &H80
    Const BIF_DONTGOBELOWDOMAIN = &H2
    Const BIF_EDITBOX = &H10
    Const BIF_NEWDIALOGSTYLE = &H40
    Const BIF_NONEWFOLDERBUTTON = &H200
    Const BIF_RETURNFSANCESTORS = &H8
    Const BIF_RETURNONLYFSDIRS = &H1
    Const BIF_SHAREABLE = &H8000
    Const BIF_STATUSTEXT = &H4
    Const BIF_UAHINT = &H100
    Const BIF_USENEWUI = &H40
    Const BIF_VALIDATE = &H20
     
    Declare Function GetActiveWindow Lib "user32" () As Long
     
    Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
                    "SHBrowseForFolderA" _
                    (lpBrowseInfo As BROWSEINFO) As Long
     
    Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
                    "SHGetPathFromIDListA" _
                    (ByVal pidl As Long, _
                     ByVal pszPath As String) As Long
     
    Declare Sub CoTaskMemFree Lib "OLE32.dll" (ByVal pv As Long)
     
    Function Ordnerauswahl() As String
     
        Const MAXPATH               As Long = 260
        Dim uBrowseInfo             As BROWSEINFO
        Dim sPath                   As String
        Dim lPidl                   As Long
        uBrowseInfo.hOwner = GetActiveWindow()
        uBrowseInfo.pidlRoot = 0&
        uBrowseInfo.ulFlags = BIF_RETURNONLYFSDIRS
        uBrowseInfo.lpszTitle = "Bitte wählen Sie ein Verzeichnis:"
        lPidl = SHBrowseForFolder(uBrowseInfo)
        sPath = VBA.Space$(MAXPATH)
        If SHGetPathFromIDList(ByVal lPidl, ByVal sPath) Then
            Ordnerauswahl = Left(sPath, InStr(sPath, vbNullChar) - 1)
        End If
        Call CoTaskMemFree(lPidl)
    End Function
     
    Sub subXMLExport()
        Const DatNam = "abc.xml"
        Dim sFolder As String, FullDatNam As String
        ' .....
        
        
        
        
        ' .....
        sFolder = Ordnerauswahl()
        If Len(sFolder) > 0 Then
            FullDatNam = sFolder & "\" & DatNam
            ActiveWorkbook.XmlMaps("input_Zuordnung").Export URL:=FullDatNam
            MsgBox "Datei " & sFolder & DatNam & " erzeugt"
        Else
          MsgBox "Abbruch"
          Exit Sub
        End If
        ' .....
    End Sub
    
     
  5. jule23

    jule23 ROM

    WOW Super, du hast mir echt total weitergeholfen! Vielen Vielen Dank
     
Thread Status:
Not open for further replies.

Share This Page