Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
576to580
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
576to580
576to580
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mit RND doppelte Einträge möglich oder nicht?

Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 22:21:45
Drazen
Hallo,
Ich lasse mir in eine Tabelle als "Schlüssel" für die Daten per VBA eine ZufallsZahl eintragen, niiedrigster Wert ist 1 und höchster 100.000 (da die Tabelle eh bei 65536 aufhört, dürfte das ja reichen. Nun meine Frage, ist es irgedwie möglich zu bestimmen, dass die ZufallsZahl nicht zwei mal in der gleichen Tabelle vorkommt?
Grüsse
Drazen

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 22:34:57
MichaV
Nabnd Drazen,
ist m.E. nicht möglich, denn dann wären es ja keine Zufallszahlen mehr. Warum nimmst Du nicht einfach aufsteigende Nummern von 1 bis 65536 als Schlüssel? Dann ist sicher, daß keine Zahl doppelt ist. Oder addiere eine Zufallszahl zum Vorgänger- Schlüssel....
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 22:39:23
Drazen
Hallo Micha,
ich nehme keine aufsteigende Zahlen, da ich ab und zu eine Zeile löschen muss, und das ganze wir über UFs angesteuert, die generierte ZufallsZahl dient eigentlich nur nachher zum erkennen und leichteren Finden des DatenSatzes. Ist schon OK so, ich hoffe es gibt keine Doppelten, hab zu wenig Erfahrung damit, Danke für Deine schnelle Antwort.
Grüsse
Drazen
Anzeige
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 22:56:03
Bert
Hi,
wie erzeugst du die Zahlen?
Bert
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 22:59:06
Drazen
Hi Bert,
freut mich dass ich immer wieder auf Dich und all die anderen TOP Leute hier treffe.
Ich mach das so:
Cells(xZeile, 28) = Int((99999 - 1 + 1) * Rnd + 1)
Code hab ich von Herbers CD geklaut ;-)
Grüsse
Drazen
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:04:16
Bert
Hi,
Poste mal bitte den Code mit Deklaration und Schleife.
Bert
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:08:23
Drazen
Hi,
ist nix Weltbewegendes, nur ein einfacher ZeileEintrag:

Private Sub cmdEintragen_Click()
Sheets("BESTELLUNG").Activate
Dim xZeile As Long
xZeile = Range("A65536").End(xlUp).Row + 1
Cells(xZeile, 1) = lblKundeI.Caption
Cells(xZeile, 2) = lblArtikelI.Caption
Cells(xZeile, 26) = Val(txtBestellNummer)
Cells(xZeile, 27) = CDate(txtBestellDatum)
If txtDelNotiz = "" Then
Cells(xZeile, 21) = 0
Else
Cells(xZeile, 21) = CDbl(txtDelNotiz)
End If
If txtMenge = "" Then Exit Sub
Cells(xZeile, 23) = CDbl(txtMenge)
Cells(xZeile, 24) = txtMassEinheit
Cells(xZeile, 25) = CDate(txtLieferTermin)
Cells(xZeile, 22) = txtAnmerkung
Cells(xZeile, 28) = Int((99999 - 1 + 1) * Rnd + 1)
txtMenge = ""
txtMassEinheit = ""
txtAnmerkung = ""
txtLieferTermin = ""
lblArtikelNummer = ""
lblArtikel = ""
lstArtikel.ListIndex = -1
cboKunde.Enabled = False
End Sub

Anzeige
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:19:56
Bert
Hi,
auf diese Weise kannst du Doppler nicht zu 100% vermeiden.
Ehrlich, ich hab den Zweck dieser Zufallszahl auch nicht verstanden.
Beschreib das mal in Pros, ggf. gibts ja eine andere Lösung.
Bert
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:24:45
Drazen
Hi,
ich brauch halt einen Key, mit dem ich in der Bestellung den Datensatz der Bestellung kennzeichne damit ich ihn später in der Rechnung verwenden kann, ich arbeite aber auch gerade an der Korrektur der Bestellung und da könnte dieser Key auch nützlich sein um den Datensatz eventuell zu löschen oder? Es kann natürlich auch eine Fortlaufende Zahl sein, was aber passiert wenn ich einen Datensatz lösche ich möchte dass sich dann alle Datensätze natürlich nach oben verschieben aber ihren "Schlüssel" beibehalten.
Grüsse
Drazen
Anzeige
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:33:57
Ramses
Hallo
Sorry, wenn ich mich einmische, aber warum nimmst du nicht
Cells(i,?) = Worksheefunction.MAX(Deine_Nummernspalte) + 1
Dann hast du aufsteigende, eindeutige Nummern ohne Doppler
Gruss Rainer
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:43:10
Drazen
Hallo Rainer,
ganz einfach weil ich diese Funktion bisher noch nicht gekannt habe, was mainst Du mit (Deine_Nummernspalte), muss ich da "AB1" angeben oder 28? Vieleicht eine Top Lösung, bitte nur um nähere Erklärung.
Grüsse
Drazen
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:46:56
Ramses
Hallo
das geht ganz einfach
Worksheetfunction.Max(range("A1:A10000")) + 1
Sucht den grössten Wert in A1:A10000 und addiert 1.
Fertig ;-)
Gruss Rainer
Anzeige
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:54:39
Drazen
Hi,
Prob. gelöst!!!
Vielen Dank für die ausführliche Hilfe an alle beide.
Grüsse
Drazen
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:55:13
K.Rola
Hallo Ramses,
schön, mal wieder von dir zu lesen.
Wußtest du übrigens, dass Worksheetfunction.FunctionXXX() bei einigen Funktionen
einen bug hat? Besser ist Application.FunctionXXX(), wenn auch nicht mehr dokumentiert
ist und obwohl die ja eigentlich in einer eigenen Klasse gekapselt sind.
Schönen Abend und Gruß K.Rola
AW: Mit RND doppelte Einträge möglich oder nicht?
02.03.2005 08:08:46
Ramses
Hallo K.Rola
Bin erstaunt gewesen welche Auswirkungen mein Beitrag imn OffTopic verursachte :-)
Trotzdem schön :-)
Danke für die Info, werde ich mir merken.
Mal sehen ob da für Application was finde. Muss ja irgendwo mal dokumentiert gewesen sein. Stehen im Application-Object eigentlich alle Worksheet-Function dann zur Verfügung ?
Gruss Rainer
Anzeige
AW: Mit RND doppelte Einträge möglich oder nicht?
02.03.2005 11:53:35
K.Rola
Hallo Ramses,
ab E 97 sind die Funktionen in der Klasse Worksheetfunction. Aus Kompatibilitätsgründen
sind sie auch weiterhin direkt der Application zugeordnet, werden dort aber im Objektkatalog nicht angezeigt. Nach meiner Erfahrung stehen in beiden Klassen
die identischen Function zur Verfügung.
Gruß K.Rola
AW: Mit RND doppelte Einträge möglich oder nicht?
01.03.2005 23:42:54
Bert
Hi,
"möchte dass sich dann alle Datensätze natürlich nach oben verschieben aber ihren "Schlüssel" beibehalten."
Das tun sie auch, wenns keine Zufallszahlen sind. Wenns dann aber unbedingt welche sein sollen, dann z.B. so:
Do
deineZelle = Int(Rnd * 99999 + 1)
Loop Until WorksheetFunction.CountIf(deinZellbereich, deineZelle) = 1
Bert
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige