Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Zahl aus Dateiname extrahieren | Herbers Excel-Forum


Betrifft: Zahl aus Dateiname extrahieren von: karl
Geschrieben am: 25.01.2012 13:53:12

Mahlzeit zusammen

Ich möchte aus einem Dateinamen eine Zahl extrahieren. die Namen können unter unterschiedlich sein.
Ich such das erste Vorkommen der Zahl
Per Formel und zum lernen bitte auch in vba.
Wie ich den Dateinamen in Zelle anzeige hab ich gefunden
Weiter komme ich aber nicht, habe die Split func. gefunden, aber weiter ????

https://www.herber.de/bbs/user/78595.xls

gruß
karl

  

Betrifft: Erste Zahl aus Dateinamen von: Erich G.
Geschrieben am: 25.01.2012 14:29:18

Hi,
per Formel - aus http://www.excelformeln.de/formeln.html?welcher=102 - so:

 B
178595
2 
31

Formeln der Tabelle
ZelleFormel
B1{=1*TEIL(LINKS(A1;MAX(ISTZAHL(TEIL(A1;SPALTE(1:1); 1)*1)*SPALTE(1:1))); VERGLEICH(1;ISTZAHL(TEIL(A1&0;SPALTE(1:1); 1)*1)*1;0); LÄNGE(A1))}
B3{=1*TEIL(LINKS(A3;MAX(ISTZAHL(TEIL(A3;SPALTE(3:3); 1)*1)*SPALTE(3:3))); VERGLEICH(1;ISTZAHL(TEIL(A3&0;SPALTE(3:3); 1)*1)*1;0); LÄNGE(A3))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen

(1* habe ich davorgeschrieben, damits eine Zahl wird und nicht Text bleibt.)

Und der Code könnte so aussehen:
Option Explicit    ' immer zu empfehlen

Private Sub CommandButton1_Click()
   Dim strName As String, ii As Integer, lngErg As Long
   
   strName = ThisWorkbook.Name
   Range("A10").Value = strName

   For ii = 1 To Len(strName)
      If IsNumeric(Mid$(strName, ii, 1)) Then
         lngErg = 10 * lngErg + CLng(Mid$(strName, ii, 1))
      Else
         If lngErg > 0 Then Exit For
      End If
   Next ii
   Cells(10, 2) = lngErg
End Sub

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Erste Zahl aus Dateinamen von: karl
Geschrieben am: 25.01.2012 14:34:40

Danke Erich, schon eingebaut.

Ich verwende das Makro, weil hierbei die Zahl auch eine andere sein kann.

karl


  

Betrifft: Danke für deine Rückmeldung, und ... von: Erich G.
Geschrieben am: 25.01.2012 14:42:23

Hi Karl,
noch eine kleine Einschränkung:

Das Mako läuft falsch, wenn die erste Zahl im Text nur einer oder mehreren Nullen besteht.
Wenn dahinter Text und dann wieder Ziffern kommen, werden diese Ziffern zum Ergebnis.

Um das zu vermeiden, müsste man einen (booleschen) Schalter einbauen, den man anstelle von "If lngErg > 0" abfragt.

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Danke für deine Rückmeldung, und ... von: karl
Geschrieben am: 25.01.2012 14:50:52

OK, danke für diese Info.
-Nullen sind nicht vorgesehen, aber gut zu wissen...

karl


Beiträge aus den Excel-Beispielen zum Thema "Zahl aus Dateiname extrahieren"