Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellinhalt per Zufall auswählen

Zellinhalt per Zufall auswählen
Tim
Hallo,
ich habe ein Tabelle mit ca. 500 Einträgen in Blatt3, Spalte A.
Gibt es eine Möglichkeit, per VBA zufällig einen dieser Einträge auszuwählen ?
Ich suche nach einer Möglichkeit, dass beim Start eines Makros ein beliebiger Wert aus dieser Liste ausgewählt und dann in eine bestimmte Zelle (z.B. H1) kopiert wird.
Vielen Dank im Voraus für jeden Tipp dazu.
VG, Tim
Anzeige
kurze Rückfrage
24.06.2012 17:49:14
Matze,Matthias
Hallo Tim,
ich werds mal versuchen ob ich das hinbekomme,
ich würde aber eine frei Spalte im Blatt3 benötigen um dort kurzeitig Daten auszulesen
- welche Spalte ist dort frei?
Gruß Matze
AW: kurze Rückfrage
24.06.2012 17:56:25
Tim
Hallo Matze,
vielen Dank dafür - das ist klasse !
Auf Blatt3 sind alle Spalten ab T frei.
VG, Tim
Anzeige
AW: Zufallszahl mit VBA ...
24.06.2012 19:13:06
Tim
Hallo Matthias,
vielen Dank dafür !
Das sieht gut aus aber klappt diese Lösung nur mit Zahlen oder auch mit Text ?
VG, Tim
Anzeige
und warum probierst Du es nicht ? ;-) owT
24.06.2012 19:16:50
Matthias
AW: und warum probierst Du es nicht ? ;-) owT
24.06.2012 19:23:55
Tim
sorry !
Das funktioniert super - und das bei dem kurzen Code, klasse ! :-)
Noch eine Frage dazu:
Gibt es eine Möglichkeit, dass evtl. vorhandene Leerzellen nicht ausgewählt werden ?
VG und vielen Dank dafür, Tim
ja klar ...
24.06.2012 20:06:29
Matthias
Hallo
... hier eine Variante (es gibt ja mehrere Möglichkeiten)
Option Explicit
Sub Zufall()
Dim Wert
Randomize 'Zufallsgenerator initialisieren
nochmal:
Wert = Int((Rnd * 500) + 1)
With Tabelle3   'CodeName! der Tabelle
If .Cells(Wert, 1).Value  "" Then
.Range("H1") = .Cells(Wert, 1).Value
.Range("H6") = Wert
.Range("B2:B500").ClearContents 'Demobereich leeren
.Cells(Wert, 2) = "x" 'nur um zur Demo!
Else
GoTo nochmal
End If
End With
End Sub
Gruß Matthias
Anzeige
AW: ja klar ...
24.06.2012 20:28:47
Tim
Hallo Matthias,
vielen Dank dafür - das ist klasse und klappt super !! :-)
VG und einen schönen Abend noch,
Tim
AW: ja klar ...
25.06.2012 07:53:12
Tim
Hallo Matthias,

da ich mit VBA noch recht am Anfang bin, habe ich noch zwei kleine Rückfragen zu Deinem letzten Code:
:-)
1) Wenn ich die Demo mit dem X nicht benötige, kann ich die 3 Zeilen vor Else löschen, richtig ?
2) Wie muss ich den Code ändern, wenn die Ausgangswerte nach wie vor in Blatt3, Spalte A stehen, ich den Zufallswert aber in Blatt9, B3 angezeigt haben möchte ?
VG, Tim
Anzeige
das sieht dann so aus ...
25.06.2012 08:19:11
Matthias
Hallo Tim
Option Explicit
Sub Zufall()
Dim Wert
Randomize 'Zufallsgenerator initialisieren
nochmal:
Wert = Int((Rnd * 500) + 1)
With Tabelle3   'CodeName! der Tabelle
If .Cells(Wert, 1).Value  "" Then
Tabelle9.Range("B3") = .Cells(Wert, 1).Value
Else
GoTo nochmal
End If
End With
End Sub



Beachte bitte das ich mit den CodeNamen der Registerblätter arbeite
Gruß Matthias
Anzeige
AW: das sieht dann so aus ...
25.06.2012 08:28:56
Tim
Hallo Matthias,
vielen Dank für die schnelle Hilfe - auch das klappt bestens !!
VG und einen schönen Tag noch, Tim
weitere Rückfragen
24.06.2012 19:07:48
Matze,Matthias
Hi Tim,
wodurch soll das Makro ausgelöst werden,
- wenn die Tabelle aufgerufen wird?
- über einen Butoon ?
- wenn du was änderst auf dem Tabellenblatt?
Frage zu Spalte A : was enthält die ,Werte? Text? sind dort auch Leerzellen?
VG Matze
Anzeige
AW: weitere Rückfragen
24.06.2012 19:15:52
Tim
Hallo Matze,
auslösen würde ich es mit einem Button in einer UserForm.
Spalte A enthält nur Text ohne Leerzeilen dazwischen, es können sich jedoch Leerzeilen am Ende befinden.
Ideal wäre, wenn das ganze bis Zeile 1000 gehen würde, wobei aktuelle nur 1 bis 500 Text enthalten - so würden auch künftige Ergänzungen berücksichtigt.
VG, Tim
Anzeige
AW: weitere Rückfragen
24.06.2012 19:35:05
Tim
Hallo Matze,
nur zur Info: Ich glaube, Matthias hat schon eine ganz einfache Lösung dafür gefunden - noch nicht ganz getestet aber bislang siehts gut aus.
VG, Tim
@Matthias L. - Hi Namensvetter
24.06.2012 20:07:50
Matze,Matthias
Hallo Matthias u. Tim,
ja ich hatte den gleichen Gedankengang mit dem Zufallsprinzip,
allerdings komme ich momentan mit der leerZelle nicht weiter, des halb hier meine Frage an Matthias L.
Kann ich die Randomize erneut anstoßen? so das ein Wert sooft zufallerzeugt bis eine Zelle in SpalteA größer "" ist.
Habe schwierigkeiten diese Schleife hinzu bekommen.
gruß Matze
Anzeige
Lol da ist die Antwort schneller ,...
24.06.2012 20:10:02
Matze,Matthias
da wie ich hier schreiben kann...
Over and Out....
Nacht Matze
;-) kwT
24.06.2012 20:10:35
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt per Zufall auswählen in Excel


Schritt-für-Schritt-Anleitung

Um einen zufälligen Wert aus einer Liste in Excel auszuwählen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDateiName)", wähle Einfügen und dann Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub Zufall()
       Dim Wert As Integer
       Randomize 'Zufallsgenerator initialisieren
       nochmal:
       Wert = Int((Rnd * 500) + 1)
       With Tabelle3   'CodeName! der Tabelle
           If .Cells(Wert, 1).Value <> "" Then
               Range("H1") = .Cells(Wert, 1).Value
           Else
               GoTo nochmal
           End If
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle Zufall und klicke auf Ausführen. Der zufällige Wert wird in Zelle H1 eingefügt.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Stelle sicher, dass du den richtigen Datentyp in der Variablen Wert verwendest. Beispiel: Dim Wert As Integer.

  • Fehler: "Zelle leer"
    Wenn die gewählte Zelle leer ist, wird das Makro endlos weiterlaufen. Achte darauf, dass deine Liste in Spalte A keine Leerzellen enthält, oder implementiere eine Abbruchbedingung.

  • Fehler: "Zugriff auf geschützte Zelle"
    Überprüfe, ob die Zelle, in die du den Wert einfügen möchtest, nicht geschützt ist.


Alternative Methoden

Es gibt auch andere Möglichkeiten, um einen zufälligen Wert in Excel auszuwählen, ohne VBA zu verwenden:

  1. Verwendung von ZUFALLSZAHL() und INDEX():

    • Wenn deine Daten in Spalte A stehen, kannst du die folgende Formel verwenden:
      =INDEX(A1:A500, RANDBETWEEN(1, COUNTA(A1:A500)))
    • Diese Methode funktioniert, um zufällig einen Wert aus einer Liste auszuwählen.
  2. Verwendung von ZUFALLSZAHL() in einer Hilfsspalte:

    • Füge in Spalte B die Formel =ZUFALLSZAHL() ein und sortiere dann die Daten nach dieser Spalte. Der erste Eintrag in Spalte A ist dann dein zufälliger Wert.

Praktische Beispiele

Hier sind einige Beispiele, wie du den Code anpassen kannst:

  • Um den Zufallswert in eine andere Zelle zu kopieren: Ändere die Zeile .Range("H1") = .Cells(Wert, 1).Value zu .Range("B3") = .Cells(Wert, 1).Value, um den Wert in B3 auf Blatt9 zu speichern.

  • Um Werte über 1000 Zeilen zu berücksichtigen: Ändere die Formel Wert = Int((Rnd * 500) + 1) zu Wert = Int((Rnd * 1000) + 1).


Tipps für Profis

  • Nutze die Funktion Randomize, um sicherzustellen, dass dein Zufallswert bei jedem Aufruf unterschiedlich ist.
  • Berücksichtige, dass Leerzellen in deiner Liste zu unerwarteten Ergebnissen führen können. Implementiere eine Schleife, die sicherstellt, dass nur gefüllte Zellen ausgewählt werden.
  • Du kannst das Makro auch an Trigger binden, wie z.B. einen Button in einer UserForm, um es benutzerfreundlicher zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro auslösen?
Du kannst das Makro manuell über ALT + F8 ausführen oder einen Button in einer UserForm verwenden, um es einfacher zu machen.

2. Funktioniert das auch mit Textwerten?
Ja, der Code funktioniert sowohl mit Zahlen als auch mit Text, solange die Zellen in Spalte A nicht leer sind.

3. Wie gehe ich mit Leerzellen um?
Der bereitgestellte Code überspringt Leerzellen automatisch, indem er die Schleife GoTo nochmal verwendet, um einen neuen Zufallswert zu generieren, bis ein gefüllter Wert gefunden wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige