Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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
Inhaltsverzeichnis

Ausgeblendete Sheet wird nicht kopiert

Ausgeblendete Sheet wird nicht kopiert
04.12.2020 12:11:01
Manuela
Hallo zusammen,
ich bin leider leider etwas unerfahren mit Makros. Makros aufzeichnen und ggf. kleinere Anpassungen vornehmen kann ich, selbstständig Makros erstellen leider nicht. Ein ehemaliger Kollege hat ein Marko für ein Excel Sheet erstellt, was ich jetzt anpassen und erweitern möchte. Im Makro wird ein in der Datei vorhandenes Tabellenblatt kopiert, wenn in einem Tabellenblatt in bestimmten Zellen etwas eingegeben wird. Außerdem wird das kopierte Tabellenblatt mit dem Namen angelegt, welcher in der geänderten Zelle eingegeben wurde. Das Makro klappt wunderbar. Ich möchte aber folgende Anpassungen vornehmen.
1. Das Tabellenblatt was kopiert wird, soll ausgeblendet sein und kopiert werden können. Wenn ich das Tabellenblatt aber ausblende und dann wie gehabt die entsprechende Zelle ändere, dann wird ein Tabellenblatt was in der Arbeitsmappe existiert und eingeblendet ist einfach umbenannt. Ich habe schon mit dem Befehl "With Worksheets(Tabellenblattname)" gearbeitet, das ein ausgeblendetes Tabellenblatt anspricht, das hat bei einem anderen Tabellenblatt auch wunderbar funktioniert, nur klappt das leider bei dem besagten Makro nicht.
2. Da es evtl. vorkommen kann, dass man versehentlich ein Tabellenblatt mit einem falschen Namen angelegt hat, soll das angelegte Tabellenblatt gelöscht werden, wenn der Inhalt in der Zelle, die geändert wurde, entfernt wird. Hinzu sollte noch in einer Msg.box gefragt werden, ob das Tabellenblatt wirklich gelöscht werden soll
Im Anhang ist eine Beispiel Datei eingefügt.
Vielen Dank schon mal im Voraus für eure Hilfe.
V.G. Manuela
https://www.herber.de/bbs/user/142067.xlsm

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgeblendete Sheet wird nicht kopiert
04.12.2020 13:01:30
Nepumuk
Hallo Manuela,
teste mal:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    Dim Fehler As Integer, ws As Object
    
    On Error GoTo Fehler
    
    If Not IsEmpty(Target.Value) Then
        
        If Target.Column = 5 Then
            
            Select Case Target.Row
                    
                Case 12, 18, 24, 30
                    
                    If MsgBox("Tabelenblatt mit Name """ & Target.Text & """ anlegen ?", _
                        vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
                        
                        For Each ws In ActiveWorkbook.Sheets
                            If ws.Name = Target.Value Then
                                MsgBox "Blatt mit dem eingegeben Namen existiert bereits!"
                                Target.Select
                                Exit Sub
                            End If
                        Next
                        
                        Application.ScreenUpdating = False
                        With Worksheets("Tabblatt kopieren")
                            .Visible = xlSheetVisible
                            .Copy Before:=Worksheets("Tabblatt kopieren")
                            .Visible = xlSheetVeryHidden
                        End With
                        Fehler = 1
                        ActiveSheet.Name = Target.Offset(0, 1).Value
                        Application.ScreenUpdating = True
                        
                    End If
            End Select
        End If
    End If
    Exit Sub
    Fehler:
    Select Case Fehler
        Case 1
            MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
            Application.DisplayAlerts = False
            ActiveSheet.Delete
            Application.DisplayAlerts = True
            Activate
            Target.Select
        Case Else
            MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
    End Select
End Sub

Gruß
Nepumuk
Anzeige
AW: Ausgeblendete Sheet wird nicht kopiert
04.12.2020 13:17:42
Manuela
Hallo Nepumuk,
vielen Dank für deine schnelle Hilfe! Klappt super. Hättest du auch noch eine Idee zum zweiten Punkt?
Übrigens Nepumuk, cooler Name ;-).
V.G. Manuela
AW: Ausgeblendete Sheet wird nicht kopiert
04.12.2020 13:34:08
Nepumuk
Hallo Manuela,
habe ich übersehen.
Option Explicit

Private mstrSheetname As String

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    Dim Fehler As Integer, ws As Object
    
    On Error GoTo Fehler
    
    If Not IsEmpty(Target.Cells(1, 1).Value) Then
        
        If Target.Column = 5 Then
            
            Select Case Target.Row
                    
                Case 12, 18, 24, 30
                    
                    mstrSheetname = Target.Cells(1, 1).Value
                    
                    If MsgBox("Tabelenblatt mit Name """ & Target.Text & """ anlegen ?", _
                        vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
                        
                        For Each ws In ActiveWorkbook.Sheets
                            If ws.Name = Target.Value Then
                                MsgBox "Blatt mit dem eingegeben Namen existiert bereits!"
                                Target.Select
                                Exit Sub
                            End If
                        Next
                        
                        Application.ScreenUpdating = False
                        With Worksheets("Tabblatt kopieren")
                            .Visible = xlSheetVisible
                            .Copy Before:=Worksheets("Tabblatt kopieren")
                            .Visible = xlSheetVeryHidden
                        End With
                        Fehler = 1
                        ActiveSheet.Name = Target.Offset(0, 1).Value
                        Application.ScreenUpdating = True
                        
                    End If
            End Select
        End If
    Else
        If mstrSheetname <> vbNullString Then
            If Target.Column = 5 Then
                
                Select Case Target.Row
                        
                    Case 12, 18, 24, 30
                        
                        If MsgBox("Das Sheet ''" & mstrSheetname & "'' löschen?", vbQuestion Or vbYesNo, "Abfrage") = vbYes Then
                            
                            Application.DisplayAlerts = False
                            Worksheets(mstrSheetname).Delete
                            Application.DisplayAlerts = True
                            
                        End If
                End Select
            End If
        End If
    End If
    Exit Sub
    Fehler:
    Select Case Fehler
        Case 1
            MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
            Application.DisplayAlerts = False
            ActiveSheet.Delete
            Application.DisplayAlerts = True
            Activate
            Target.Select
        Case Else
            MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
    End Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 5 Then
        
        Select Case Target.Row
                
            Case 12, 18, 24, 30
                
                mstrSheetname = Target.Cells(1, 1).Value
                
        End Select
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Ausgeblendete Sheet wird nicht kopiert
04.12.2020 16:11:44
Manuela
Hallo Nepumuk,
super, vielen Dank für deine schnelle Hilfe. Es klappt alles wunderbar. Das Tabellenblatt was kopiert werden soll ist gar nicht ausgeblendet, sondern nur mit Hilfe der Eigenschaft "2-xlSheetVeryHidden" nicht sichtbar, oder?
V.G. Manuela
AW: Ausgeblendete Sheet wird nicht kopiert
04.12.2020 16:14:56
Nepumuk
Hallo Manuela,
mit xlSheetVeryHidden kann es vom "Normaluser" nicht eingeblendet werden.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige