Mehrstellige Zahl vor Artikel
#1
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.
to top
#2
Hallo,

sieh Dir das mal an:

http://excelformeln.de/formeln.html?welcher=100

einfach noch Länge davor, schon hast du´s
Mit wechseln könnte man die zahl auch gleich entfernen.
Gruß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#3
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-2016)
to top
#4
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.
to top
#5
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ß
Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top
#6
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
to top
#7
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 Idea - 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-2016)
to top
#8
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
to top
#9
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.
to top
#10
Hallo!

Ohne VBA

Tabelle1

AB
1456789 hjk6
2012 asdfgh3
Formeln der Tabelle
ZelleFormel
B1=FINDEN(" ";A1)-1

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Gruß
Wilfried
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste