Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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
Inhaltsverzeichnis

Zahlengenerator

Zahlengenerator
08.01.2018 15:21:22
urmila
Hallo liebe Community,
erst einmal ein frohes und gesundes neues Jahr.
Ich hoffe ihr könnt mir weiterhelfen.
Ich bin auf der Suche nach einer Lösung zum Generieren von zahlen, und zwar die sich hochzählt.
an folgendes habe ich gearbeitet aber es funktioniert nicht richtig:

Dim tZahl as Variable, tAnzahl, hR
tZahl = Me.tbxZahl.value
'die Zahlen können unterschiedlich sein (also 1-30+ Stellig) 100236562563254120; 100005; 15;
tAnzahl = me.tbxAnzahl.value
'hier bestimmt man wieviele Zahlen generiert werden sollen
For hR = 0 To tAnzahl
MsgBox = tZahl + hR
Next hR
Beispiel
Zahl: 100000598
Anzhl: 50
Ergebnis: 100000998, 100000999, 100001000, 100001001, 100001002, 100001003 etc.
Die Sache hier ist dass die Nullen am Anfang immer ignoriert werden, wenn ich den String teilen würde.
(hier fügt er einfach die Zahl hinzu oder bei einer zB 20-stelligen Zahl meldet er "Überlauf"
Über Eure Hilfe würde ich mich sehr freuen.
Danke und LG
Urmila

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlengenerator
08.01.2018 16:14:22
Rudi
Hallo,
so geht das:
  Dim tZahl As Long, tAnzahl As Long, hR As Long
tZahl = Me.tbxZahl.Value
'die Zahlen können unterschiedlich sein (also 1-30+ Stellig) 100236562563254120; 100005; 15;
tAnzahl = Me.tbxAnzahl.Value
'hier bestimmt man wieviele Zahlen generiert werden sollen
For hR = 0 To tAnzahl - 1
MsgBox tZahl + hR
Next hR

Gruß
Rudi
AW: Zahlengenerator
10.01.2018 10:54:44
urmila
Hallo Rudi,
vielen lieben Dank für deine Hilfe.
ich habe diese jetzt als Long definiert aber wenn ich eine 20-stellige Zahl eingebe die hochgerechnet werden soll, kommt immer die Fehlermeldung Überlauf
Was mache ich da falsch?
Danke und LG
Urmila
Anzeige
AW: Zahlengenerator
10.01.2018 16:13:42
Hajo_Zi
Hallo Urmila,
Excel kennt nur 15 Stellen.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
AW: Zahlengenerator
10.01.2018 19:45:45
Piet
Hallo Urmila
durch Hajo habe ich auch wieder was dazu gelernt, er ist nun mal ein Excel Profi.
Tatsache ist, das wir kleinen Ratgeber aber immer wieder nach Tricks suchen, wie man solche Aufgaben trotzdem lösen kann, und nach der Devise verfahren - Computer sind doof, die kann man mit richtigem Wissen einfach austricksen!!
mein Vorschlag:
unterer Code prüft die Laenge (Len) der tZahl. Ist die mehr als 15 Stellen schneidet das Makro die vorderen Stellen einfach als Text String ab, und rechnet ganz normal mit der Restzahl. Bei der Ausgabe in die Zelle wird bei langen Zahlen die Linke Zahl (als String) wieder angehangen!!
Tatsache ist das Excel dann korrekte Zahlen bis 15 Stellen ausgibt, danach aber die Zahl als Text String!
Optisch sieht man das nicht, damit rechnen kann Excel nicht. Probier mal ob du damit zurecht kommst.
mfg Piet
PS Die tZahl Variabel muss auf Variant gesetzt werden, sonst kommt Laufzeitfehler!!
Sub Makro1_Excel_austricksen()
Dim tZahl As Variant, LZahl As String   'LZahl = Left Zahl (15 stellen Links als Text!!)
Dim tAnzahl As Long, hR As Long         'tZahl unbedingt auf Variant setzen
tZahl = "100236562563254120"   'Me.tbxZahl.Value
'die Zahlen können unterschiedlich sein (also 1-30+ Stellig) 100236562563254120; 100005; 15; _
tAnzahl = 10000 'Me.tbxAnzahl.Value
'hier bestimmt man wieviele Zahlen generiert werden sollen
'hier trickxst man Excel aus, 17 Stellen auf String setzen!!
If Len(tZahl) > 15 Then
'tAnzahl + 2 Stellen zum normalen Berechnen
LZahl = Left(tZahl, Len(tZahl) - Len(tAnzahl) - 2)
tZahl = Right(tZahl, Len(tAnzahl) + 2)
End If
For hR = 0 To tAnzahl - 1
Cells(hR + 5, 2) = tZahl & hR
If LZahl  "" Then Cells(hR + 5, 4) = "'" & CStr(LZahl & tZahl & hR)
Next hR
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige