Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
528to532
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
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten/Arbeitsblatt sichern

Daten/Arbeitsblatt sichern
10.12.2004 09:54:28
Werner
Hallo!
Ich habe eine Datei, bei der ein Arbeitsblatt die Daten beinhaltet, mit denen ich arbeite.
Dieses Blatt möchte ich separat sichern. Am besten, mit einem Makro.
Excel soll also die Daten in eine neue Datei schreiben und dabei am besten nach dem Pfad und dem neuen Namen fragen.
Später soll man die Möglichkeit haben, diese Daten wieder mit einem Makro zu importieren.
Auch hier sollte Excel nach dem Pfad und dem Namen der zu importierenden Datei fragen.
Gibt es da Möglichkeiten?
Vielen Dank schon jetzt für evtl. Hilfe!
Gruß
Werner

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

Betreff
Datum
Anwender
Anzeige
Teil1
UweD
Hallo
Hier Teil1:

Sub Blatt_verschieben()
Dim dlg As FileDialog
ActiveSheet.Move
Set dlg = Application.FileDialog(msoFileDialogSaveAs) 'Datei wählen
With dlg
.InitialFileName = ActiveSheet.Name & ".xls"
.InitialView = msoFileDialogViewDetails 'Anzeige des Dialogs - die Dateien als Thumbnail
.Title = "Tabellenblat separieren" 'Titel halt
End With
If dlg.Show = True Then
ActiveWorkbook.SaveAs Filename:=dlg.SelectedItems(1)
End If
End Sub

Gru? UweD
AW: Teil1
10.12.2004 11:47:38
Werner
DAS hat schon mal prima geklappt!
Habe allerdings den Befehl "ActiveSheet.Move" gegen "ActiveSheet.copy" getauscht.
Ich will die Originaldaten dort behalten wo sie sind.
Ich würde mich über Teil2 freuen, wenn ich erfahre, wie man die Daten unkompliziert wieder zurück kopiert.
Bis hier schon mal VIELEN DANK UweD!!!!!!!!!!!!!!!!!!
Anzeige
AW: Teil2
UweD
Hallo
Komm erst gerade aus einer Besprechung.
Hier Teil2


      
Sub Tabelle_Importieren()
    
Dim dlg As FileDialog
    
Dim si As Variant
    
Set dlg = Application.FileDialog(msoFileDialogOpen) 'Datei wählen
    With dlg
        .AllowMultiSelect = 
True 'der User darf mehrere Dateien auswählen
        .InitialFileName = "*.xls"
        .InitialView = msoFileDialogViewDetails 
'Anzeige des Dialogs
        .Title = "Tabelle importieren" 'Titel halt
    End With
    
If dlg.Show = True Then
        Frage = MsgBox(
"Sollen die Dateien nach Import gelöscht werden?", vbYesNo)
        
For Each si In dlg.SelectedItems 'jede ausgewählte Datei wird bearbeitet
            Workbooks.Open Filename:=si
            
For Each TB In Sheets 'jedes Tabellenblatt der Datei wird importiert
                TB.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            
Next
            Workbooks(Dir(si)).Close savechanges = 
False
            
If Frage = vbYes Then Kill si
        
Next
    
End If
End Sub 



Gruß UweD
Anzeige
AW: Teil2
10.12.2004 13:38:49
Werner
Nicht übel! Kompliment!
Ich bewundere sowas.
Eine Frage noch: Kann man das Ganze so gestalten, dass beim Import der gesicherten Daten das vorhandene Arbeitsblatt überschrieben wird?
Im Moment fügt er das importierte Blatt als "xyz (2)" an.
Gruß und VIELEN DANK!!!
Werner
AW: Teil2
UweD
Hallo nochmal
geht auch.
so:
Gruß UweD


      
Sub Tabelle_Importieren()
    
Dim dlg As FileDialog
    
Dim si As Variant
    
Set dlg = Application.FileDialog(msoFileDialogOpen) 'Datei wählen
    With dlg
        .AllowMultiSelect = 
True 'der User darf mehrere Dateien auswählen
        .InitialFileName = "*.xls"
        .InitialView = msoFileDialogViewDetails 
'Anzeige des Dialogs
        .Title = "Tabelle importieren" 'Titel halt
    End With
    
If dlg.Show = True Then
        Frage = MsgBox(
"Sollen die Dateien nach Import gelöscht werden?", vbYesNo)
        Application.ScreenUpdating = 
False
        
For Each si In dlg.SelectedItems 'jede ausgewählte Datei wird bearbeitet
            Workbooks.Open Filename:=si
            
For Each TB In Sheets 'jedes Tabellenblatt der Datei wird importiert
                For Each TBB In ThisWorkbook.Sheets
                    
If TBB.Name = TB.Name Then ' Tabellenname shon vorhanden?
                        Application.DisplayAlerts = False
                        TBB.Delete 
' Schon vorhandenes Tabellenblatt wird vorher gelöscht
                        Application.DisplayAlerts = True
                        
Exit For
                    
End If
                
Next
                TB.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            
Next
            Workbooks(Dir(si)).Close savechanges = 
False
            
If Frage = vbYes Then Kill si
        
Next
    
End If
    Application.ScreenUpdating = 
True
End Sub 



Anzeige
AW: Teil2
13.12.2004 09:34:48
Werner
SUPER!!! Vielen Dank!!!
Jetzt muss ich nur noch in den Griff kriegen, dass er mir Zellbezüge, die sich auf das gelöschte Tabellenblatt beziehen, wieder automatisch aktualisiert.
Ich denke, dass müßte ich mit einem einfachen Makro "suchen und ersetzen" hinkriegen.
Wenn nicht melde ich mich nochmal.
Wie gesagt: Vielen Dank für die Hilfe!
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige