Macro soll automatisch starten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Macro soll automatisch starten von: Thomas
Geschrieben am: 07.04.2005 17:24:10

hallo erstmal,
hoffe ihr könnt mir helfen.
in tabelle1 ist der eintrag und in tabelle3 habe ich die formel =INDIREKT(ADRESSE(B23;10;;;"tabelle1")). jetzt soll wenn in tabelle2 der eintrag übernommen wird ein macro starten.

gruß thomas

Bild


Betrifft: AW: Macro soll automatisch starten von: Ceyser Soze
Geschrieben am: 07.04.2005 17:41:31

Hi Thomas,
dieser Code muss in das Modul der Tabelle, in der sich die Zelle befindet, bei deren Änderung das Makro starten soll. In diesem Beispiel startet das Makro, wenn Zelle A1 geändert wird.


      
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row = 1 Then
    
Call meinMakro
End If
End Sub 

Gruß
CS
     Code eingefügt mit Syntaxhighlighter 3.0



Bild


Betrifft: AW: Macro soll automatisch starten von: Thomas
Geschrieben am: 07.04.2005 21:36:25

hi cs,

danke für die antwort, ist aber noch nicht das richtige.
wenn ich die zelle direkt ändere funktionierts, aber nicht über die formel =INDIREKT(ADRESSE(B21;12;;;"tabelle1"))
mache ich was falsch???

gruß thomas



Bild


Betrifft: AW: Macro soll automatisch starten von: Thomas Rosinski
Geschrieben am: 08.04.2005 13:03:31

hi cs,

danke für die antwort, ist aber noch nicht das richtige.
wenn ich die zelle direkt ändere funktionierts, aber nicht über die formel =INDIREKT(ADRESSE(B21;12;;;"tabelle1"))
mache ich was falsch???

gruß thomas


Bild


Betrifft: AW: Macro soll automatisch starten von: Oberschlumpf
Geschrieben am: 12.04.2005 00:16:26

Hi Thomas

Versuch es mal so:

als Bsp steht in Zelle A1 die Formel: = B1 / C1

dieser Code in ein allgemeines Modul:

Public pZellwert As Variant



dieser Code ins Open-Ereignis der Excel-Tabelle:

Private Sub Workbook_Open()

    pZellwert = Sheets(1).Range("A1").Value
    
End Sub



dieser Code ins Calculate-Ereignis der entsprechenden Tabelle:

Private Sub Worksheet_Calculate()

        If pZellwert <> Sheets(1).Range("A1").Value Then
            MsgBox "Wert hat sich geändert"
            pZellwert = Sheets(1).Range("A1").Value
        End If
        
End Sub



Erklärung:
- Im allgem. Modul wird die globale Variable pZellwert deklariert

- Beim Öffnen der Tabelle wird dieser Variablen der Wert aus Zelle A1 zugewiesen
(in Zelle A1 steht eine Formel - bei meinem Test A1 = B1 / C1)

- wenn ich jetzt den Wert in B1 ändere, ändert sich auch das Ergebnis aus der Berechnung A1 = B1 / C1 - das Calculate-Ereignis wird ausgelöst.

- Im Calculate-Ereignis wird der Wert von Variable pZellwert mit dem aktuellen Wert in Zelle A1 verglichen. Und dan sich ja nun Wert in A1 geändert hat, erscheint eine Messagebox mit dem Hinweis, dass sich der Wert geändert hat.
Der Variablen pZellwert wird sofort der neue Wert aus A1 zugewiesen, damit bei einer erneuten Änderung in A1 dies sofort bemerkt wird.

Konnte ich helfen?

Ciao
Thorsten


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Macro soll automatisch starten"