Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
288to292
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
288to292
288to292
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Standardwert einsetzen

Standardwert einsetzen
03.08.2003 20:17:34
Franz W.
Guten Abend Forum,
versuche per VBA eine Formel einzusetzen:
In diesem Code aus einem normalen Modul klappts:
Sub HMKasseUmsetzen()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If [F3] < 12 Then
Range("F3").Value = Range("F3").Value + 1
Else
Range("F3").Value = 1
End If
Range("G38").Copy
Range("D7").PasteSpecial Paste:=xlValues
Range("B9,D9,B16:E35,G16:G34,C41").ClearContents
Range("G16").FormulaR1C1 = "=IF(RC[-5]=""Zimmermann & Kraus"",23.8,"""")"
Range("G16").Copy Destination:=Range("G18,G20,G22,G24,G26,G28,G30,G32,G34")
Range("B16").Select
ActiveSheet.Protect
End Sub

Nun versuche ich dasselbe im Modul der Tabelle. Und zwar soll die Formel nach dem Löschen eines eingetragenen anderen Wertes eingesetzt werden:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r%
r = Target.Row
For r = 16 To 34 Step 2
If Target.Address = Cells(r, 7) And IsEmpty(Target) = True Then _
Target.FormulaR1C1 = "=IF(RC[-5]=""Zimmermann & Kraus"",23.8,"""")"
Next
End Sub

Es tut sich aber leider gar nichts! Keine Fehlermeldung, kein Einsetzen der Formel?!? KÖnnt Ihr mir bitte helfen, wo mein Fehler liegt?
Vielen Dank im Voraus
Grüße
Franz

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Standardwert einsetzen
03.08.2003 20:50:54
Knut
If Target.Address = Cells(r, 7).address
Knut

AW: Standardwert einsetzen
03.08.2003 20:57:49
Wolfgang
Hallo,
Hmmm, bin ja nicht was du genau erreichen willst, aber die IF-Abfrage wird wohl NIE TRUE liefern, weil Cells(r, 7) einen Zellwert liefert, also Range(x, y).VALUE und du das mit einer Adresse vergleichst, also Target.Address .... du vergleichst also etwa einen Text in einer Adresse "Hugo" mit der Zelladresse "$G$16" - und das scheitert. Verwende statt dessen Cells(r,7).Address. Weiters verwende statt IsEmpty(target) mal target.value = "". Dann müsste es eigentlich klappen. Wobei das Problem aber dann sein dürfte, dass die Prozedur immer wieder aufgerufen wird, da ja der Wert geändert wurde.... naja, versuchs mal soweit....

Anzeige
@Knut und Wolfgann: hab's jetzt
03.08.2003 21:47:10
Franz W.
Hallo Knut, hallo Wolfgang,
vielen Dank für Eure Antworten und sorry, dass es so lange gedauert hat, bis ich mich wieder melde, hab ein bisschen rumprobiert.
Es lag sohl an der Kombination von dem Formeleinsetzen mit der For-Schleife. Hab jetzt die richtige Schreibweise gefunden und jetzt geht's:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r%
r = ActiveCell.Row
For r = 16 To 34 Step 2
If Target.Address = "$G$" & r And IsEmpty(Target) = True Then _
Target.FormulaR1C1 = "=IF(RC[-5]=""Zimmermann & Kraus"",23.8,"""")"
Next
End Sub

Vielen Dank Euch beiden und Grüße
Franz

Anzeige
Nochmal @Knut und Wolfgang
03.08.2003 22:11:16
Franz W.
Hallo Knut und Wolfgang,
sorry, wollte Eure Kompetenz nicht untergraben :-))) !!! Weiß nicht was ich vorher rumgemurkst habe. Hab's jetzt aber auch noch mal mit Eurer Lösung versucht, und nach einem Neuaufruf der Datei haut das jetzt genau so hin:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r%
r = ActiveCell.Row
For r = 16 To 34 Step 2
If Target.Address = Cells(r, 7).Address And IsEmpty(Target) = True Then _
Target.FormulaR1C1 = "=IF(RC[-5]=""Zimmermann & Kraus"",23.8,"""")"
Next
End Sub

Es klappt! Und zu Eurer Ehrrettung musste das jetzt noch gesagt werden ..... :-))
Nix für ungut und verschämte Grüße
Franz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige