Anzeige
Archiv - Navigation
1128to1132
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

Änderung für alle Tabellenblätter übernehmen | Herbers Excel-Forum

Änderung für alle Tabellenblätter übernehmen
14.01.2010 09:11:14
Thomas

Hallo liebe VBAler
Ich hab eine Excel Datei mit 12 Tabellenblätter (Januar-Dezember).
Ände ich nun z.B. im Tabellenblatt Januar in Spalte A und B etwas, oder füge/lösche eine Zeile ein, dann soll er dies für alle anderen Tabellenblätter übernehmen.
Bis jetzt habe ich dies über Worksheet_SelectionChange gemacht.
Dort frag ich mit target.row und target.column ab in welcher Spalte ich bin. Ist A oder B, dann selektiert er alle Tabellenblätter und wenn ich dann was ändere, dann übernimmt er dies für alle Blätter.
ALLERDINGS, hab ich in den Tabellenblätter auch Worksheet_BeforeDoubleclick, Activate und Deactivate.
Irgendwie scheint dies zusammen aber Probleme zu machen (meine Vermutung).
Wenn ich zum ersten mal in Spalte A oder B klicke dann selektiert er alle Blätter. Klick ich dann in Spalte C und nochmal in Spalte A oder B dann macht er nichts mehr.
Meine Frage ist nun, ob ich die Änderungen für alle Tabellenblätter auch ohne Selection_Change machen kann. Gibt es hierfür auch andere Ansätze. Hab auch schon gegoogle aber immer nur auf selection_change gestossen.
Vielleicht, bzw. ich hoffe, jemand kennt eine Alternative.
Schon mal besten Dank im voraus.
gruß
Thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderung für alle Tabellenblätter übernehmen
14.01.2010 09:29:58
Hajo_Zi
Hallo Thomas,
benutze das Change Ereignis das wird ausgelöst nach einer Änderung.

AW: Änderung für alle Tabellenblätter übernehmen
14.01.2010 10:37:20
fcs
Hallo Thomas,
da muss man die Ereignismakros zeitweise deaktivieren und den Status der Gruppierung und ggf. auch das zum Zeitpunkt der Gruppierung aktive Blatt in Globalen Variablen merken und prüfen.
Schaut dann Code-mäßig etwa wie folgt aus.
Gruß
Franz
Option Explicit
'Beispielcode in allen Tabellenblättern
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <= 2 And Target.Row > 1 And bolGrouped = False Then 'Spalte A oder B gewählt
'Alle Blätter Gruppieren
Application.EnableEvents = False
ActiveWorkbook.Sheets.Select
Application.EnableEvents = True
Set wksAktiv = Me
bolGrouped = True
ElseIf Target.Row = 1 Then
'Gruppierung aufheben bei Klick in Zelle in Zeile 1
Application.EnableEvents = False
If Not wksAktiv Is Nothing Then wksAktiv.Select
bolGrouped = False: Set wksAktiv = Nothing 'Zurückseten der Gruppierungsmerker
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Activate()
MsgBox Me.Name & " ist aktiv"
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Me.Name & " - Doppelklick Zelle " & Target.Address
End Sub
Private Sub Worksheet_Deactivate()
'Zurückseten der Gruppierungsmerker, wenn Gruppierung durch Wahl eines anderen _
Tabellenblatts aufgehoben wird
bolGrouped = False: Set wksAktiv = Nothing
MsgBox Me.Name & " wurde deaktiviert"
End Sub
'Code/Variablendeklaration in einem allgemeinen Modul
Option Explicit
Public bolGrouped As Boolean 'Merker für Gruppierungs-Status
Public wksAktiv As Worksheet 'Merker für das zum Zeitpunkt Gruppierung aktive Blatt

Anzeige
AW: Änderung für alle Tabellenblätter übernehmen
14.01.2010 11:40:38
Thomas
Danke schonmal. Werd das nach dem Mittagessen testen.
Vielen Dank euch beiden !
gruß
Thomas

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige