Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblatt ansprechen, aber nicht anzeigen

Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 19:38:57
angela
Hallo,
möchte gern von Tab1 die Daten auf Tab2 kopieren, dann soll Tab2 in einer anderen Mappe abgespeichert werden. Das geht auch solange ich Tab2 nicht verstecke. Nun habe ich im Sevicebereich nachgeschaut, aber keine Lösung gefunden. Das Problem ist wohl "Select".
Sheets("Tab2").Select
Eine andere Möglichkeit ist wohl das Blatt kurzfristig einzublenden und nach de Aktion wieder auszublenden. Möchte aber gern das es nicht auf dem Bildschirm erscheint.
Vielleicht habt Ihr einen Rat für mich, würde mich freuen.
Mfg. Angela
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 19:54:39
Hajo_Zi
Hallo Angela,
verzichte auf select. Die Tabelle muß nur zum Drucken eingeblendet werden.


Tab kopieren
20.11.2005 20:11:40
Angela
Hallo Hajo
vielen Dank für Deine Antwort.
Drucken wollte ich nicht.
Es geht immoment darum, das versteckte Tab2 zu kopieren in einer anderen Mappe.
Was ja auch geht, solange ich Tab2 nicht versteckt hatte.
Ich drücke nun von Tab1 auf ein Button und es wird das Makro ausgeführt.
Das Makro will nun mit Sheets("Tab2").Select auf das Blatt zugreifen, geht nicht da es versteckt ist. Gelesen hatte ich in der Hilfe das kein SELECT im Makro sein darf.
Hier stopt das Makro auch mit Laufzeitfehler 1004 Select Mehtode konnte nicht ausgeführt werden.
Wie kann ich das Blatt anders ansprechen, ohne Sheets("Tab2").Select
Mfg. Angela
Anzeige
AW: Tab kopieren
20.11.2005 20:15:26
DieterB
Hallo Angela,
der Laufzeitfehler 1004 resultiert daraus, dass das Blatt versteckt (für das Makro "nicht da") ist.
Gruß DieterB
AW: Tab kopieren
20.11.2005 20:20:17
angela
Hallo DieterB
danke für die Antwort. Habe mir das schon gedacht, aber wie kann ich es umgehen?
Mfg. Angela
AW: Tab kopieren
20.11.2005 20:27:09
Hajo_Zi
Hallo Angela,
es haben nur wenige hier eine Glaskugel, da wäre de Code schon nicht schlecht.
Sheets("Tabelle2").Copy After:=Sheets(Worksheets.Count)
Gruß Hajo
Anzeige
AW: Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 19:55:26
DieterB
Hallo Angela,
Application.ScreenUpdating = False
Baltt einblenden
Application.ScreenUpdating = True
Gruß DieterB
AW: Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 20:14:50
angela
Hallo DieterB
vielen Dank für Deine Antwort.
Es geht immoment darum, das versteckte Tab2 zu kopieren in einer anderen Mappe.
Was ja auch geht, solange ich Tab2 nicht versteckt hatte.
Ich drücke nun von Tab1 auf ein Button und es wird das Makro ausgeführt.
Das Makro will nun mit Sheets("Tab2").Select auf das Blatt zugreifen, geht nicht da es versteckt ist. Gelesen hatte ich in der Hilfe das kein SELECT im Makro sein darf.
Hier stopt das Makro auch mit Laufzeitfehler 1004 Select Mehtode konnte nicht ausgeführt werden.
Wie kann ich das Blatt anders ansprechen, ohne Sheets("Tab2").Select
Ich möchte gern erreichen, das Tab2 nicht sichtbar auf dem Bildschirm erscheint.
Mfg. Angela
Anzeige
AW: Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 19:57:45
Leo
Sheets("Tab1").[a1:C20].copy Sheets("Tab2").[a1]
mfg Leo
AW: Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 20:18:12
angela
Hallo Leo
Danke für die schnelle Antwort.
Es geht mir um das versteckte kopieren des Tab2.
Ich denke da stört das SELECT
Sheets("Tab2").Select
So fängt das Makro an, und hier bekomme ich auch die Fehlermeldung 1004 Laufzeitfehler.
Mfg. Angela
Anzeige
AW: Tabellenblatt ansprechen, aber nicht anzeigen
20.11.2005 20:25:35
Leo
Hi,
wie du da was reinkopieren kannst, hab ich in der anderen Antwort gepostet.
Willst du etwas aus dem Blatt kopiern? Falls ja, wohin?
mfg Leo
@ an Hajo, DieterB und Leo
20.11.2005 20:35:35
angela
Hallo Hajo, DieterB und Leo
erstmal vielen Dank für Eure Mühe mit mir.
Natürlich könnt Ihr nicht aus der Glaskugel lesen, wäre aber nicht schlecht.
Das Makro sieht so aus
Public

Sub Sicherung()
Application.ScreenUpdating = False    ' Anzeige am Bildschirm deaktivieren
Worksheets("Tab2").Visible = True
Sheets("Tab2").Select
' Application.ScreenUpdating = False    ' Anzeige am Bildschirm deaktivieren
Dim sName As String
Dim sDatum As String
Dim sFolder As String
Dim lSheetsCount As Long
lSheetsCount = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
With ActiveSheet
sName = Cells(5, 3)
sDatum = Day(Cells(7, 14).Value) & ".-" & Cells(7, 19).Value
' sDatum = Cells(9, 10)
Range("A1:W54").Copy
Workbooks.Add
With ActiveSheet.Cells(1, 1)
.PasteSpecial Paste:=xlPasteColumnWidths ' Spaltenbreite
.PasteSpecial Paste:=xlPasteValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
'.Select
End With
End With
Columns("X:IV").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll Down:=36
Rows("55:170").Select
'Range("C55").Activate
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
Range("C10").Activate
End With
'ActiveWindow.SmallScroll Down:=-36
Application.SheetsInNewWorkbook = lSheetsCount
sFolder = Trim$(fncGetFolder(, , "C:\"))
If sFolder <> "" Then
ActiveWorkbook.SaveAs sFolder & "\" & sName & "-" & sDatum & ".xls"
ActiveWindow.Close
End If
Sheets("Tab2").Visible = xlSheetVeryHidden
Application.ScreenUpdating = True    ' Anzeige am Bildschirm aktivieren
End Sub

mit lieben Grüßen Angela
Anzeige
AW: Tabelle2
20.11.2005 20:51:20
Hajo_Zi
Hallo Angela,
das ist ja nur ein Teil des Codes. Es fehlt fncGetFolder
Option Explicit

Sub Sicherung()
Dim sName As String
Dim sDatum As String
Dim sFolder As String
Dim lSheetsCount As Long
With Sheets("Tab2").Select
lSheetsCount = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
With ActiveSheet
sName = .Cells(5, 3)
sDatum = Day(.Cells(7, 14).Value) & ".-" & .Cells(7, 19).Value
' sDatum = Cells(9, 10)
.Range("A1:W54").Copy
Workbooks.Add
With ActiveSheet.Cells(1, 1)
.PasteSpecial Paste:=xlPasteColumnWidths ' Spaltenbreite
.PasteSpecial Paste:=xlPasteValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
End With
End With
Columns("X:IV").EntireColumn.Hidden = True
With Rows("55:170").Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Application.SheetsInNewWorkbook = lSheetsCount
sFolder = Trim$(fncGetFolder(, , "C:\"))
If sFolder <> "" Then
ActiveWorkbook.SaveAs sFolder & "\" & sName & "-" & sDatum & ".xls"
ActiveWindow.Close
End If
End With
End Sub

Gruß Hajo
Anzeige
AW: @ an Hajo, DieterB und Leo
20.11.2005 20:51:55
Leo
Hi,
Option Explicit

Sub Sicherung()
Dim sName As String
Dim sDatum As String
Dim sFolder As String
Dim lSheetsCount As Long
Dim ws As Worksheet
Set ws = Sheets("Tab2")
Application.ScreenUpdating = False    ' Anzeige am Bildschirm deaktivieren
With ws
sName = .Cells(5, 3)
sDatum = Day(.Cells(7, 14).Value) & ".-" & .Cells(7, 19).Value
.Range("A1:W54").Copy
Workbooks.Add (1)
With ActiveSheet.Cells(1, 1)
.PasteSpecial Paste:=xlPasteColumnWidths ' Spaltenbreite
.PasteSpecial Paste:=xlPasteValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
End With
End With
Columns("X:IV").Hidden = True
Rows("55:170").Interior.ColorIndex = 15
sFolder = Trim$(fncGetFolder(, , "C:\"))
If sFolder <> "" Then
ActiveWorkbook.SaveAs sFolder & "\" & sName & "-" & sDatum & ".xls"
ActiveWindow.Close
End If
Application.ScreenUpdating = True    ' Anzeige am Bildschirm aktivieren
End Sub

mfg Leo
Anzeige
DANKE, DANKE es klappt
20.11.2005 21:01:51
angela
Hallo,
es klappt endlich mit Eurer Hilfe.
Vielen Dank an Hajo, Leo und DieterB, ihr habt mich auf den richtigen Weg gebracht.
liebe Grüße Angela
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt ansprechen, aber nicht anzeigen


Schritt-für-Schritt-Anleitung

Um in Excel VBA auf ein ausgeblendetes Tabellenblatt zuzugreifen, ohne es sichtbar zu machen, kannst du den folgenden Code verwenden. Dieser Code ermöglicht es dir, Daten von einem aktiven Tabellenblatt (Tab1) in ein ausgeblendetes Tabellenblatt (Tab2) zu kopieren und dabei das Blatt nicht zu zeigen.

Sub Sicherung()
    Dim sName As String
    Dim sDatum As String
    Dim sFolder As String
    Dim lSheetsCount As Long
    Dim ws As Worksheet

    ' Setze das Worksheet auf Tab2
    Set ws = ThisWorkbook.Sheets("Tab2")

    ' Deaktiviere die Bildschirmaktualisierung
    Application.ScreenUpdating = False

    ' Kopiere die Daten
    With ws
        sName = .Cells(5, 3).Value
        sDatum = Day(.Cells(7, 14).Value) & "." & .Cells(7, 19).Value
        .Range("A1:W54").Copy
        Workbooks.Add
        With ActiveSheet.Cells(1, 1)
            .PasteSpecial Paste:=xlPasteColumnWidths
            .PasteSpecial Paste:=xlPasteValues
            .PasteSpecial Paste:=xlPasteFormats
        End With
    End With

    ' Speichere die neue Arbeitsmappe
    sFolder = Trim$(fncGetFolder(, , "C:\"))
    If sFolder <> "" Then
        ActiveWorkbook.SaveAs sFolder & "\" & sName & "-" & sDatum & ".xls"
        ActiveWindow.Close
    End If

    ' Reaktiviere die Bildschirmaktualisierung
    Application.ScreenUpdating = True
End Sub

Häufige Fehler und Lösungen

Fehler 1004: Select Methode konnte nicht ausgeführt werden

Dieser Fehler tritt auf, wenn du versuchst, ein ausgeblendetes Tabellenblatt mit Sheets("Tab2").Select anzusprechen. Um dies zu umgehen, verwende die With-Anweisung, um auf das Worksheet zuzugreifen, ohne es vorher auszuwählen.

Lösung: Stelle sicher, dass du den Code anpasst, um direkt mit dem Worksheet zu arbeiten, anstatt es auszuwählen.


Alternative Methoden

Eine alternative Methode, um auf ein ausgeblendetes Tabellenblatt zuzugreifen, ist die Verwendung von Worksheet.Visible. Du kannst das Blatt temporär sichtbar machen, um deine Operation auszuführen, und es danach wieder ausblenden:

Sub TemporärEinblenden()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Tab2")

    ' Temporär sichtbar machen
    ws.Visible = xlSheetVisible

    ' Deine Kopier- oder Bearbeitungsaktionen hier

    ' Wieder ausblenden
    ws.Visible = xlSheetVeryHidden
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungen, wie du ein ausgeblendetes Tabellenblatt ansprechen kannst:

  1. Daten kopieren: Kopiere Daten von einem aktiven Blatt in ein ausgeblendetes Blatt, ohne es anzuzeigen.
  2. Berichte erstellen: Erstelle Berichte, indem du Daten aus einem versteckten Blatt extrahierst und sie in einem neuen Arbeitsblatt darstellst.
  3. Automatisierung: Automatisiere Berichte, die regelmäßig erstellt und gespeichert werden müssen, ohne dass der Benutzer das ausgeblendete Blatt sieht.

Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Fehler zu vermeiden, indem alle Variablen zugeordnet und deklariert werden müssen.
  • Vermeide Select und Activate: Diese Befehle verlangsamen deinen Code und können zu Laufzeitfehlern führen. Arbeite direkt mit Objekten.
  • Nutze Application.ScreenUpdating = False: Dies verbessert die Leistung deines VBA-Codes, indem es das Flackern des Bildschirms während der Ausführung verhindert.

FAQ: Häufige Fragen

1. Wie kann ich ein ausgeblendetes Tabellenblatt ansprechen, ohne es sichtbar zu machen?
Du kannst direkt mit dem Worksheet-Objekt arbeiten, indem du es in einer With-Anweisung verwendest, ohne es auszuwählen.

2. Was ist der Unterschied zwischen xlSheetHidden und xlSheetVeryHidden?
xlSheetHidden ermöglicht es Benutzern, das Blatt über das Menü "Blatt einblenden" wieder sichtbar zu machen, während xlSheetVeryHidden dies verhindert, und das Blatt nur über VBA wieder einblendbar ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige