Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Rolf Grob am Dezember 27, 2013, 16:49:22 Nachmittag

Titel: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: Rolf Grob am Dezember 27, 2013, 16:49:22 Nachmittag
Hallo Zusammen,
Ich bin seit längerem an dem Problem dynamischer Dateipfade, nun habe ich eine Lösung erhalten für das laden von Bildern.
Leider verstehe ich nicht allzuviel von VBA Codes :-\

Workbook.Open (ThisWorkbook.Path & "\" & "Buchhaltung RG.xlsm")

        CommandButton1.Picture = LoadPicture(ThisWorkbook.Path & "\" & "Schaltflächen\AbbrechenV.jpg")

 ,dies hat auch funktioniert. ;D

Nun meine Frage: :o

Ich möchte gerne aus der Arbeitsmappe Diagramme als jpg Exportieren, und habe es mit der selben Lösung ausprobiert, aber ich erhalte immer
Fehlermeldungen, weshalb?
Und, kann mir da jemand Weiterhelfen.

Ich habe es so gemacht:
____________________________________________________________

Sub Schliessen()
Workbook.Close (ThisWorkbook.Path & "\" & "Buchhaltung RG.xlsm")
End Sub
__________________________________________________________

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Diag As Chart

    Set Diag = Tabelle2.ChartObjects(1).Chart
          Diag.Export Filename:="(ThisWorkbook.Path & "\" & "Diagramme\Balkendiagramm01.jpg")", FilterName:="JPG"
       
End Sub
_________________________________________________________________________________________________

Egal mit oder ohne Klammer beim Pfad, es gibt immer Fehlermeldungen die ich nicht verstehe. >:(

Beim Importieren von den Diagrammen funktioniert es doch !

Es währe sehr nett wenn mir jemand helfen könnte ;D

Lg Rolli

rolf_grob@bluewin.ch
Titel: Antw: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: maninweb am Dezember 27, 2013, 17:56:48 Nachmittag
Hallo Rolf,

der Code zum Exportieren der Grafik kann auch in der Prozedur zum Schließen abgelegt werden. Somit nicht notwendig, dies im Ereignis
Before_Close zu implementieren. Insofern kannst Du für Dein Vorhaben das Ereignis entfernen.
Code: Visual Basic
  1. Sub Schliessen()
  2.  
  3.   Dim Diag As Chart
  4.  
  5.   Set Diag = Tabelle2.ChartObjects(1).Chart
  6.  
  7.   Diag.Export Filename:=ThisWorkbook.Path & "\" & "Diagramme\Balkendiagramm01.jpg", FilterName:="JPG"
  8.  
  9.   ThisWorkbook.Close
  10.  
  11. End Sub
Du hast die Fehlermeldungen erhalten, weil dieser nicht zulässige Variablennamen, fehlerhafte Argumente und eine Mischung aus
statischen Texten und Variablen enthalten ist.

So erwartet die Prozedur Close an erster Stelle eine Angabe, ob gespeichert werden soll oder nicht. Diese Angabe ist ein Boolean,
der die Werte False oder True einnehmen kann. Ein Text, den Du übergeben hast, geht dann nicht. Falls Du vor hattest, die Mappe
unter einem anderen Namen zu speichern, musst Du das zweite Argument verwenden. Tipp: den Cursor auf Close setzen und F1
drücken, in Excel 2010 geht direkt die passende VBA-Hilfeseite auf, die die Argumente erläutert.

Workbook kannst Du zudem nicht als Variablenname verwenden, denn Workbook ist durch Excel als Objekt reserviert. Somit ginge
ThisWorkbook.Close oder Workbooks("DeineMappe.xlsm).Close. Variablen sollten deklariert werden (das Dim am Anfang). Das macht
es Excel bei der Interpretation etwas leichter.

Beim Argument Filename:= hattest Du einen statischen Text mit einer variablen Angabe vermischt. Für statische Texte kannst Du die
Anführungszeichen verwenden; bzw. sobald diese vorhanden sind, ist der Text innerhalb der " statisch, also keine Variable mehr.

Gruß
Titel: Antw: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: Rolf Grob am Dezember 27, 2013, 19:39:07 Nachmittag
Hallo Mainweb,
Zuerst einmal Danke für deine letzte Hilfe sie hat funktioniert.

Leider Exportiert mir mein VBA die Datei nicht wenn ich deinen Code verwende, ABER....

Ich habe herausgefunden dass der Code den ich zuerst hatte eigentlich funktioniert, leider jedoch nicht auf meine Art.
Wenn ich den Code,

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Diag As Chart
    Set Diag = Tabelle2.ChartObjects(1).Chart
          Diag.Export Filename:=ThisWorkbook.Path & "\" & "Diagramme\Balkendiagramm01.jpg", FilterName:="JPG"
       
End Sub

verwende, und die Arbeitsmappe NORMAL schliesse, funktioniert es.
Wenn ich die Arbeitsmappe aber über einen CommandButton in der Userform schliesse GEHT ES NICHT !!!!!!!

Weshalb das ????????????

Der Code zum Schliessen ist in der UserForm lautet:

Private Sub CommandButton1_Click()

ActiveWorkbook.Save
Application.Quit

End Sub

Danke für weitere Hilfe

Rolf
Titel: Antw: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: mumpel am Dezember 27, 2013, 21:20:08 Nachmittag
Hallo!
 
Die Userform befindet sich in der zu schließenden Datei? Schließe erst die Userform bevor Du die Datei schließt. Und "Application.Quit" beendet Excel komplett. Die Userform wird mit Unload Me geschlossen/beendet.
 
Gruß, René
Titel: Antw: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: Rolf Grob am Dezember 27, 2013, 21:55:55 Nachmittag
Hallo Rene,

Ich möchte die Arbeitsmappe zusammen mit der UserForm schliessen, dass ist Absicht.
Jedoch weiss ich nicht wo der Unterschied zwischen dem normalen schliessen der Arbeitsmappe und dem schliessen duch den Befehl in der UserForm liegt.

Weshalb funktioniert der Export beim einen Schliessen, und beim anderen nicht ?

Rolf
Titel: Antw: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: mumpel am Dezember 27, 2013, 22:06:45 Nachmittag
[...] Weshalb funktioniert der Export beim einen Schliessen, und beim anderen nicht [...]
Weil Du Excel beendest und nicht die Userform.
 
Für die Userform:
 
Code: Visual Basic
  1. Private Sub CommandButton1_Click()
  2. Unload Me
  3. Application.CommandBars.ExecuteMso "FileClose"
  4. End Sub

Für das Schließen der Arbeitsmappe:
 
Code: Visual Basic
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2. ThisWorkbook.Save
  3. Dim Diag As Chart
  4.     Set Diag = Tabelle2.ChartObjects(1).Chart
  5.         Diag.Export Filename:=ThisWorkbook.Path & "\" & "Diagramme\Balkendiagramm01.jpg", FilterName:="JPG"
  6.        
  7. End Sub
  8.  
Titel: Office 2007: Antw: Office 2007: Dynamischer Pfad für Daten Export
Beitrag von: Rolf Grob am Dezember 28, 2013, 01:03:56 Vormittag
Hallo Meinweb, Rene, Mumpel,

Herzlichen Dank für eure Hilfe.

1. Habe ich wieder einiges über VBA Codes gelehrnt   :D

2. Hat nun alles super geklappt.

und 3. sind nun meine Feiertage gerettet  ;D ;D ;D

Ich wünsche euch und allen anderen einen guten Start ins neue Jahr.

Gruss Rolf