Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nur eingeblendeten Blätter ohne Code speichern

Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 11:04:00
Becker
Hallo werte Excellanten
Ich will nur eingeblendete Tabellen Blätter einer Mappe unter neue Mappe speicher aber ohne Makros Module und ohne Makros in "DieserArbeitsmappe" was soll verändert werden in unteren Code?
Den Code habe ich hier in Internet gefunden. Funktioniert super aber dabei werden die ausgeblendeten Tabellen Blätter mitgespeichert.
****************************************************************

Sub backup_ohne_code()
Dim i, a, abfrage, anzseiten, zaehler As Integer
Dim bisher As Byte
Dim rest, SummeRunden, start, diff As Date
Dim wb1, wb2 As Workbook
Dim ws1, ws2 As Worksheet
Set wb1 = ThisWorkbook
abfrage = MsgBox("Wollen Sie jetzt ein Backup erstellen?", vbYesNo + vbQuestion)
If abfrage = vbNo Then
Application.ScreenUpdating = True
Exit Sub
End If
Application.ScreenUpdating = False
Workbooks.Add
Set wb2 = ActiveWorkbook
Sheets.Add
ActiveSheet.Move before:=Worksheets(1)
Set ws2 = wb2.Sheets(1) 'leerblatt am Schluß löschen
a = wb2.Sheets.Count
While a > 1
Application.DisplayAlerts = False
Sheets(2).Delete
Application.DisplayAlerts = True
a = wb2.Sheets.Count
Wend
start = Now
anzseiten = wb1.Sheets.Count
zaehler = 0
For i = 1 To wb1.Sheets.Count
a = wb2.Worksheets.Count
wb2.Sheets.Add
wb2.ActiveSheet.Name = wb1.Sheets(i).Name
Set ws1 = ActiveSheet
wb1.Sheets(i).Cells.Copy
ws1.Paste
zaehler = zaehler + 1
bisher = (zaehler) * 100 / anzseiten
SummeRunden = Now
diff = SummeRunden - start
rest = anzseiten * diff / zaehler - diff
Application.StatusBar = "Bisher: " & bisher & "% - aktuell " _
& zaehler & " von " & anzseiten & " - Restzeit: ca. " & rest
Next i
Application.StatusBar = "Bitte noch etwas Geduld für das Speichern und Beenden!"
Application.DisplayAlerts = False
ws2.Delete
Application.DisplayAlerts = True
On Error GoTo speichern
Workbooks.Open Filename:=wb1.Path & "\Backup_" & Date & ".xls"
On Error GoTo 0
ActiveWindow.Close
abfrage = MsgBox("Eine Datei mit dem Namen " & Chr(13) & _
"Backup_" & Date & ".xls" & Chr(13) & _
"existiert bereits in " & Chr(13) & _
wb1.Path & " ." & Chr(13) & "Wollen Sie diese Datei überschreiben?" _
, vbYesNo + vbCritical)
If abfrage = vbNo Then
wb2.Close savechanges:=False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Die Datei wurde nicht gespeichert."
Else
Kill wb1.Path & "\Backup_" & Date & ".xls"
wb2.SaveAs "Backup_" & Date & ".xls"
wb2.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Die Datei wurde unter " & Chr(13) & wb1.Path & "\Backup_" & Date & ".xls" & Chr(13) & _
"gespeichert."
End If
Exit Sub
speichern:
wb2.SaveAs wb1.Path & "\Backup_" & Date & ".xls"
wb2.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Die Datei wurde unter " & Chr(13) & wb1.Path & "\Backup_" & Date & ".xls" & Chr(13) & _
"gespeichert."
End Sub


********************************************************************
Leider sind meine Kenntnisse in VBA noch begrenzt, wäre super, wenn mir jemand helfen könnte, der sich damit auskennt.
Ich Danke Euch für Euer Mühen
Freue mich über jeden Hinweis!
Netten Gruß
Becker
XP Pro, Office 2007

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

Betreff
Datum
Anwender
Anzeige
AW: Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 11:28:00
Tino
Hallo,
versuche es mal hiermit, funktioniert unter Version 2003.

Sub Blätter()
Dim b As Integer, MappeNeu As Workbook
With ThisWorkbook
For b = 1 To .Sheets.Count
If .Sheets(b).Visible = True Then
If MappeNeu Is Nothing Then
.Sheets(b).Copy
Set MappeNeu = ActiveWorkbook
Else
.Sheets(b).Copy After:=MappeNeu.Sheets(MappeNeu.Sheets.Count)
End If
End If
Next b
End With
End Sub


Gruß
Tino

AW: Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 11:41:30
Becker
Hallo Tino,
Vielen Dank das funktioniert wunderbar auch in Office 2007.
Noch eine Frage, was (oder wo) muß ich in Dein Code anpassen das die Mappe auf den Desktop gespeichert wird als Buckup_12-04-08_11:37, also mir Datum und Uhzeit?
Ich vermute "Workbooks.Open Filename:=wb1.Path & "\Backup_" & Date & ".xls"" dass ich es vielleicht in Dein Code einbauen kann es ist nur die Frage wo?
Vielen Dank für Deine Mühe.
Gruß
Becker

Anzeige
AW: Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 12:12:11
Tino
Hallo,
Datei mit ":" speichern geht nicht, hier eine Alternative.

Sub Blätter()
Dim b As Integer, MappeNeu As Workbook
Dim objshell As Object
Dim Desktop As String
With ThisWorkbook
For b = 1 To .Sheets.Count
If .Sheets(b).Visible = True Then
If MappeNeu Is Nothing Then
.Sheets(b).Copy
Set MappeNeu = ActiveWorkbook
Else
.Sheets(b).Copy After:=MappeNeu.Sheets(MappeNeu.Sheets.Count)
End If
End If
Next b
End With
Set objshell = CreateObject("WScript.Shell")
Desktop = objshell.SpecialFolders("Desktop")
MappeNeu.SaveAs Desktop & "\Backup_" & Format(Now, "dd-mm-yyyy hh_mm") & ".xls"
End Sub


Gruß
Tino

Anzeige
AW: Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 12:19:05
Becker
Hallo Tino,
wauuuu, Danke schön das ist ja viel viel besser. Jetz habe ich noch was dazu gelernt.
Habe ganze Zeit gedacht das man ".Sheets(b).Copy After:=MappeNeu.Sheets(MappeNeu.Sheets.Count)
" den Befehl änerdn muß.
So da habe ich mich als Anfänger in VBA totall geirrt.
Danke schööönnnnn.
Gruß
Becker

AW: Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 11:48:00
Daniel
Hi
wenn du die sichtbaren Sheets in eine neue Datei kopieren willst, dann geht das so:

Sub Sichtbare_Blätter_kopieren()
Dim sh As Worksheet
Dim wbZiel As Workbook
Dim wbQuelle As Workbook
Dim Zähler As Long
Set wbQuelle = ActiveWorkbook
Set wbZiel = Workbooks.Add
For Each sh In wbQuelle.Sheets
If sh.Visible = xlSheetVisible Then
Zähler = Zähler + 1
If Zähler > wbZiel.Sheets.Count Then
wbZiel.Sheets.Add after:=wbZiel.Sheets(wbZiel.Sheets.Count)
End If
sh.Cells.Copy Destination:=wbZiel.Sheets(Zähler).Cells(1, 1)
wbZiel.Sheets(Zähler).Name = sh.Name
End If
Next
End Sub


das Speichern müsstest du, falls gewünscht, noch einbauen.
Es werden Formeln und Formate kopiert, aber keine Makros und auch seine Seiteneinstellungen fürs Drucken.
Gruß, Daniel

Anzeige
AW: Nur eingeblendeten Blätter ohne Code speichern
12.04.2008 12:12:54
Becker
Hallo Daniel,
Vielen Dank für Dein Code funzt tadellos.
Ihr seit wirklich wahre Profis.
Gruß
Becker

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige