Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: BowervanLichtenstein am August 27, 2016, 21:39:07 Nachmittag

Titel: Office 2016 Makro wird bei Benutzung bestimmter Routinen nicht in der Makroliste angezeigt
Beitrag von: BowervanLichtenstein am August 27, 2016, 21:39:07 Nachmittag
Sehr geehrte Office Community,

ich möchte, dass in Excel beim Verändern vom Wert in Feld 1 oder Feld 2 in Feld 3 sein Wert = seinem Wert + dem neu eingegebene Wert von Feld 1 oder Feld 2 berechnet wird.
Wenn Feld 3 z.B. B1 ist, kommt eine Fehelermeldung wenn ich sage =B1 + B2.
In anderen Foren hieß es, dass man das nur mit einem Makro realisieren kann. Also habe ich folgendes Makro geschrieben:

Dim Wert As Double
Dim Gehalt As Double
Dim Bafög As Double

 
Sub Worksheet_Change(ByVal Target As Excel.Range)
  Wert = Worksheets("Tabelle1").Cells(3, 9).Value
       
        If Target.Address = "$B$3" Then
         Gehalt = Worksheets("Tabelle1").Cells(3, 2).Value
         Wert = Wert + Gehalt
         Cells(3, 9).Value = Wert
         
     End If

    If Target.Address = "$B$5" Then
         Bafög = Worksheets("Tabelle1").Cells(5, 2).Value
         Wert = Wert + Bafög
         Cells(3, 9).Value = Wert
         
    End If
   
   
End Sub
-
-
-
-
Leider wird mir dieses nicht in der Makroliste angezeit und ich verstehe nicht warum  :-\.
Wenn ich über die Sub Guthaben() z.B. Sub blabal()     End Sub schreibe so wird es in der Makroliste mit blabla angezeigt.

Aber Warum wird denn das Makro so nicht angezeigt??

Ich freue mich auf hilfreiche Antworten

Lg


Titel: Antw:Office 2016 Makro wird bei Benutzung bestimmter Routinen nicht in der Makroliste angezeigt
Beitrag von: maninweb am August 28, 2016, 09:11:01 Vormittag
Hallo,

der Grund ist, dass in der Makroliste nur Prozeduren angezeigt werden, die kein Argument beinhalten,
das an das Makro übergeben werden muss - in diesem Fall ByVal Target As Excel.Range. Denn woher
soll die Makroliste wissen, was zu übergeben ist?

Nebenbei, Worksheet_Change ist eigentlich der Name eines Ereignisses, welches dann ausgelöst wird,
wenn eine Zelle in einer Tabelle geändert wird, also der Aufruf erfolgt automatisch. Das geht aber nur,
wenn Worksheet_Change im Codemodul zu der Tabelle steht - nicht in einem Standardmodul.

Falls Du lieber den Aufruf manuell hättest, sollest Du einen anderen Prozedurnamen wählen, z.B. wie
Du schon genannt hattest: Sub Gehalt.

Möchtest Du den Automatismus haben, dann lege Worksheet_Change ... in das Codemodul der
Tabelle ab.

Gruß
Titel: Antw:Office 2016 Makro wird bei Benutzung bestimmter Routinen nicht in der Makroliste angezeigt
Beitrag von: BowervanLichtenstein am August 28, 2016, 21:26:23 Nachmittag
Vielen Dank für die Antwort