Excel VBA - Wert auslesen?
Mein Problem:
Mit dem ersten Makro wird ein Wert in Zelle A1 geschrieben.
In einem weiteren Makro will ich nun diesen Wert auslesen mit Worksheets("Blatt1").Cells(1, 1).Value = i. Wenn ich das mache steht danach in Zelle A1 aber eine 0 und nicht mehr der vorige Wert. Was ist falsch?
1 Antwort
Ist ja klar. Du weist den Wert der Variable "i" der Zelle zu (in diesem Falle 0).
Wenn du den Wert abfragen und in einer Variable speichern möchtest, müsstest du es umkehren:
i = Worksheets("Blatt1").Cells(1, 1).Value
Das hört sich nicht nach einer Schleife mit zwei Bedingungen an, sondern nach einer Bedingung (If) und einer Schleife (For). Z.B.:
Sub Test()
Dim i As Integer
If MsgBox("Frage", vbYesNo) = vbYes Then
For i = 1 To 10
Debug.Print i
Next i
Else: 'was auch immer
End If
End Sub
Hilft Dir das?
Danke für die Hilfe, das ist es fast denke ich. Es muss eben noch ein Loop dazu, damit ich nach einem Durchgang erneut gefragt werde in der MsgBox und der Durchgang für das nächste i stattfindet. Ich hoffe man versteht was ich meine... Meine Idee war ungefähr siehe unten: Problem: Es durchläuft dann nur die For Schleife ohne mich erneut zu fragen
Sub Test()
Dim i As Integer
Do while MsgBox("Frage", vbYesNo) = vbYes
For i = 1 to 10
Cells(i ,1).Value
Next i
MsgBox("Frage", vbYesNo)
Loop
End Sub
Nein, ich verstehe leider nicht, was Du vorhast. Beschreibe doch mal, wie das für den Nutzer ablaufen soll.
Vielleicht: Er wird gefragt, sagt ja, die Schleife läuft; Er wird nochmal gefragt, sagt ja, die Schleife läuft; usw. ; Er wird gefragt, sagt NEIN und Ende? Das wäre z.B.:
Sub Test()
Dim i As Integer
Do While MsgBox("Frage", vbYesNo) = vbYes
For i = 1 To 10
Debug.Print i
Next i
Loop
End Sub
Habe gerade noch ein anderes Problem. Ich möchte eine Schleife/Loop bei der zwei Bedingungen vorkommen.
Zum einen muss die Antwort der vorigen MsgBox "yes" sein (soweit kein Problem) und zudem muss das i von 1 bis 10 laufen. Wie kann ich das zusammenfassen in eine Schleife/Loop?