Microsoft Excel

Herbers Excel/VBA-Archiv

Makroausführung nach Datenaktualisierung

Betrifft: Makroausführung nach Datenaktualisierung von: Gira Sol
Geschrieben am: 12.07.2013 12:21:17

Hallo liebes Forum,
dank diverser Forumseinträge habe ich es geschafft, ein Makro zu basteln, welches abhängig von einem Wert in einer Zelle bestimme Spalten ein- bzw. ausblendet.
Da die Datei aus mehreren Tabellenblättern mit gleicher Logik besteht, möchte ich allerdings nur auf der Hauptseite den Wert ändern und auf allen Unterseiten sollten dann die jeweiligen Makros ausgeführt werden.

Bislang beziehe ich mich in dem Makro auf das aktuelle Tabellenblatt und es funktioniert:

Private Sub Worksheet_Change(ByVal Target As Range)

'Konstanten (bei Bedarf anpassen):
Const Auswahlzelle = "F4" 'die Zelle, in der der Monat ausgewählt wird
Const Monatsüberschriften = "i7:t7" 'der Bereich, in dem die Spaltenüberschriften stehen
Const Forecastüberschriften = "v7:ag7" 'der Bereich, in dem die 2. Spaltenüberschriften stehen

Dim i As Integer, c As Integer
Dim s_letzte As Range
Dim s_erste As Range
Dim s As Range


Wie muss ich die Definition der Auswahlzelle ändern, damit ich mich auf ein anderes Tabellenblatt beziehen kann und bei dessen Aktualisierung das Marko hier ausgeführt wird? Das Ersetzen von "F4" durch "Gesamtübersicht.A12" war leider nicht erfolgreich.

Bereits im Voraus vielen Dank für eure Anworten.

Viele Grüße
Silke

  

Betrifft: AW: Makroausführung nach Datenaktualisierung von: selli
Geschrieben am: 12.07.2013 14:36:02

hallo silke,

1. ist das nur der beginn eines codes, der ausgeführt wird bei einer änderung
2. machst du widersprüchliche angaben dazu, wann der code ausgeführt werden soll
dazu 2 zitate von dir "möchte ich allerdings nur auf der Hauptseite den Wert ändern" und "damit ich mich auf ein anderes Tabellenblatt beziehen kann und bei dessen Aktualisierung das Marko hier ausgeführt wird"

was denn nun?

gruß
selli


  

Betrifft: AW: Makroausführung nach Datenaktualisierung von: Gira Sol
Geschrieben am: 12.07.2013 14:45:11

Hallo Selli,

richtig, dies ist nur der Beginn. Ich ging davon aus, dass hier das Problem gelöst wird und habe daher nicht den restlichen Code hinzugefügt. Oder ist dieser zur Lösung des Problems notwendig?

Zu deinem 2. Punkt: Eventuell habe ich mich etwas unklar ausgedrückt.
Die Arbeitsmappe besteht aus einer "Hauptseite"(= 1. Tabellenblatt) und x "Unterseiten" (die folgenden Tabellenblätter). Jede der Unterseiten sieht im Prinzip gleich aus und jede der Unterseite beinhaltet das Makro. Damit ich nicht auf jeder Unterseite den Monatszähler (also den Wert der Auswahlzelle) ändern muss, soll dies zentral einmal auf der Hauptseite gemacht werden können. Die Makros der Unterseiten sollen sich daher auf eine Zelle der Hauptseite beziehen und der Code soll im Prinzip beginnen mit "wenn sich auf der Hauptseite die Zelle A12 geändert hat, dann führe diese Makro jetzt aus".

Ich hoffe, die Beschreibung ist nun etwas klarer.

Bereits im Voraus besten Dank für Lösungsvorschläge.

Viele Grüße
Silke


  

Betrifft: AW: Makroausführung nach Datenaktualisierung von: Rudi Maintaire
Geschrieben am: 12.07.2013 14:53:53

Hallo,
das ist doch genau verkehrt herum.
Du brauchst nur eine Ereignis-Prozedur auf der Hauptseite, die bei Änderung von A12 auf allen anderen Blättern die Aktionen ausführt.
Etwa so:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Integer
  If Target.Address = "$A$12" Then
    For i = 2 To Worksheets.Count
      With Worksheets(i)
        'Aktionen
      End With
    Next i
  End If
End Sub

Gruß
Rudi


 

Beiträge aus den Excel-Beispielen zum Thema "Makroausführung nach Datenaktualisierung"