Msgbox ja,nein,vllt

hallo,
hab in der spalte E begriffe in G die übersetzung und in M eine erklärung dazu. jetzt möchte ich in einem fenster das wort aus z.b. E1 die übersetzung G1 und die erklärung aus M1 angezeigt bekommen und dazu die drei möglichkeiten zur auswahl JA (in N1 soll ein 1 rein), NEIN (in N1 soll eine 0 rein) oder VIELLEICHT (in n1 soll ein x rein) zur auswahl haben. ich hoffew meine erklärung war einigermaßen aufschlussreich.

vielen vielen dank im voraus

Hallo Roland,

Eine Standart ja/nein/vielleicht Box gibt e nicht. Dazu bastel dir einfach ein eigenes Userform mit den benötigten Buttons. Da hinter legst du dann deinen Programmcode.

Liebe Grüße

OVM

das Fenster ist einfach eine msgbox, diese kann mit ok und cancel bestätigt werden, wenn „vielleicht“ auch noch dabei sein soll brauchst Du ein „form“ mit den entsprechenden „Buttons“

Gruss

Hier stellen sich gleich mehrere Fragen:

  1. Wie soll die Abfrage gestartet werden? Wie schon OVΜuеller sagt, geht es am leichtesten über eine Userform. Aber auch die braucht, gleich wie die MsgBox, erstmal einen Auslöser zum starten.
  2. Werden immer nur die Daten aus der ersten Zeile abgefragt? Wenn nein, dann:
  3. Wie erkennt Excel, welche Zeile du abfragen möchtest?

oder möchtest du pro Zeile drei Optionsfelder einfügen und die dann auswerten? Das wäre dann eine andere Geschichte.

Das Schreiben des erhaltenen Wertes in N1 erledigst du mit Range(„N1“).Value=0 bzw. 1, od.„x“

vielen dank für die schnellen antworten.
ich hab mich schon gedacht dass es nicht so einfach ist. wie würde das ganze denn nur mit ja/nein aussehen?

das makro sollte in der ersten zeile beginnen und in der 20000 aufhören. nachdem ich jede zeile bearbeiten muss dachte ich mit einem fenster in welchem ich nur ja oder nein zu klicken brauch geht es schneller wie wenn ich in jede zeile (z.b. N1) ja/nein rein schreib.

mfg roland

Hallo,
was meinst Du mit „in einem Fenster“?
Gruß
Brandis

Wenn ich das richtig verstanden habe, dann brauchst du das Makro nur als einmalige Hilfe. Dann ist es relativ einfach. Diese MsgBox hat drei Buttons ja, nein, abbrechen (anstelle von vielleicht). Nachteil ist, dass du die gesamte Liste abarbeiten musst, damit das Makro beendet wird. Du sprichst von 20000 Zeilen. Ich habe es so gemacht, dass die effektiv verwendeten Zeilen festgestellt werden:

Sub abarbeiten()

zeilen = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row 'zählt die benutzten Zeilen in Spalte E

For x = 1 To zeilen 'Schleife
begriff = Range(„E“ & x).Value 'liest die Begriffe für die MsgBox aus
uebers = Range(„G“ & x).Value
beschreibung = Range(„M“ & x).Value
i = MsgBox(begriff & " : " & uebers & " : " & beschreibung, vbYesNoCancel, "Abfrage " & x)
Select Case i ’ wertet den gdrückten Button aus
Case 7
ergebnis = 0
Case 6
ergebnis = 1
Case 2
ergebnis = „x“
End Select
Range(„N“ & x).Value = ergebnis 'schreibt das Ergebnis in die Spalte N
Next x

End Sub

Kopiere das Makro in ein Modul und starte es von dort. Ich hoffe das hilft dir weiter
LG Rudi

hat super funktioniert, nur kann ich es leider nicht abbrechen wenn ich es gestartet hab. wäre gut wenn es nach 500 zeilen immer automatisch abbrechen würde.
trotzdem viel dank. das erleichtert mir meine arbeit wirklich:smile:

mfg roland

Hallo
Versuche es mit dem Befehl SVERWEIS. Er ist sehr gut dokumentiert und könnte Dir in Abhilfe verschaffen.
Grüsse Sebastian

vielen vielen dank für eure ganzen ratschläge. ich verwende das oben beschriebene makro. und beende es einfach mit strg pause
mfg roland

Hier die Variante mit Abbruchmöglichkeit nach jeder 500sten Zeile und Wiederaufnahme nach der letzten ausgefüllten Zeile.

Sub abarbeiten()

zeilen = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row 'zählt die benutzten Zeilen in Spalte E
ausgefuellt = ActiveSheet.Cells(Rows.Count, 14).End(xlUp).Row 'zählt die ausgefüllten Zeilen in Spalte N
If ausgefuellt > 1 Then ausgefuellt = ausgefuellt + 1

For x = ausgefuellt To zeilen 'Schleife ab der letzten ausgefüllten Zeile

begriff = Range(„E“ & x).Value 'liest die Begriffe für die MsgBox aus
uebers = Range(„G“ & x).Value
beschreibung = Range(„M“ & x).Value
i = MsgBox(begriff & " : " & uebers & " : " & beschreibung, vbYesNoCancel, "Abfrage " & x)
Select Case i ’ wertet den gedrückten Button aus
Case 7
ergebnis = 0
Case 6
ergebnis = 1
Case 2
ergebnis = „x“
End Select
Range(„N“ & x).Value = ergebnis 'schreibt das Ergebnis in die Spalte N

If x / 500 = Int(x / 500) Then ’ fragt nach jeder 500sten Zeile nach, beliebig veränderbar
a = MsgBox(„Möchtest du eine Pause machen?“, vbYesNo, „Abbruch“)
If a = 6 Then Exit Sub
End If

Next x
End Sub

da kann ich leider nicht weiterhelfen