Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
180to184
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
180to184
180to184
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern unter und Registernamen

Speichern unter und Registernamen
20.11.2002 10:00:37
Rudi Fleischhauer
die Tabelle hat ein Feld mit Namen: ORDER
dort steht eine Buchstabenkombination unter der die Datei gespeichter werden soll. Wie kann ich es erreichen, dass Excel diese Kombination automatisch als Dateinamen vorgibt und wie kann ich es erreichen, dass Excel diese Kombination als Registernamen verwendet.
Danke

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Speichern unter und Registernamen
20.11.2002 18:37:13
Nepumuk
Hallo Rudi,
in das Klassenmodul des beroffenen Tabellenblattes:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("ORDNER").Address Then ActiveSheet.Name = Target.Value
End Sub

in das Klassenmodul "Diese Arbeitsmappe":

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
ActiveWorkbook.SaveAs (Range("ORDNER") & ".xls")
Application.EnableEvents = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
ActiveWorkbook.SaveAs (Range("ORDNER") & ".xls")
Application.EnableEvents = True
Cancel = True
End Sub

Gruß
Nepumuk

Anzeige
Re: Speichern unter und Registernamen
20.11.2002 18:40:42
Nepumuk
Hallo Rudi,
peinlicher Fehler. Neuer Code für das Klassenmodul diese Arbeitsmappe:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs (Range("ORDNER") & ".xls")
Application.EnableEvents = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableEvents = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs (Range("ORDNER") & ".xls")
Application.DisplayAlerts = True
Application.EnableEvents = True
Cancel = True
End Sub

Gruß
Nepumuk

Anzeige
Re: Speichern unter und Registernamen
21.11.2002 10:04:25
Rudi Fleischhauer
das hat toll funktioniert.
Allerdings würde ich gerne noch den Ordner oder das Verzeichnis festlegen in dem er gespeichert werden soll.
Re: Speichern unter und Registernamen
21.11.2002 15:43:33
Nepumuk
Hallo Rudi,
soll der Name des Ordners fest in das Programm eingebaut werden, oder willst du den bei Bedarf frei wählen können?
Gruß
Nepumuk
Re: Speichern unter und Registernamen
21.11.2002 23:43:53
Rudi Fleischhauer
er soll fest in das Programm eingebaut werden.
Es schadet aber nichts, wenn Du mich über beide Varianten informierst.

Zudem suche ich nach einer Möglichkeit, mit der man eine Tabelle aus einer Excel Datei X in eine Excel-Datei Y kopieren oder verschieben kann.

Re: Speichern unter und Registernamen
22.11.2002 16:29:58
Nepumuk
Hallo Rudi,

1. Speichern in festgelegtes Verzeichnis (Beispiel):

ActiveWorkbook.SaveAs "C:\Eigene Dateien\Eigene Tabellen\" & (Range("ORDNER") & ".xls")

2. Speichern in ein frei wählbares Verzeichnis:

Option Explicit
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" (ByVal hMem As Long) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpStr1 As String, ByVal lpStr2 As String) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pList As Long, ByVal lpBuffer As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
Private Type InfoT
hwnd As Long
Root As Long
DisplayName As Long
Title As Long
Flags As Long
FName As Long
lParam As Long
Image As Long
End Type
Private Function GetAOrdner() As String
Dim xl As InfoT, IDList As Long, RVal As Long, PrgName As String
With xl
.hwnd = FindWindow("", "Auswahl")
.Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
.Flags = 1
End With
IDList = SHBrowseForFolder(xl)
If IDList <> 0 Then
PrgName = Space(256)
RVal = SHGetPathFromIDList(IDList, PrgName)
CoTaskMemFree (IDList)
PrgName = LTrim(RTrim(PrgName))
End If
GetAOrdner = PrgName
End Function
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Verzeichnis As String
Application.EnableEvents = False
Verzeichnis = GetAOrdner
If Verzeichnis <> "" Then
Verzeichnis = Mid(Verzeichnis, 1, Len(Verzeichnis) - 1)
ActiveWorkbook.SaveAs Verzeichnis & "\" & (Range("ORDNER") & ".xls")
Application.EnableEvents = True
End If
Cancel = True
End Sub

3. Verschieben oder kopieren von Tabellen:

Sheets("tab").Copy Before:=Workbooks("X").Sheets(1) für kopieren
Sheets("tab").Move Before:=Workbooks("X").Sheets(1) für verschieben

Gruß
Nepumuk

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige