Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1104to1108
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

Sheet-Name auslesen, wenn er geändert wurde

Sheet-Name auslesen, wenn er geändert wurde
Micha.hal
Hallo Excelperten,
ich habe für ein Tabellenblatt X im Private Sub "Worksheet_Activate" definiert, dass eine Zelle im nächsten Tabellenblatt Y abgeprüft wird. Soweit OK.
Nun werden diese Tabellenblätter jedoch in eine andere Mappe kopiert und dort gesammelt. Da ich diese Tabellenblätter in die neue Mappe mehrfach hinein kopiere, musste ich die Tabellenblätter jeweils umbenennen. Somit heißt Y jetzt Y1, Y2,... Im jeweiligen "Worksheet_Activate" der Blätter X1, X2, ... steht aber weiterhn der Verweis auf Y, das es nun nicht mehr gibt.
Kann man beim Kopieren der Tabellenblätter die "Worksheet_Activate" löschen (brauche sie nach dem Kopieren nicht mehr) oder wie bekomme ich es hin, dass in jedem "Worksheet_Activate" nicht mehr der Blattname Y, sondern Y1, Y2, ... geprüft wird?
Micha

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sheet-Name auslesen, wenn er geändert wurde
30.09.2009 19:11:48
Adelhorst
Hallo Micha.
Füge ein in einem Modul der Original-Arbeitsmappe folgende Funktion ein:
Public Function Sammelmappe() As Boolean
Sammelmappe = False
End Function
In einem Modul der Sammel-Arbeitsmappe (wo du die Blätter hineinkopierst) fügst folgende Funktion ein:
Public Function Sammelmappe() As Boolean
Sammelmappe = True
End Function

Nun kannst du im Worksheet_Activate die Ausführung der Überprüfung nur bedingt ausführen lassen.
Private Sub Worksheet_Activate()
If Sammelmappe = false Then Ueberpruefung
End Sub
Somit findet die Überprüfung nur in der Originaldatei statt.
Hoffe ich konnte dir helfen.
Gruß Adelhorst
Anzeige
AW: Sheet-Name auslesen, wenn er geändert wurde
01.10.2009 08:21:03
Micha.hal
Hallo Adelhorst,
da ich aber die Sheets aus der Originaldatei in eine noch nicht vorhandene Datei verschiebe, kann ich schlecht in diese Datei eine Function schreiben (oder ich weiß nicht wie). Aber ich habe eine Lösung gefunden. Ich suche in der Datei nach einem bestimmten Sheet-Namen, und nur wenn der gefunden wird, handelt es sich um die Originaldatei und nur dann soll das Makro ausgeführt werden:
Private Sub Worksheet_Activate()
blattname = "Y"
For i = 1 To Sheets.Count
If blattname = Sheets(i).Name Then
If Worksheets("Y")'Abfrage Then
'Aktion
End If
Exit For
End If
Next i
End Sub
Danke trotzdem für die hilfreiche Unterstützung.
Micha
Anzeige
AW: Sheet-Name auslesen, wenn er geändert wurde
01.10.2009 09:28:45
Adelhorst
Hallo Micha.
Ja so geht das natürlich auch.
Nur noch ein kleiner Hinweis:
Zu Sheets gehören auch Diagramme. D.h. wenn du alle Sheets nach dem Namen durchsuchst und sehr viele Diagramme im Workbook hast, dann kannst du Zeit sparen, indem du mit Worksheets arbeitest und somit tatsächlich nur die Tabellenblattnamen durchsuchst, so wie im folgenden Beispiel:
Private Sub Worksheet_Activate()
Dim wsh As Worksheet, blattname As String
blattname = "Y"
For Each wsh In Worksheets
If wsh.Name = blattname Then
If wsh.Range("A1") = 1 Then 'Deine Kontrollabfrage
'Aktion
End If
Exit For
End If
Next wsh
End Sub

Gruß Adelhorst
Anzeige
AW: Sheet-Name auslesen, wenn er geändert wurde
01.10.2009 10:15:39
Micha.hal
Guter Tipp, dankeschön.
Micha

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige