Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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
Random Antworten aus Zellen
20.09.2022 08:23:59
Steffen
GuMo ihr lieben,
ich komme gerade bei einem Problemchen nicht weiter und wäre für Hinweise dankbar.
Ich habe vor einigen Tagen mal angefangen mit einem Code den ich aus dem Forum (von Nepomuk) habe rumzuspielen und eine Art Chatbot zu basteln.
Jetzt agiert der Chatbot noch relativ simpel, er nimmt aus Tabelle1 A:A Fragen die aus Textbox2 ausgegeben werden und gleicht die Frage mit der Antwort ab die in Zellen B:B hinterlegt sind.
Um das ganze etwas cooler zu gestalten hätte ich gerne das er per zufallsverfahren auch eine Antwort geben kann, ich meine damit das er Antworten nicht nur aus Zellenreihe B:B nimmt sondern auch aus den Zellen daneben C:C, D:D,E:E,F:F er soll immer nur per Zufall dann sich entscheiden eine Zelle auszugeben zwischen B:B bis F:F
Ist das umsetzbar?
Ich habe Onkel Google bereits gefragt und hier auch mal im Forum gestöbert und bisher leider keinen gescheiten Beitrag hierzu gefunden.
Ich poste mal einen Teil vom Code hier rein:

Dim objCell As Range
If TextBox1.TextLength = 0 Then
Application.Speech.Speak "Oh. Du hast anscheinend vergessen deine Frage zu stellen.", SpeakAsync:=True
'Call MsgBox("Bitte einen Suchtext eingeben.", vbExclamation, "Hinweis")
Else
Set objCell = Worksheets("Tabelle1").Columns(1).Find(What:=TextBox1.Text, _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If objCell Is Nothing Then
TextBox2 = "Darauf habe ich keine Antwort."
Application.Speech.Speak "Tut mir leid, darauf habe ich keine Antwort.", SpeakAsync:=True
Else
TextBox2 = objCell.Offset(0, 1).Value
Application.Speech.Speak TextBox2.Value, SpeakAsync:=True, Purge:=True
Set objCell = Nothing
End If
Liebe Grüße
Steffen

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

Betreff
Datum
Anwender
Anzeige
AW: Random Antworten aus Zellen
20.09.2022 09:12:00
{Boris}
Hi Steffen,

Else
TextBox2 = objCell.Offset(0, WorksheetFunction.RandBetween(1, 5)).Value
VG, Boris
AW: Random Antworten aus Zellen
20.09.2022 10:10:17
Steffen
Danke Boris!
Das ist genau das was ich gesucht habe, jippi!
Kann ich noch evtl. eine if schleife einbauen frage ich mich gerade = wenn leer dann nur zelle anwählen wo inhalt drin ist?
LG
AW: Random Antworten aus Zellen
20.09.2022 10:20:49
{Boris}
Hi,
wenn sichergestellt ist, dass mindestens eine der 5 Nachbarzellen einen Inhalt hat, dann deklariere zu Beginn noch eine Variable mit:
Dim lngAntwort As Long
Und hier dann:

Else
Do
lngAntwort = WorksheetFunction.RandBetween(1, 5)
Loop Until objCell.Offset(0, lngAntwort)  ""
TextBox2 = objCell.Offset(0, lngAntwort).Value
....
Wenn alle Nachbarzellen leer sind, läuft Do Loop in eine Endlosschleife - das muss Du ausschließen können.
VG, Boris
Anzeige
Abbruch, falls keine Antwort vorhanden ist
20.09.2022 10:27:27
{Boris}
Hi,
die Endlosschleife kannst Du so vermeiden, falls es tatsächlich auch mal keine Antworten gibt:

Else
If WorksheetFunction.CountA(objCell.Offset(0, 1).Resize(1, 5)) Then
Do
lngAntwort = WorksheetFunction.RandBetween(1, 5)
Loop Until objCell.Offset(0, lngAntwort)  ""
Else
MsgBox "Keine Antworten vorhanden"
Exit Sub
End If
TextBox2 = objCell.Offset(0, lngAntwort).Value
....
VG, Boris
Nachtrag
20.09.2022 10:32:32
{Boris}
Hi,
ich gehe davon aus, dass in den (vermeintlich) leeren Zellen keine Leerstrings "" vorhanden sind, die z.B. via Formel zurückgegeben werden, denn ANZAHL2 (CountA) zählt diese Zellen sehr wohl, wohingegen die Prüfung auf ungleich "" so eine Zelle als leer interpretiert.
Wenn "" bei Dir ausgeschlossen ist, dann ist es aber gut.
VG, Boris
Anzeige
Funktioniert einwandfrei vielen Dank!
20.09.2022 11:05:44
Steffen
Danke Boris, dass war genau die Lösung die ich gesucht habe, einfach brilliant, vielen Dank!

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige