Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Werte zuweisen in VBA





Frage

Hallo, ich schreibe derzeit an einem Makor und möchte wissen wie ich einen Wert, den ich einer Variable zugewiesen habe, nach Prüfung durch z.B. if-Bedingung, einer Zelle in Excel zuweisen kann. Beispiel [code] sub Beispiel dim a1 as integer dim a2 as integer dim a3 as integer a1 = worksheets("book1").range("A1").value a2 = worksheets("book1").range("A2").value a3 = a1 + a2 if a3 < 1000 then MsgBox ("Der Wert ist zulässig") else [b]'Jetzt sollte der Wert der Zelle _ zugewiesen werden:[/b] worksheets("book1").range("A1") = 1000 worksheets("book1").range("A2") = 0 [b]'Ist das richtig???[/b] end if end sub [/code] Vielen Dank für die Mithilfe! Gruß Sebastian

Antwort 1 von coros

Hi Sebastian,

ja, das ist richtig, so wie Du es in dem Makro schon zu stehen hast. Wobei ich Deine Frage nicht verstehe. Das hättest Du doch ausprobieren können, dann hättest Du Dir alleine die Antwort geben können.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von sebastian1311

Hi Coros,
erstmal danke für deine schnelle hilfe!
Mein Makro -es ist mein erstes- ist etwas umfangreicher und gibt mir nicht die lösung zurück, die ich erwarte. so bin ich nun auf der suche nach möglichen fehlerquellen...
kennst du die solver funktion?

gruß
Sebastian


Antwort 3 von powder

Hallo Sebastian,

ich bin auch immer viel am probieren und mir hat dabei sehr geholfen Zwischenwerte einfach mit
Debug.Print

in das Direktfenster zu schreiben oder Makros mit F8 Schrittweise ablaufen zu lassen.

Ansonsten bei der Übergabe vielleicht noch mit .Value arbeiten

Grüße Tino


Antwort 4 von nighty

hi sebastian :)

vielleicht zum ueben :))

gruss nighty

Sub Beispiel()
If [a1+a2] < 1000 Then
MsgBox ("Der Wert ist zulässig")
Else
[a1] = 1000
[a2] = 0
End If
End Sub


Antwort 5 von nighty

hi sebastian :)

und noch eine nette variante :)

alle befehle mir vorangestellten punkt beziehen sich auf sheets(1),ohne diesen punkt auf das aktive sheet :))

gruss nighty

Sub Beispiel()
With Sheets(1)
If .[a1+a2] < 1000 Then
MsgBox ("Der Wert ist zulässig")
Else
.[a1] = 1000
.[a2] = 0
End If
End With
End Sub


Antwort 6 von sebastian1311

Hi alle zusammen!
Vielen Dank für die zahlreichen Hinweise!

Ich bin heute schon ein wenig weiter gekommen!

Gruß
Sebastian