Registriert seit: 25.09.2014
Version(en): 2013
Hallo Freunde,
ich habe im Büro folgendes Problem. In Spalte A steht bei mir eine Artikelliste mit folgendem Format:
mehrstellige Zahl & Artikel
Die mehrstellige Zahl varriert dabei. Mal steht eine Zahl vor dem Artikel, mal auch 10 Zahlen.
Ich bräuchte einen VBA Code, der mir in Spalte B die Anzahl der Zahlen vor dem eigentlichen Artikel
anzeigt. Für euch sicherlich kein Problem, für mich leider mal wieder der sprichwörtliche Berg vor
dem ich stehe.
Vielen Dank im voraus.
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
sieh Dir das mal an:
http://excelformeln.de/formeln.html?welcher=100einfach noch Länge davor, schon hast du´s
Mit wechseln könnte man die zahl auch gleich entfernen.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo,
probiere mal msgbox val(cells(1,1).value)
Mit Val liefert Excel-VBA den numerischen Wert am Anfang einer Zeichenkette.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 25.09.2014
Version(en): 2013
Hallo Andre,
Deine Idee ist schon mal super. Doch wir brauchen noch eine kleine Ergänzung.
Mit einem Kollegen zusammen habe ich Deinen Code so umgeschrieben:
Code:
Sub Mehrstellig()
Debug.Print Val(Cells(5, 1).Value)
End Sub
Richtigerweise wird immer die Zahl ausgegeben. Wir brauchen aber die Länge des Zahlenstrings
also bei Ausgae 123 Länge 3 , 10000 Länge 5.
Das Problem setzen wir Len davor, also Len (Val(Cells(5, 1).Value)) geht's nicht.
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
dann so:
Code:
Sub Laenge()
Dim i As Long
For i = 1 To 100
Cells(i, 2) = Len(Str(Val(Cells(i, 1).Value))) - 1
Next
End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 25.09.2014
Version(en): 2013
Hallo Edgar,
danke für Deinen Lösungsvorschlag. Aufgrund der Typenunverträglichkeit die der Compiler meldet hatten wir
die Sache so gelöst:
Code:
Sub Mehrstellig()
'Länge einer mehrstelligen Zahl ermitteln
a = Val(Cells(5, 1).Value)
Debug.Print Len(a)
End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Edgar,
danke für die Ergänzung, die Länge hatte ich doch glatt überlesen. Allerdings ist Deine Ergänzung nicht ganz korrekt, wenn führende Nullen vorkommen.
Ich vermute aber, dass das hier nicht relevant ist - wenn doch, müsste sich der Fragesteller nochmal melden, das bekommen wir - Excel sei dank

- auch noch gebacken.
Den Formelansatz habe ich mir noch nicht angeschaut.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
mit führender Null z.B. so?:
Code:
Sub Laenge()
Dim i As Long, j As Long
Dim strT As String, strZ As String
For i = 1 To 2
strZ = Cells(i, 1).Value
If IsNumeric(strZ) Then
strT = strZ
Else
Do
j = j + 1
strT = Left(strZ, j)
Loop While IsNumeric(strT) And j < Len(strZ)
End If
Cells(i, 2).Value = Len(strT) + (j > 0)
j = 0
Next
End Sub
Gruß Uwe
Registriert seit: 25.09.2014
Version(en): 2013
Hallo Uwe und Andre,
hatte an die führende Null gar nicht gedacht ist aber ein guter und wichtiger Vorschlag. Gruß
von meinem Kollegen (hat mehr Ahnung als ich), der ist von eurem Forum begeistert.
Wir machen jetzt Feierabend.
Registriert seit: 12.04.2014
Version(en): 2003
Hallo!
Ohne VBA
Tabelle1 | A | B |
1 | 456789 hjk | 6 |
2 | 012 asdfgh | 3 |
Formeln der Tabelle |
Zelle | Formel | B1 | =FINDEN(" ";A1)-1 |
|
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4 Gruß
Wilfried