Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

Zahlen aus Text extrahieren

 

Aufgabenstellung:

In einer Liste (Zellbereich A1:A10) sind Texte mit Ziffern enthalten, siehe folgende Abbildung.

A
1 Der Preis Beträgt 25 Euro für diesen Artikel.
2 Der Preis Beträgt 55 Euro für diesen 4Artikel.
3 Der Preis Beträgt 190 Euro für diesen Artikel.
4 Der Preis Beträgt 110 Euro für diesen Artikel.
5 Der Preis Beträgt 74 Euro für diesen Artikel.
6 Der Preis Beträgt 49 Euro für diesen Artikel.
7 Der Preis Beträgt 5 Euro für diesen Artikel.
8 Der Preis Beträgt 83 Euro für diesen Artikel.
9 Der Preis Beträgt 145 Euro für diesen Artikel.
10 Der Preis Beträgt 17 Euro für diesen Artikel.

Aus dieser Liste sollen nun die einzelnen Zahlen ausgelesen und daneben in Spalte B geschrieben werden. Als Besonderheit gilt, dass nur Zahlen berücksichtigt werden dürfen, die innerhalb der Grenzen von 50 bis 150 liegen. Zahlen, die unter 50 bzw. über 150 liegen sollen nicht extrahiert werden.

 

Lösung:


Erfassen Sie folgende Prozedur in einem Modul-Blatt:

 

Sub ZahlenExtrahieren()
'** Auslesen von Zahlen zwischen 50 und 150 - Alle anderen Werte werden nicht
'** ausgelesen

'** Dimensionierung der Variablen
Dim strTxt As String
Dim varVal As Variant
For d = 1 To 10

'** Text Zelle auslesen
strTxt = Cells(d, 1).Text

'** Variable löschen
strval = ""

'** Durchlaufen aller Zeichen in der Zeile
For lngindex = 1 To Len(strTxt)

Select Case Asc(Mid(strTxt, lngindex, 1))

'** Prüfen, ob es sich um eine Zahl handelt
Case 48 To 57

'** Zahlen zusammensetzen
varVal = varVal & Mid(strTxt, lngindex, 1)

'** Prüfen, ob der Wert innerhalb der Grenzen liegt
If CDbl(varVal) >= 50 And CDbl(varVal) <= 150 Then
Cells(d, 2).Value = varVal
End If

Case Else
'** Variable löschen
varVal = ""

End Select

Next lngindex
Next d

End Sub


Diese Prozedur liest ausschließlich zusammenhängende Zahlen aus, welche innerhalb des angegebenen Wertebereichs von 50 bis 150 liegen.

 

Das Ergebnis sieht wie folgt aus:

 

A B
1 Der Preis Beträgt 25 Euro für diesen Artikel.
2 Der Preis Beträgt 55 Euro für diesen 4Artikel. 55
3 Der Preis Beträgt 190 Euro für diesen Artikel.
4 Der Preis Beträgt 110 Euro für diesen Artikel. 110
5 Der 1 Preis Beträgt 74 Euro für diesen Artikel. 74
6 Der Preis Beträgt 49 Euro für diesen Artikel.
7 Der Preis Beträgt 5 Euro für diesen Artikel.
8 Der Preis Beträgt 83 Euro für diesen Artikel. 83
9 Der Preis Beträgt 145 Euro für diesen Artikel. 145
10 Der Preis Beträgt 17 Euro für diesen Artikel.

 

Die Zahl 25 in Zeile 1, die Zahl 190 in  Zeile 3, die Zahl 49 in Zeile 6, die Zahl 5 in Zeile 7 und der Wert 17 in Zeile 10 wird bei der Auswertung nicht berücksichtigt, da die angegebenen Kriterien nicht erfüllt sind.

 

   

Relevante Artikel

  • Text in Kleinbuchstaben umwandeln

    101069     Das folgende Makro wandelt den Text im markierten Bereich in Kleinbuchstaben um.Sie müssen dazu einfach den Bereich markieren, den Sie umwandeln möchten. Anschließendwerden alle Texte im...

  • Hyperlinks per VBA auslesen

    101083 Mit diesem Makro können alle Hyperlinks eines definierten Zellbereichs ausgelesen werden. Das Makro durchforstet in diesem Beispiel die Spalte A und listet die Ergebnisse, also alle...

  • Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

    In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die folgende Abbildung zeigt die Ausgangssituation, also den...

  • ActiveCell: Fragen und Antworten

    101001   Frage im Spotlight-Forum zum Befehl ActiveCell: Hallo, warum funktioniert denn folgender VBA-Code nicht?     If ActiveCell = "exportiert" Then Sheets("Leistungsabruf").ActiveCell.Value = ""...

  • Absolute in relative Zellbezüge umwandeln und umgekehrt

    101067 Die folgenden Makros wandeln vorhandene Zellbezüge in absolute bzw. relative Bezüge um. Zur Umwandlung von relativen Zellbezüge in absolute Bezüge, kann das Makro "absolut" verwendet...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013