Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro innerhalb von Grenzen ausführen

Makro innerhalb von Grenzen ausführen
02.12.2015 15:49:41
Grenzen
Hallo,
ich habe nachfolgend Code.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bSuccess As Boolean
On Error Resume Next
bSuccess = Range("B13").GoalSeek(0, Range("C13"))
On Error GoTo 0
If Not bSuccess Then
MsgBox "Goal Seek Failed for Cell ""X""!"
End If
End Sub

Wie kann ich den Code so anpassen, dass der Code erst ab der Anfangsmarke Anfang bis zur Endmarke Ende ausgeführt wird.
Die Anfangsmarke/Endmarke wird über den Namensmanager laufen.
Für alle Zeilen dazwischen sollte immer die Berechnung erfolgen.
Besten Dank.
Gruß

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro innerhalb von Grenzen ausführen
02.12.2015 16:08:04
Grenzen
Hi Katja,
etwa so:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bSuccess As Boolean
If Not Intersect(Target, Range("Anfang", "Ende")) Is Nothing Then
MsgBox "auskommentierten Code ausführen"
'    On Error Resume Next
'    bSuccess = Range("B13").GoalSeek(0, Range("C13"))
'    On Error GoTo 0
'    If Not bSuccess Then
'        MsgBox "Goal Seek Failed for Cell ""X""!"
'    End If
End If
End Sub
Die Msgbox war nur zum Testen, und Deinen eigenen Code mußte halt wieder "entkommentieren".
Schöne Grüße,
Michael

Anzeige
AW: Makro innerhalb von Grenzen ausführen
02.12.2015 16:13:21
Grenzen
Danke,
und wie schaffe ich es noch, dass die Bezüge, B13 und C13 auch Zeilen weise mit geändert werden.
Sprich in Zeile 14 sollte es dann heissen B 14 und C 14.
Das Ganze aber dann nur innerhalb der Grenzen.
Verstehst du was ich will?

ich denke schon
02.12.2015 17:05:38
Michael
Hi Katja,
dann sieht es so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bSuccess As Boolean
Dim zeile As Long
If Not Intersect(Target, Range("Anfang", "Ende")) Is Nothing Then
zeile = Target.Row
MsgBox "auskommentierten Code ausführen für Zeile " & zeile
'    On Error Resume Next
'    bSuccess = Range("B" & zeile).GoalSeek(0, Range("C" & zeile))
'    On Error GoTo 0
'    If Not bSuccess Then
'        MsgBox "Goal Seek Failed for Cell ""X""!"
'    End If
End If
End Sub
Die zuletzt bearbeitete Zelle wird von Excel in der Variable Target zur Verfügung gestellt.
Da kann man alles mögliche rauslesen (die Eigenschaften des Range-Objekts; drücke im VB-Editor mal die F2-Taste, dann kommst Du in die Objektliste - mit F7 geht's wieder zurück zum Code), also etwa
Target.Row, Target.Column, Target.Address usw.
In der Code-Zeile bSuccess= ... habe ich die "festen" Zeilennummern durch die Variable Zeile ersetzt.
Schöne Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige