Makro automatisch starten



Excel-Version: XL10
nach unten

Betrifft: Makro automatisch starten
von: Mike
Geschrieben am: 03.05.2002 - 13:47:49

Hallo,
ich habe in einem Modul folgendes Makro stehen:
Option Explicit
Sub BerDopp()
Dim c As Range
Dim SuBe As String
Dim laR As Long
laR = Cells(Rows.Count, 1).End(xlUp).Row
SuBe = "A1:A" & laR
Range(SuBe).Interior.ColorIndex = xlNone
For Each c In Range(SuBe)
If WorksheetFunction.CountIf(Range(SuBe), c.Value) > 1 Then _
c.Interior.ColorIndex = 36
Next c
End Sub
Um es auszuführen, muss ich es über Alt + F8 starten.
Wie müsste es verändert und wohin geschrieben werden, damit es automatisch startet?

Gruß
Mike

nach oben   nach unten

Ereignisprozedur
von: Martin Beck
Geschrieben am: 03.05.2002 - 14:18:12

Hallo Mike,

das ginge als Ereignisprozedur. Die Frage ist bloß, bei welchem Ereignis das Makro automatisch starten soll, z.B. beim öffnen der Datei, beim Eintrag in eine (bestimmte?) Zelle, beim Wechsel des Tabellenblattes usw.

Gruß
Martin Beck


nach oben   nach unten

Re: Ereignisprozedur
von: Mike
Geschrieben am: 03.05.2002 - 14:33:32

Hi Martin Beck,
wenn ich Veränderungen in Spalte A vornehme, soll das Makro gleich ausgeführt werden.

Gruß
Mike


nach oben   nach unten

Re: Ereignisprozedur
von: Martin Beck
Geschrieben am: 03.05.2002 - 15:24:33

Hallo Mike,

folgenden Code dem Klassenmodul der Tabelle zuweisen (rechter Mausklick auf das Register und dann "Code zuweisen":


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim As Range
Dim SuBe As String
Dim laR As Long
If Target.Column = 1 Then
    laR = Cells(Rows.Count, 1).End(xlUp).Row
    SuBe = "A1:A" & laR
    Range(SuBe).Interior.ColorIndex = xlNone
    For Each c In Range(SuBe)
        If WorksheetFunction.CountIf(Range(SuBe), c.Value) > 1 Then _
        c.Interior.ColorIndex = 36
    Next c
End If
End Sub

Gruß
Martin Beck

nach oben   nach unten

Re: Ereignisprozedur
von: Mike
Geschrieben am: 03.05.2002 - 16:47:22

Hallo Martin,
irgenwie habe ich etwas durcheinandergebracht. Sorry.
Wie kann ich es anstellen, dass nachfolgendes Makro, das in einem allg. Modul steht, automatisch gestartet wird, wenn in Spalte A Veränderungen vorgenommen werden?
Jetzt muss ich das noch manuell über Alt+F8 starten.

Option Explicit
Sub InSpaltenTrennen()
Application.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
Dim c As Range
Dim t1 As String, t2 As String
For Each c In Selection
t1 = Left(c.Text, InStr(c.Text, ",") - 1)
t2 = Right(c.Text, Len(c.Text) - InStr(c.Text, ","))
t2 = Left(t2, Len(t2) - 1)
c.Offset(0, 1).NumberFormat = "@"
c.Offset(0, 1).Value = t1
c.Offset(0, 2).NumberFormat = "@"
c.Offset(0, 2).Value = t2
Next c
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder einschalten.
End Sub

Gruß
Mike


nach oben   nach unten

Re: Ereignisprozedur
von: Martin Beck
Geschrieben am: 04.05.2002 - 11:57:34

Hallo Mike


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
   Call InSpaltenTrennen   
End If
End Sub

Zuweisung siehe frühere message.

Gruß
Martin Beck


 nach oben

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