Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
VBA WennDann + Variable
Pascal
Guten Abend zusammen,
die letzte Stunde habe ich mir am folgendem Problem die Zähne ausgebissen :(
Ich versuche in einen relativen Zellbereich eine Wenn-Dann Abfrage reinzubauen.
Folgende Formel funktioniert auch:
Range(Cells(38, 12 + j), Cells(964, 12 + j)).FormulaR1C1 = "=IF(RC100.0001,-1,""0""))"
Sobald ich aber versuche die 0.0001 als Variable in die Formel zu schreiben, kommt immer ein Laufzeitfehler 1004. Könnt ihr mir vll sagen, was ich falsch mache?

Range(Cells(38, 12 + j), Cells(964, 12 + j)).FormulaR1C1 = "=IF(RC10" & x & ",-1,""0""))"

Vielen Dank im Voraus!!!
Gruß Pascal

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Dezimalpunkt und Komma
13.07.2010 20:59:05
Erich
Hi Pascal,
das hat mit den verschiedenen Sprachen und Dezimaltrennern zu tun.
Du willst eine Formel auf Englisch (mit IF für WENN) schreiben. Excel erwartet dann den Dezimalpunkt.
Wenn du x als Double deklariert hast und x = 0.0001 setzt, ist das in VBA normal und ok.
Wenn du dann aber " & x & " schreibst, wird x in einen String umgewandelt, der ein Dezimalkomma enthält.
Probier das mal auf einem leeren Blatt aus:

Sub abc()
Dim x As Double, strX As String
x = 0.0001
strX = x
MsgBox strX ' hier siehst du das Komma
Range(Cells(1, 1), Cells(1, 2)).FormulaR1C1 = _
"=IF(RC100.0001,-1,""0""))"
On Error Resume Next
' Die nächsten beiden Anweisungen sind fehlerhaft:
Range(Cells(2, 1), Cells(2, 2)).FormulaR1C1 = _
"=IF(RC10" & x & ",-1,""0""))"
Range(Cells(3, 1), Cells(3, 2)).FormulaR1C1 = _
"=IF(RC10" & x & ",-1,""0""))"
On Error GoTo 0
' Ab hier ok
Range(Cells(4, 1), Cells(4, 2)).FormulaR1C1 = _
"=IF(RC10" & _
Replace(x, ",", ".") & ",-1,""0""))"
strX = Replace(x, ",", ".")
MsgBox strX ' hier siehst du den Punkt
Range(Cells(5, 1), Cells(5, 2)).FormulaR1C1 = _
"=IF(RC10" & strX & ",-1,""0""))"
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
noch eine kleine Korrektur
13.07.2010 21:01:44
Erich
Hi, die Anweisung für Zeile 3 war nicht die richtige.
Die richtige (und nicht funktionierende) Anweisung ist

Range(Cells(3, 1), Cells(3, 2)).FormulaR1C1 = _
"=IF(RC10" & strX & ",-1,""0""))"
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: VBA WennDann + Variable
13.07.2010 21:01:48
silex1
Hallo Pascal,
ich bin der VBA Vollpfosten schlecht hin, aber eine Formel mit ner Variablen, geht nur dann, wenn die Variable über NAMEN auch definiert ist.
Sicher hast Du auch deswegen noch keine Antwort, weil Du nur ne Zeile Deines Codes hier postest.
VG, Rene
@Rene: stimmt nicht
13.07.2010 21:06:26
Erich
Hi Rene,
"eine Formel mit ner Variablen, geht nur dann, wenn die Variable über NAMEN auch definiert ist":
Nein. Eine VBA-Variable hat nix zu tun mit Excel-NAMEN, muss auch nicht.
"keine Antwort, weil Du nur ne Zeile Deines Codes hier postest"
Nein. Das war sogar gut - genau um diese Zeile geht es ja, da ist das Problem.
Und zum Verständnis werden keine weiteren Zeilen gebraucht.
Grüße von Erich aus Kamp-Lintfort
Anzeige
@Erich: silex1=VBA Vollpfosten! ;-)
13.07.2010 21:20:06
silex1
Hallo Erich,
Danke für Deine Richtigstellung!
Bin wie gesagt zu doof für VBA.
Das allerdings manches geht, was bei Formeln nicht so ist, wird mir immer bewusster!
Leider hab ich auch keinen Draht zu VBA, da mir manches unlogisch erscheint, was füre Euch als VBA Profis logisch ist!
Hab auch nix versucht, da es m.E. auch für VBA nicht so etwas gibt wie den Formeleditor.
VG, Rene
AW: DANKE!!!!!!!!
13.07.2010 22:27:10
Pascal
Guten Abend Erich!
Der von dir gepostete Code funktioniert einwandfrei und hat mir wieder was beigebracht :)
Aber da wär ich im Leben nicht draufgekommen, dass beim string der Punkt zu einem Komma gewandelt wird... Naja, jetzt klappts jedenfalls!
Silex1 auch dir vielen Dank für deine Beiträge. Konntest mir leider nicht beim Problem helfen, aber du hast mir wenigstens ein lächeln ins Gesicht gezaubert. Mir hat damals (vor 2 Monaten) ein Einsteigerbuch über VBA geholfen. Den Rest such ich mir meist hier im Forum oder google zusammen!
Vielen Dank für Eure Hilfe!
Schönen Abend,
Pascal
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige