Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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ß

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

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?

Anzeige
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

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige