Microsoft Excel

Herbers Excel/VBA-Archiv

Ziffern aus Text auslesen | Herbers Excel-Forum


Betrifft: Ziffern aus Text auslesen von: siegfried
Geschrieben am: 08.01.2010 09:54:46

Hallo zusammen,

ich habe in einer Liste Daten stehen, die aus Text und Ziffern bestehen.
Die Ziffern stehen durchgängig am Ende und sind immer durch einen Punkt getrennt.
Die Ziffern sind zwischen 1 bis 4 stellig.
z.B.
Test.27
Test.1
Test.124
Test.4096

Aus diesen Daten möchte ich per VBA in einer Schleife nur die Ziffern auslesen.
Dazu verwende ich den folgenden Code:

For Zähler = 1 To Meldg - RowGrEnde - 1
iRow = Range("E1").Offset(RowGrEnde + Zähler, 0).Value

For Zähler1 = 1 To Meldg - RowGrEnde - 1
If Right(Range("F1").Offset(RowGrEnde + Zähler1, 0).Value, _
Len(Range("F1").Offset(RowGrEnde + Zähler1, 0).Value) - _
Application.WorksheetFunction.Find(".", _
Range("F1").Offset(RowGrEnde + Zähler1, 0).Value)) = iRow Then
If RowGrEnde + Zähler1 größer RowGrEnde + GrFeld Then
Range("BD1").Offset(RowGrEnde + Zähler, 0).Value = RowGrEnde + Zähler1
Exit For
End If
End If
Next Zähler1
Next Zähler

Gelegentlich erhalte ich eine Fehlermeldung, dass die Find Function nicht ausgeführt werden kann.
Was mache ich falsch? Oder kennt jemand eine andere Methode zum Auslesen von Ziffern?

Gruß
Siegfried

  

Betrifft: AW: Ziffern aus Text auslesen von: ransi
Geschrieben am: 08.01.2010 10:03:40

Hallo

Möglichkeiten gibts da viele.
Ich nutze sowas:
Tabelle1

 ABC
1Test.2727 
2Test.11 
3Test.124124 
4Test.40964096 
51212 
6a12a  
7   

Formeln der Tabelle
ZelleFormel
B1=machs(A1)
B2=machs(A2)
B3=machs(A3)
B4=machs(A4)
B5=machs(A5)
B6=machs(A6)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Public Function machs(zelle)
Dim regex As Object
Dim objM As Object
machs = ""
Set regex = CreateObject("vbscript.Regexp")
With regex
    .Pattern = "[0-9]+$"
    Set objM = .Execute(zelle.Text)
    If objM.Count > 0 Then machs = objM(0).Value
End With
End Function



ransi


  

Betrifft: Ziffern aus Text auslesen ohne VBA von: Matthias L
Geschrieben am: 08.01.2010 10:03:42

Hallo

http://www.excelformeln.de/formeln.html?welcher=101

Gruß Matthias


  

Betrifft: AW: Ziffern aus Text auslesen ohne VBA von: siegfried
Geschrieben am: 08.01.2010 10:52:22

Hallo Ransi und Matthias,

eure Vorschläge trennen zwar die Ziffern vom Text, allerdings auch dann, wenn dazwischen kein Punkt steht. Dadurch kann ich beide Vorschläge nicht gebrauchen, weil in meiner Liste auch Text und Ziifern ohne Trennzeichen (Punkt) oder auch nur Text steht. Im übrigen benötigen beide Vorschläge ebenfalls die Find Function.

Gruß
Siegfried


  

Betrifft: Ausgangsdaten unklar !! von: ransi
Geschrieben am: 08.01.2010 11:04:59

Hallo

Jetzt wirds komisch....
ich habe in einer Liste Daten stehen, die aus Text und Ziffern bestehen.
Die Ziffern stehen durchgängig am Ende und sind immer durch einen Punkt getrennt.




weil in meiner Liste auch Text und Ziifern ohne Trennzeichen (Punkt) oder auch nur Text steht

Das beisst sich doch ?!?

ransi


  

Betrifft: AW: Ausgangsdaten unklar !! von: siegfried
Geschrieben am: 08.01.2010 11:25:09

Hallo Ransi und Matthias,
eure Aussage stimmt, sorry
richtig ist, dass bei den relevanten Daten, die Ziffern durch einen Punkt getrennt sind.

Gruß
Siegfried


  

Betrifft: AW: Ausgangsdaten unklar !! von: ransi
Geschrieben am: 08.01.2010 11:38:46

HAllo Siegfried

So ?

Tabelle2

 AB
1Test.2727
2Test.11
3Test.124124
4Test.40964096
51234 
6abc12abc 

Formeln der Tabelle
ZelleFormel
B1=machs(A1)
B2=machs(A2)
B3=machs(A3)
B4=machs(A4)
B5=machs(A5)
B6=machs(A6)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Public Function machs(zelle)
Dim arr
machs = ""
arr = Split(zelle.Text, ".")
If UBound(arr) > 0 Then
    If IsNumeric(arr(UBound(arr))) Then machs = CDbl(arr(UBound(arr)))
End If
End Function



ransi


  

Betrifft: AW: Ausgangsdaten unklar !! von: siegfried
Geschrieben am: 08.01.2010 15:04:38

Hallo Ransi,

Danke, Dein Ansatz mit der Function Split bringt mich weiter.

Siegfried


  

Betrifft: Sorry, aber ... von: Matthias L
Geschrieben am: 08.01.2010 11:09:24

Hallo

Zitat:
Die Ziffern stehen durchgängig am Ende und sind immer durch einen Punkt getrennt.
... dann war Deine Angabe falsch.

Gruß Matthias


  

Betrifft: =WENN(ISTZAHL(... von: Rudi Maintaire
Geschrieben am: 08.01.2010 12:12:09

Hallo,
=WENN(ISTZAHL(FINDEN(".";A1));TEIL(A1;FINDEN(".";A1)+1;99)+0;"")

Gruß
Rudi


  

Betrifft: AW: Ziffern aus Text auslesen ohne VBA von: Höttl Wilfried
Geschrieben am: 08.01.2010 10:57:00

Hallo!

Noch einige Formeln.

Test

 ABC
1Zahl vom Text links, rechts, mitte trennen  
2  Hilfsspalte
3Wein 96,981Text links96,981
4   
5Wein 96,981Text links96,981
6   
754,122   kleinText rechts54,122
8   
954,122   kleinText rechts54,122
10   
11öä 54,1245 äöText egal54,1245

Formeln der Tabelle
ZelleFormel
C3=RECHTS(A3;SUMMENPRODUKT(N(ISTZAHL(RECHTS(A3;SPALTE(2:2))*1))))*1
C5{=TEIL(A5;VERGLEICH(WAHR;ISTZAHL(TEIL(A5;SPALTE(1:1); 1)*1); 0); LÄNGE(A5))*1}
C7=LINKS(A7;SUMMENPRODUKT(N(ISTZAHL(LINKS(A7;SPALTE(6:6))*1))))*1
C9{=LINKS(A9;MAX(ISTZAHL(TEIL(A9;SPALTE(1:1); 1)*1)*SPALTE(1:1)))*1}
C11{=TEIL(LINKS(A11;MAX(WENN(ISTZAHL(TEIL(A11;SPALTE(1:1); 1)*1); SPALTE(1:1)))); VERGLEICH(WAHR;ISTZAHL(TEIL(A11;SPALTE(1:1); 1)*1); 0); LÄNGE(A11))*1}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


Gruß
Wilfried


Beiträge aus den Excel-Beispielen zum Thema "Ziffern aus Text auslesen"