Excel-Makro zum Speichern eines Arbeitsblattes

  • #1
G

goeddrbo

Neues Mitglied
Themenersteller
Dabei seit
07.03.2005
Beiträge
2
Reaktionspunkte
0
Als Neuling erstmal ein Hallo! an alle und vorab Danke, falls jemand einen Tip hat.

Folgendes Problem:

Ich habe eine Excel-Mappe mit mehreren Arbeitsblättern, deren Daten über Verknüpfungen auf ein bestimmtes Datenblatt übertragen werden. Dieses Datenblatt möchte ich gern über einen Button/Hyperlink/sonstwas und ein Makro als ein Tab-delimited Text-File abspeichern, allerdings nicht mit der Endung .txt, sondern .psd. Zudem wäre es praktisch, wenn der Dateiname von einer bestimmten Zelle ausgelesen würde.

Habe mich jetzt 2h todgegoogelt und bin kein Stück weiter. Ideen?`

THX!
 
  • #2
Hallo.

Der Code dafür könnte ungefähr so aussehen:
Code:
Dim i As Integer
Dim strDateiname As String

Sheets(1).Select
strDateiname = Range(a1).Value
For i = 1 To ActiveWorkbook.Sheets.Count
  Sheets(i).Select
  ActiveWorkbook.SaveAs Filename:=c:\ & strDateiname & CInt(i) & .psd, FileFormat:=xlText, _
    CreateBackup:=False
  
Next i

In A1 (tabelle1) steht der Dateiname ohne endung (wird automatisch als psd abgespeichert). Allerdings bekommst Du für jede Tabelle eine Textdatei (mit Zähler im Dateinamen) ausgespuckt. Diese kann man sich ja mit einfachen Mitteln wieder zusammenflicken. Wie hiess unter DOS gleich der Befehl um Textdateien zu verbinden?


Edit: Hab mich wohl ein bisschen verlesen was Dein Problem angeht. Mit Datenblatt meist Du Tabelle? Und nur eine Tabelle speichern? In dem Fall :
Code:
Dim strDateiname As String

Sheets(Tabellenname).Select
strDateiname = Range(a1).Value
ActiveWorkbook.SaveAs Filename:=c:\ & strDateiname & CInt(i) & .psd, FileFormat:=xlText, _
    CreateBackup:=False
 
  • #3
Many, many THX!

Letzteres war, was ich suchte, danke!

Jetzt bleibt nurmehr ein Problem: mehrmaliges abspeichern funktioniert nicht, da der Name der Tabelle beim Speichern geändert wird und dann die Variable (hier: Tabellenname) nicht mehr stimmt. Wie könnte man den Namen zurücksetzen (rename)?
 
  • #4
Schnell hingeklatscht würde es so aussehen können:

Code:
 ->Vor dem speichern
  Dim strName As String
  strOldName = Sheets(Tabellenname).Name
  
 ->nach dem speichern
  Sheets(strDateiname).Name = strOldName
 
Thema:

Excel-Makro zum Speichern eines Arbeitsblattes

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.966
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben