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

Forumthread: zahlen und Buchstaben sortieren

zahlen und Buchstaben sortieren
05.04.2016 18:53:24
Wolfgang
Schönen Abend
Bitte um Hilfe
ich habe bis jetzt Zahlen von A1 übernommen
und mit dem Macro "write numbers" sortiert
jetzt habe ich Zahlen mit Buchstaben z.b "32ab"
da funktioniert das Macro nicht mehr.
Kann mir da wer bitte helfen?
Testdatei: https://www.herber.de/bbs/user/104782.xls
Danke und Liebe Grüsse
Wolfgang

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zahlen mit Buchstaben sind keine Zahlen
05.04.2016 18:59:28
lupo1
... oder bist Du in der Lage, 1 und 5b zu addieren?

AW: zahlen und Buchstaben sortieren
05.04.2016 19:27:04
Wolfgang
Hallo
Danke für die Rückmeldung
das Problem das ich habe ist das:
das Macro Sortiert mir die Zahlen von 1 bis 50 nach A2 abwärts
weiter gehts bei B2 mit 51,C2 mit 101, usw.
bei alphanumerischen steigt das Macro mit Laufzeitfehler aus
was muss ich im Macro ändern dass es läüft?
Danke
LG wolfgang

Anzeige
AW: zahlen und Buchstaben sortieren
05.04.2016 19:39:21
Wolfgang
noch offen

AW: zahlen und Buchstaben sortieren
05.04.2016 19:52:05
Luschi
Hallo Wolfgang,
was soll den mit den Werten 38ab, 131ab, 408ab usw. geschehen?
- Text hinter der Zahl abschneiden
- gesamten Wert verwerfen
- am Anfang/Schluß einfügen
fragt sich Luschi
aus klein-Paris

AW: zahlen und Buchstaben sortieren
05.04.2016 20:12:15
Wolfgang
Hallo Luschi
Danke für deine Antwort
Die Zahlen sollen nur in der Tabelle
ausgegeben werden und danach ausgedruckt werden, es wird damit nicht weitergerechnet.
Es können bis zu 680 Zahlen werden.
Wenns nicht geht oder zu viel Aufwand ist kann man halt nix machen.
Lg Wolfgang

Anzeige
AW: zahlen und Buchstaben sortieren
05.04.2016 20:57:45
Luschi
Hallo Wolfgang,
leider hast Du keiner meiner 3 Fragen beantwortet; dweshaltb nochmal:
in A1 steht: 45ab, 32, 14, 8za
Wie soll jetzt das Ergebnis aussehen?
- 8, 14, 32, 45
- 14 32
- 8az,14, 32, 45ab
- 8az, 45ab, 14, 32
- 14, 32, 8az, 45ab ?
fragt sich immer noch
Luschi aus aklein-Paris

Anzeige
AW: zahlen und Buchstaben sortieren
06.04.2016 18:48:55
Wolfgang
Hallo Luschi
Entschuldige bitte die späte Rückmeldung.
Das Problem hat sich mittlerweile erledigt.
Michael hat mir den Code geschrieben,
ich habe mich leider unverständlich ausgedrückt, auch da bitte
ich um Verzeihung.
Die Daten von Zelle A1 wollte ich eins zu eins auf Spalten
aufgeteilt haben
Lg Wolferl

Anzeige
Zahlen und Buchstaben schreiben
06.04.2016 04:41:18
Michael
Hi zusammen,
ich glaube, der Betreff war verkehrt: es geht gar nicht ums SORTIEREN, denn sortiert sind die Werte bereits, sondern nur um das spaltenweise schreiben.
Das funktioniert so:
Option Explicit
Private Sub CommandButton1_Click() 'writeNumbers()
Dim intStringPos As Integer
Dim intStringPosEnd As Integer
Dim lngNumberInString As Long, i As Long
Dim strNumber As String, strWert As String, strZwischen As String, Ziffer&
Dim intTrgCol As Integer: intTrgCol = 1
Dim intTrgRow As Integer: intTrgRow = 2
Dim intStep As Integer: intStep = 50
strNumber = .Cells(1, 1)
For intStringPos = 1 To Len(strNumber)
intStringPosEnd = InStr(intStringPos, strNumber, .Cells(1, 2))
If intStringPosEnd = 0 Then Exit Sub
'   lngNumberInString = Mid(strNumber, intStringPos, intStringPosEnd - intStringPos)
strWert = LTrim(Mid(strNumber, intStringPos, intStringPosEnd - intStringPos))
strZwischen = ""
For i = 1 To Len(strWert)
Ziffer = Asc(Mid(strWert, i, 1))
If Ziffer > 47 And Ziffer  intStep Then
intTrgCol = intTrgCol + 1
intTrgRow = 2
intStep = intStep + 50
End If
.Cells(intTrgRow, intTrgCol) = strWert
intTrgRow = intTrgRow + 1
intStringPos = intStringPosEnd
Next intStringPos
End Sub
Schöne Grüße,
Michael
P.S.: schon mal was von split gehört? Hier das Gleiche nochmal mit Array zur Demonstration:
Option Explicit
Sub writeArray()
Dim intStringPos As Integer
Dim intStringPosEnd As Integer
Dim intTrgCol As Integer: intTrgCol = 1
Dim intTrgRow As Integer: intTrgRow = 2
Dim intStep As Integer: intStep = 50
Dim a As Variant
Dim i&, j&, Ziffer&
Dim strZwischen$
a = Split(Range("A1"), Range("B1"))
For i = LBound(a) To UBound(a)
strZwischen = ""
a(i) = LTrim(a(i))
For j = 1 To Len(a(i))
Ziffer = Asc(Mid(a(i), j, 1))
If Ziffer > 47 And Ziffer  "" Then
Ziffer = strZwischen * 1
If Ziffer > intStep Then
intTrgCol = intTrgCol + 1
intTrgRow = 2
intStep = intStep + 50
End If
Cells(intTrgRow, intTrgCol) = a(i)
intTrgRow = intTrgRow + 1
intStringPos = intStringPosEnd
End If
Next
End Sub

Anzeige
AW: Zahlen und Buchstaben schreiben
06.04.2016 18:51:43
Wolfgang
Hallo Michael
Danke,Das ist genau das was ich wollte
Lg Wolferl
P.S.: schon mal was von split gehört?nein leider nicht

AW: Zahlen und Buchstaben schreiben
07.04.2016 09:24:37
Michael
Hi Wolferl,
freut mich, wenn ich Dein Problem richtig verstanden hatte...
Naja, split kannste ja in der Excel-Hilfe oder gugeln. Damit wird ein Text nach einem anzugebenden Trennzeichen in einzelne Häppchen zerlegt, die wiederum in ein Array geschrieben werden.
Näheres z.B. hier: http://www.online-excel.de/excel/singsel_vba.php?f=20
und zu Arrays hier: http://www.online-excel.de/excel/singsel_vba.php?f=152
LTrim schneidet übrigens Leerzeichen am Anfang eines Strings ab, Trim am Ende.
Also macht split("a, b, c",",") ein Array mit "a", " b" und " c", wobei mit LTrim die beiden führenden Leerzeichen bei b und c rausfliegen.
Schöne Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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