Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

MsgBox mit variablen Text und davon abhängigen Ereignis





Frage

Hallo Leute! Ich schonwieder mit meiner nächsten Idee..nur leider keine Lösung :-(!!! Aber darum bin ich ja sooo froh euch hier gefunden zu haben. Also ich habe in Spalte A26 - A85 Namen.(Natürlich nicht zwingend alle ausgefüllt) Nun möchte ich beim öffnen des Sheets, eine MsgBox, die nacheinander abfragt:"War der Kollege _ Name aus Tabelle _ heute anwesend?" Über die JA / NEIN Feder soll dann entschieden werden, ob in die nächste freie Zelle rechts neben dem entsprechenden NAmen ein Kreuz kommt oder eben nicht. Diese MsgBox soll dann nacheinander alle abfragen, und wenn der letzte Name abgefragt ist, dann einfach verschwinden. Leider kann ich nur verbal danken, also tue ich dies schonmal im Voraus.. Gruß der Nore

Antwort 1 von Ahnan

Hallo,

also wenn ich das richtig verstanden habe:


Option Explicit

Private Sub Workbook_Open()
Dim i As Integer, erg As Integer

Sheets("Tabelle1").Activate
For i = 26 To 85
If ActiveSheet.Cells(i, 1).Value > "" Then
erg = MsgBox("War der Kollege " & ActiveSheet.Cells(i, 1).Value & " heute anwesend ?", vbQuestion + vbYesNo, "Heute anwesend ?")
If erg = vbYes Then
ActiveSheet.Cells(i, 2).Value = "X"
End If
End If
Next i
End Sub


Der Code muss in das Ereignis der Arbeitsmappe. Leere Zellen innerhalb von A26:A85 werden nicht abgefragt. Der Tabellenname, in der die Namen stehen, heißt bei mit "Tabelle1". Musst du bei Sheets("Tabelle1").Activate entsprechend ändern !

Gruss

Antwort 2 von JoeKe

Hallo Nore,

oder so:

Option Explicit

Sub abfrage()
Dim i As Integer, abfrage As String
For i = 26 to 85
If Range("A" & i).Value = "" Then i = i + 1
abfrage = MsgBox("War der Kollege " & Range("A" & i) & " heute anwesend?", vbYesNo)
If abfrage = vbYes Then Cells(i, 2) = "X"
Next
End Sub


MfG

JöKe

Antwort 3 von Noreia

Hallo Ahnan, Hallo JöKe!

Eure Lösungen funktionieren beide. Es gibt nur ein Problem, dass ich nicht bedacht habe. Die Zellen in denen kein Name steht, sind nicht leer, sondern da steht ne Funktion drin. Die MsgBox gibt demnach immer den Wert 0 zurück.

Gibt es da Abhilfe?

MFG Nore

Antwort 4 von Ahnan

Hallo,

vielleicht über die Zeichenlänge:
Alle Namen (in den Zellen), welche mehr als ein Zeichen lang sind, werden berücksichtigt. Also wird die Null ausgeschlossen. Allerdings würde auch jeder Name, der nur EIN Zeichen lang ist, ausgeschlossen. Aber solche Namen sind ja eher nicht zu erwarten:

Dim i As Integer, erg As Integer

Private Sub Workbook_Open()
Sheets("Tabelle1").Activate
For i = 26 To 85
If Len(Cells(i, 1)) > 1 Then
erg = MsgBox("War der Kollege " & ActiveSheet.Cells(i, 1).Value & " heute anwesend ?", vbQuestion + vbYesNo, "Heute anwesend ?")
If erg = vbYes Then
ActiveSheet.Cells(i, 2).Value = "X"
End If
End If
Next i
End Sub


Gruss

Antwort 5 von Noreia

So funktioniert es gut. Danke vielmals..und

bis zu meiner nächsten"IDEE"!!!

MFG Nore

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: