Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle in Sparte B in ufälliger Zeile markieren

Zelle in Sparte B in ufälliger Zeile markieren
17.04.2015 11:55:39
Ingo
Hallo
Ich habe eine Excel-Tabelle mit aktuelle ca. 700 Zeilen.
Ich möchte per Makro in Spalte B eine zufällige Zeile markieren.
Es soll also z.B. sozusagen einfach nur z.B. B347 oder B18 oder B[...] markiert werden.
So, als wenn ich dort mit der Maus hin klicke.
Es sollen dabei nur die gefüllten Zeilen berücksichtigt werden.
Also die Zeilen, in denen in Spalte B auch ein Wert ist.
Zur Zeit sind das Zeile 2-712.
Das ändert sich aber immer wieder mal.
Das Makro soll also bei seiner Zufalls-Zeilen-Auswahl selbstständig gucken, dass nur die aktuelle gefüllten Zeilen berücksichtigt werden.
Ist sowas mit einem "einfachen" Makro überhaupt machbar?
Und wenn ja, gibt es da evtl. schon was fertigen?
Oder ist das eine extrem komplizierte Angelegenheit?
Gruß
Ingo

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle in Sparte B in ufälliger Zeile markieren
17.04.2015 11:59:58
Ingo
Ich hbe hier schon was gefunden:
Sub Zufall()
Dim ZZahl
Randomize
zzahl1 = Int((712 * Rnd))  'Zufallszahl wird ermittelt
i = "B" & zzahl1 'Das B wird davorgeschrieben
Range(i).Select 'Zufalls-Zelle wird ausgewählt
End Sub
Aber da muss ich im Code ja noch angeben (hier 712), welcher Bereich berücksichtigt werden soll.
Das Makro soll aber selber gucken, welche Zeilen in Spalte B einen Wert haben und eben nur diese bei der Zufallsauswahl berücksichtigen.
Könnt Ihr mir helfen, dass in dem Code noch zu ergänzen?

AW: Zelle in Sparte B in ufälliger Zeile markieren
17.04.2015 12:12:08
Alexander
Hallo Ingo
probier mal das
Sub ZufaelligeZelle()
Dim lngZahl As Long
Dim lngRow As Long
'letzte beschriebene Zeile ermitteln
lngRow = Cells(Rows.Count, 2).End(xlUp).Row
'Zufallszahl generieren
lngZahl = Int((lngRow * Rnd) + 1)
'Ueberpruepfen ob in der Telle was steht und ob die
'Zufallszahl ungleich 1 ist
If Not Cells(lngZahl, 2).Value = "" _
And lngZahl  "1" Then
'Zelle auswaehlen
Cells(lngZahl, 2).Select
End If
End Sub
Gruß
Alex

Anzeige
AW: Zelle in Sparte B in ufälliger Zeile markieren
17.04.2015 12:30:34
Ingo
Hallo Alex
Oh ja vielen Dank.
Das funktioniert super.
Aber ich fürchte, ich habe da doch noch einen Denkfehler gemacht.
Könnte man noch folgende Bedingung ergänzen?
Zusätzlich zu der bisherigen Bedingung bezüglich Spalte B sollen nur die Zeilen berücksichtigt werden, bei denen in Spalte Q der Wert ungleich "A" ist.
Geht das?
Oder macht das die Sache jetzt womöglich doch extrem kompliziert?
Gruß
Ingo

AW: Zelle in Sparte B in ufälliger Zeile markieren
17.04.2015 12:50:42
Daniel
Hi
probiers mal so (für beide Bedingungen, Zelle nicht leer und in Spalte Q kein "A")
Dim Zeile as long
Do
Zeile = Worksheetfunction.RandBetween(2, Cells(Rows.Count, 2).end(xlup).Row)
if Cells(Zeile, 2).Value  "" then If Cells(Zeile, "Q")  "" then Exit Do
Loop
Cells(zeile, 2).activate
der Code produziert solange Zufallszahlen, biss eine passende Zelle gefunden wird (achtung, Endlosschleife möglich, wenn es keine passende Zelle gibt).
Weitere Bedingungen kannst du mit zusätzlichen IFs hinzufügen.
Gruß Daniel

Anzeige
AW: Zelle in Sparte B in ufälliger Zeile markieren
17.04.2015 13:37:50
Ingo
Wunderbar ... perfekt ... vielen Dank Euch beiden für die tolle und schnelle Hilfe!!!

AW: Zelle in Sparte B in ufälliger Zeile markieren
19.04.2015 12:56:55
Ingo
Hallo Daniel
Nun habe ich doch nochmal eine Frage zu Deinem Code.
Und zwar eine Verständnis-Frage.
An welcher Stelle im Code wird denn geprüft ob in Spalte Q kein "A" ist?
Ich kapiere das irgendwie nicht.
Oder liegt da evtl. ein Fehler vor?
Gruß
Ingo

AW: Zelle in Sparte B in ufälliger Zeile markieren
19.04.2015 13:22:38
Alexander
Hallo Ingo, hallo Daniel,
Der Vergleich Spalte A und Q sollte wohl so aussehen.
Dim Zeile as long
Do
Zeile = Worksheetfunction.RandBetween(2, Cells(Rows.Count, 2).end(xlup).Row)
if Cells(Zeile, 2).Value "" then If Cells(Zeile, "Q") Cells(Zeile, "A") then Exit Do
Loop
Cells(zeile, 2).activate
@Daniel: ich habe mir erlaubt dir vorzugreifen.
Gruß
Alex

Anzeige
AW: Zelle in Sparte B in ufälliger Zeile markieren
20.04.2015 14:11:13
Daniel
ist OK.
ich bin ja auch nicht immer da oder habe lust zu antworten und dann ist es ja gut, wenn der Fragesteller trotzdem eine Antwort bekommt.
Gruß Daniel

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige