Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: "Speichern unter" mit Namen aus aus Zelle möglich ?





Frage

Hallo ! Ich möchte das mir Excel das File unter dem namen speichert was ich in die Zelle B2 und C4 eingebe. Ich möchte nicht bei "Speichern unter" den Namen per Hand eingeben, sondern dieses automatisch ausfüllen lassen, oder zB mit [B2+C4] eintragen lassen. Ist das überhaupt möglich ? Danke schon jetzt Christian

Antwort 1 von Samsung61

ich glaube das ist möglich
mfg laz

Antwort 2 von djsquirrel

und WIE

das ist die FRAGE !!!

ce

Antwort 3 von fürLau

Hallo

Nichts leichter als das:

Private Sub CommandButton1_Click()
ActiveWorkbook.SaveAs Range("B2").Value & Range("C4").Value & ".xls"
End Sub


Gruß fürLau

Antwort 4 von djsquirrel

Hallo fürLau !

Danke für Deine Hilfe,
aber dafür bin ich glaube ich ein kleinwenig ein DAU.

WO gebe ich das
Zitat:
(SUB dingsbums)
ein ?

Antwort 5 von woher

Hallo,
schau mal auf
http://www.excelbeispiele.de/
in der Rubrik Anleitungen und dort dann Anleitung zum VBA Projekt “Modul" nach. Dort ist eine bebilderte Anleitung, die Dir dabei behilflich sein sollte.
mfg
woher

Antwort 6 von djsquirrel

WOW !!

Es funkt, vielen DANK.

ABER !!!!!

ich nutze dann dieses Excel File nicht alleine,
da siind noch grössere DAUs damit beschäftigt.

Daher meine nächste Frage:

Gib es eine möglichkeit das ich das Makro einfacher ausführe,
sagen wir mal einer neuen, eigenen Taste/Button für dieses Makro ?

Danke
ce

Antwort 7 von fürLau

Hallo

Ursprünglich hatte ich eine Befehlsschaltfläche dazu benutzt.

Dann halt so:

Sub Speichern_als_B2_C4()
ActiveWorkbook.SaveAs Range("B2").Value & Range("C4").Value & ".xls"
End Sub

Gruß

Antwort 8 von djsquirrel

Ach und kann ich im Makro auch noch den Laufwerkpfad vorgeben, WO gespeichert werden soll ?

Danke
ce

Antwort 9 von djsquirrel

Hallo fürLau,

Ja aber wie bekomme ich den BUTTON rein ?

unter Symbolleisten finde ich nichts mit "Speichern_als..".

Danke schon jetzt.

CE

Antwort 10 von woher

Hallo fürLau,
wie wird die Aüsführung des Makros aus Antwort 7 ausgelöst?

Hallo CE,
klick auf Menue Extras, auf Makros, markiere das Makro und klicke auf Optionen, dort steht:
Tastenkombination
Strg+ __ in das leere Feld gebe eine Ziffer oder Buchstaben ein. Dann wird das Makro immer dann ausgeführt, wenn jemand diese Tastenkombinatin drückt.
Also Vorsicht! Nichts verwenden was jemand für andere Aktionen benutzt!
mfg
woher

Antwort 11 von djsquirrel

Hi !

Das mit der Tastenkombination weiss ich, danke,

ich brauche aber eine TASTE !!!

ce

Antwort 12 von fürLau

Hallo

Button:
Ansicht | Symbolleisten | Steuerelemente Toolbox [þ] anhaken!
Befehlsschaltfläche-Symbol anklicken (es wird dann in den Entwurfsmodus geschaltet, Geodreick mit Bleistift) und im Arbeitsblatt einfügen. Rechtsklick darauf, Code anzeigen wählen. Das Standart-Ereignis der Schaltfläche wird angezeigt:
Private Sub CommandButton1_Click()

End Sub 

in diesen Rump kommt nun der Code - natürlich ohne
Private sub ...und end Sub,
ActiveWorkbook.SaveAs Range("B2").Value & Range("C4").Value & ".xls"
sodas das Ganze aussieht, wie in AW 3.

Gruß fürLau

Antwort 13 von woher

Hi.
das geht nicht und darf auch nicht gehen!
Makros können eine vielzahl von Aktionen ausführen und damit auch eine Menge Unsinn anrichten wenn sie an der verkehrten Stelle ausgeführt werden.
mfg
woher

Antwort 14 von woher

Hallo fürLau,
wir haben wohl gleichzeitig geschrieben.
antwort 13 bezieht sich auf Antwort 11!
Auch von mir: Danke für das Makro!
mfg
woher

Antwort 15 von fürLau

Um auch den Pfad noch mit hinein zupacken, wäre ein Möglichkeit das in Zelle "B2" voranzustellen, oder ein dritte Zelle damit zu belasten zB. "B1"
ActiveWorkbook.SaveAs Range("B1").Value & Range("B2").Value & Range("C4").Value & ".xls" 


Antwort 16 von djsquirrel

Hi fürLau,

ja das dachte ich mir auch,
was ich aber eigentlich wollte:

das ich im Makro sage: WO ich es hinspeichere.

Also Save as..Q:/in/diesen/ordner/soll/es/gespeichert/werden

Geht das ?

DANKE an alle für die Tolle hilfe !

Ce

Antwort 17 von CaroS

Hallo djsquirrel,

ich schlage vor, Du verwendest eine weitere Zelle (B1 oder andere Zelle im Makro entsprechend anpassen), um dort das Laufwerk und den Pfad einzutragen. Das ist recht übersichtlich, Du weißt schon vor Ausführung des Makros, was passieren wird und Du kannst in diese Zelle jederzeit einen passenden Wert (LW:\Pfad) oder eine Formel reinschreiben.

In dieses Makro baue ich noch - so wie Du es "eigentlich wolltest" - eine Abfrage ein, die Dir anbietet, unter dem angegebenen Pfad zu speichern (einfach nur [OK] drücken). Du kannst den Pfad aber auch erst überschreiben und dann auf [OK] drücken, dann wird der neu eingegebene Pfad benutzt und außerdem zum Standardwert für das nächste Datei -- Speichern unter...

Sub speichern_unter()
Dim lw_pfad As String
lw_pfad = ActiveSheet.Range("E22").Value
lw_pfad = InputBox("Geben Sie hier das Laufwerk und den Pfad an, wo die Datei gespeichert werden soll." & Chr(13) & Chr(13) & "(Ihre Eingabe wird in B1 als neuer Default-Wert gespeichert.)", "Datei speichern unter...", lw_pfad)
If lw_pfad = "" Then
  MsgBox "Die Datei wird nicht gespeichert, da Sie [Abbrechen] gedrückt oder nichts eingegeben haben.", , "Abbruch"
  Exit Sub
Else
  If Right(lw_pfad, 1) <> "\" Then lw_pfad = lw_pfad & "\"
  ActiveSheet.Range("E22").Value = lw_pfad
REM MsgBox lw_pfad
ActiveWorkbook.SaveAs lw_pfad & ActiveSheet.Range("B2").Value & ActiveSheet.Range("C4").Value & ".xls"
MsgBox "Die Datei wurde unter " & lw_pfad & ActiveSheet.Range("B2").Value & ActiveSheet.Range("C4").Value & ".xls gespeichert.", , "OK"
End If
End Sub


Gruß,
CaroS

Antwort 18 von djsquirrel

Hi CaroS !

Danke für Deine Hilfe, schaut sehr gut aus,
jedoch funktioniert es nicht.

Hier ein testfile mit Deinem Makro:
http://www.eichhorn.cc/file/save_as_test.xls

Habe ich was falsch reingeschrieben ?

Danke
ce

Antwort 19 von fürLau

Hallo

Ersetze in dem Makro E22 mit B1, dann gehts auch wie gewollt.

Gruß[h3]{[h1]Ó¤[sup...fürLau

Antwort 20 von djsquirrel

Hallo zusammen,

Also irgenwie hat es am schluss nicht hin.

er speichert mich WO ich es ablegen möchte (Laufwerk)
dieses schreibt Excel in B2 jedoch speichert er es dort nicht.

Ich will das er es in C:/ und nach den was in F2 steht abspeichert.

DANKE !

hier der Status Quo:
http://www.eichhorn.cc/file/save_as_test2.xls

CE

Antwort 21 von fürLau

Hallo
.
.
lw_pfad = InputBox("Geben Sie hier das Laufwerk und den Pfad an, wo die Datei gespeichert werden soll." & Chr(13) & Chr(13) & "(Ihre Eingabe wird in B2 als neuer Default-Wert gespeichert.)", "Datei speichern unter...", lw_pfad)
.
.
ActiveWorkbook.SaveAs ActiveSheet.Range("B2").Value & ActiveSheet.Range("F2").Value & ".xls"
MsgBox "Die Datei wurde unter " & ActiveSheet.Range("B2").Value & ActiveSheet.Range("F2").Value & ".xls gespeichert.", , "OK"
.


Abändern wie oben
Gruß

Antwort 22 von fedjo

Hallo Christian ,
versuch es doch mal mit diesem Cote,
er setzt den Dateinamen aus Zelle (B2, C4) zusammen und speicht unter den vorgegebenen Pfad ab.
Gruß
fedjo

Sub Speichern()
Dim strDateiname As String
Dim strAntwort As String


strDateiname = Range("B2").Value & Range("C4").Value & ".XLS"
ActiveWorkbook.SaveAs ("C:\Dokumente und Einstellungen\Admin\Desktop\Video\" & strDateiname) ´Pfad bitte ändern

End Sub

Antwort 23 von CaroS

Hallo djsquirrel,

ich muss mich entschuldigen. Ich hatte in dem angegebenen Code vergessen, die Zelle "E22" in "B1" zu ändern, wobei ich B1 auch nur als Vorschlag aus AW15 übernommen habe. Man weiß ja nie so genau, wo in einer fremden Tabelle noch was frei ist. Deshalb sind die angegebenen Codes immer nur als Beispiele oder Vorschläge zu betrachten, die der Anwender (Du!) dann noch entsprechend anpassen muss.

Aber dieser Fehler ist mir unabsichtlich passiert, weil ich in meiner Testtabelle auf eine andere Testzelle (E22 statt B1) ausweichen musste (- da war schon alles voll) und dann selber vergessen habe, es anzupassen.

Ich stelle Dir die geänderte Datei hier zum Download bereit:
http://www.netupload.de/detail.php?img=d9570a88c71a8e50bf2339bf858f...
Die roten Kommentare kannst Du natürlich löschen.

Um die Datei erfolgreich speichern zu können, muss entweder in der Zelle B2 oder in der Zelle C4 (oder in beiden) ein Teil des Dateinamens stehen (eingegeben oder berechnet werden). B2 und C4 hattest Du selbst vorgegeben, das habe ich so übernommen.
Dann kannst Du das Makro mit Strg+t oder über das Menü Extras -- Makro - Makros... -- speichern_unter -- Ausführen starten.

Ja, wie gesagt, gewöhnlich teste ich einen Code, bevor ich ihn poste, aber ein kleiner Fehler schleicht sich immer wieder mal ein. Der ist hiermit behoben.

Für Dich heißt das aber auch: Du musst für Laufwerk:\Pfad nicht unbeingt die Zelle B1 verwenden, sondern kannst das nach Deinen Vorstellungen anpassen. Du musst im VBA-Code nur in der 3. 4. und 10. Zeile "B1" in Deine gewünschte Zelle ändern:

(3) lw_pfad = ActiveSheet.Range("B1").Value
(4) lw_pfad = InputBox("Geben Sie hier das Laufwerk und den Pfad an, wo die Datei gespeichert werden soll." & Chr(13) & Chr(13) & "(Ihre Eingabe wird in B1 als neuer Default-Wert gespeichert.)", "Datei speichern unter...", lw_pfad)
(10) ActiveSheet.Range("B1").Value = lw_pfad

Gruß,
CaroS