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

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Stevensplash am Juli 05, 2015, 17:27:44 Nachmittag

Titel: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: Stevensplash am Juli 05, 2015, 17:27:44 Nachmittag
Hallo zusammen, ich habe schon google gefragt doch finde nichts was zu meiner Sache passt.

Ich würde gerne ein Steuerelemnt auf einem Blatt einfügen auf dem steht "Speichern unter"
Klickt mann da drauf soll sich das Speichern unter Fenster öffnen und der Dateiname soll sich aus 2 bestimmten Zeilen (B3 und B4) zusmmen setzen.

ich finde einfach keine Lösung
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: gmg-cc am Juli 05, 2015, 17:58:53 Nachmittag
Moin,

nun ja, dazu gibt es mehr als reichlich Fundstellen bei Mr. Goo  ::). Aber zugegeben, die Frage ist schwer Goo-gerecht zu formulieren. - Da ein Forum prinzipiell Hilfe zur Selbsthilfe sein soll: Erstelle erst einmal eine Muster-Datei mit einem Button und stelle diese hier als *.xls* zur Verfügung. Dann ist es für uns (normalerweise) auch kein riesiger Aufwand, den Rest zu machen.
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: Stevensplash am Juli 05, 2015, 20:45:41 Nachmittag
Da ist Sie.
Das Makro ist schon drin. bekomme es aber nicht mit dem Button verknüpft und der Dateiname passt auch nicht
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: gmg-cc am Juli 07, 2015, 11:22:36 Vormittag
Moin,

also: Im Entwurfs-Modus (Entwicklertools) ein Doppelklick auf die Schaltfläche und es wird automatisch der Rumpf der passenden Prozedur erstellt. Dort verschiebst du dann den Inhalt des bisherigen Makros hinein.

In Sachen Dateinamen habe ich deinen Code etwas auskommentiert und durch dein Ziel ersetzt.

Sub Speichern_unter_aufrufen()
   'Inhalte verschoben
End Sub

Private Sub CommandButton1_Click()
   Dim Dateiname As String
   
   'Dateiname aus 2 Zellen basteln
   Dateiname = Cells(3, 2) & Format(Cells(4, 2), "_YYYY-MM-DD")
   'Dateiname basteln - Jahr Monat Tag
   'Dateiname = Format(Date, "yyyy-mm-dd")
   
   'Dialog "Speichern unter" aufrufen und Dateinamen vorgeben
   Application.Dialogs(xlDialogSaveAs).Show Dateiname
End Sub
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: Stevensplash am Juli 07, 2015, 18:37:28 Nachmittag
Hallo Günther,
vielen Dank dafür.
Das hat soweit alles geklappt. Doch wenn ich jetzt auf den Button drücke steht nur das Datum. In der Muster.xls geht alles. Aber bezogen auf meine eigentliche Tabelle geht es nicht.

In meiner eigentlichen Tabelle sollen B4 (Datum) und B5 (Produkt) vorgegeben sein.
Ich habe da Datum schon nach vorne Verschoben.
Bei den zahlen dachte ich erst das ist der Bezug zu den Zellen z.B.

Format(Cells(4, 2)

4 Zeilen nach unten und 2 nach rechts. Aber das hat auch nicht geklappt diese zu ändern

Sub Speichern_unter_aufrufen()
   'Inhalte verschoben
End Sub

Private Sub CommandButton1_Click()
   Dim Dateiname As String
   
   'Dateiname aus 2 Zellen basteln
   Dateiname = Format(Cells(4, 2), "YYYY-MM-DD_") & Cells(3, 2)
   'Dateiname basteln - Jahr Monat Tag
   'Dateiname = Format(Date, "yyyy-mm-dd")
   
   'Dialog "Speichern unter" aufrufen und Dateinamen vorgeben
   Application.Dialogs(xlDialogSaveAs).Show Dateiname
End Sub

Ist das mit dem nach vorne setzen des Datums denn so korrekt?
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: Stevensplash am Juli 07, 2015, 18:58:33 Nachmittag
Habe gerade mal ein bisschen rumgespielt. Es hat doch was damit zu tun. Keine Ahnung warum er mir da vorher nichts angezeigt hat. Jetzt habe ich alles so wie ich es brauche.

um was muss ich ergänzen wenn ich einen bestimmten Pfad angeben möchte?Sub Speichern_unter_aufrufen()
   'Inhalte verschoben
End Sub

Private Sub CommandButton1_Click()
   Dim Dateiname As String
   
   'Dateiname aus 2 Zellen basteln
   Dateiname = Format(Cells(4, 2), "YYYY-MM-DD_") & "Gagenverteilung_" & Cells(5, 2)
   'Dateiname basteln - Jahr Monat Tag
   'Dateiname = Format(Date, "yyyy-mm-dd")
   
   'Dialog "Speichern unter" aufrufen und Dateinamen vorgeben
   Application.Dialogs(xlDialogSaveAs).Show Dateiname
End Sub

Das ist der jetzige Code
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: maninweb am Juli 08, 2015, 08:05:01 Vormittag
Hallo,

versuche es mal so...

Code: Visual Basic
  1. Private Sub CommandButton1_Click()
  2.    Dim Dateiname As String
  3.    Dim Pfad As String
  4.  
  5.   'Dateiname aus 2 Zellen basteln
  6.   Dateiname = Format(Cells(4, 2), "YYYY-MM-DD_") & "Gagenverteilung_" & Cells(5, 2)
  7.   'Dateiname basteln - Jahr Monat Tag
  8.  'Dateiname = Format(Date, "yyyy-mm-dd")
  9.  
  10.    Pfad = "C:\Hallo Welt\"
  11.   'Dialog "Speichern unter" aufrufen und Dateinamen vorgeben
  12.   Application.Dialogs(xlDialogSaveAs).Show Pfad & Dateiname
  13. End Sub

Gruß
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: Stevensplash am Juli 08, 2015, 13:26:40 Nachmittag
Nee er gibt den Pfad nicht vor.
Titel: Antw: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: gmg-cc am Juli 09, 2015, 01:13:41 Vormittag
Nee er gibt den Pfad nicht vor.
... weil es den Pfad nicht gibt!

Private Sub CommandButton1_Click()
   Dim Dateiname As String
   Dim Pfad As String
 
  'Dateiname aus 2 Zellen basteln
   Dateiname = Format(Cells(4, 2), "YYYY-MM-DD_") & "Gagenverteilung_" & Cells(5, 2)
   
   Pfad = "C:\Hallo Welt\"
  'Dialog "Speichern unter" aufrufen und Dateinamen vorgeben
   If Dir(Pfad) = "" Then MkDir (Pfad)
   Application.Dialogs(xlDialogSaveAs).Show Pfad & Dateiname
End Sub
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: Stevensplash am Juli 09, 2015, 12:27:57 Nachmittag
Das weiß ich  ;D hatte dort auch einen anderen eingegeben. Mehrere sogar. Es passierte trotzdem nichts
Titel: Antw: Speichern unter VBA mit Bezug auf eine Zeile und Button
Beitrag von: gmg-cc am Juli 09, 2015, 12:37:32 Nachmittag
Dann weiß ich auch nicht weiter ...
Bei mir läuft es jedenfalls so.