Microsoft Excel

Herbers Excel/VBA-Archiv

InStr und Len anwenden

Betrifft: InStr und Len anwenden von: Halli Hallo
Geschrieben am: 23.09.2014 10:38:23

Hallo zusammen,

In einem Makro transportiere ich Daten von einem anderen Sheet in die Spalte I. Dabei suche ich nach einer ID (in diesem Fall 1004).
Spalte G sieht in dem neuen Sheet beispielsweise so aus: die ID kommt dabei immer zweimal vor, in der Mitte (durch Unterstriche verbunden) steht Information die ich im folgenden auslesen möchte.

1000_100_1000;1001_2,7_1001;1002_8_1002;1003_1,7_1003;1004_0_1004;
1004_3_1004;
110_20_110;1004_5_1004;111_16_111;

nun möchte ich in Spalte G, die getrennte Information zwischen den Unterstrichen der ID 1004 auslesen. Ergebnis der Spalte G soll also sein
0
3
5

könntet ihr mir dabei helfen, die gewünschte Information auszulesen? Spalte G kann unterschiedlich lang sein. ID ist bei mir im Code des vorhandenen Makros als String deklariert und wird anhand einer Box vom User eingegeben. Die eingegeben ID kann also im weiteren Code verwendet werden.

Liebe Grüße

  

Betrifft: AW: InStr und Len anwenden von: Hajo_Zi
Geschrieben am: 23.09.2014 10:45:45

das geht auch ohne VBA.

Tabelle10

 GH
11000_100_1000;1001_2,7_1001;1002_8_1002;1003_1,7_1003;1004_0_1004;0
21004_3_1004;3
3110_20_110;1004_5_1004;111_16_111;5
4hfhf 

verwendete Formeln
Zelle Formel Bereich N/A
H1:H4=WENNFEHLER(TEIL(G1;SUCHEN("1004_";G1)+5;1)*1;"")  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.13 einschl. 64 Bit



GrußformelHomepage


  

Betrifft: AW: InStr und Len anwenden von: Halli Hallo
Geschrieben am: 23.09.2014 10:57:09

Hallo Hajo,

Danke für deine schnelle Antwort!
Das funktioniert :) Allerdings habe ich zwei Probleme

- nur ganze Zahlen werden angezeigt (also z.B. nicht 0,3 in der Zeichenfolge 1004_0,3_1004)
- die ID (also 1004) soll ja variabel sein und durch den Benutzer eingegeben werden, wie kann ich das ohne Makro hinterlegen ohne die Zahl in einer Zelle hinterlegen zu müssen

Viele Grüße


  

Betrifft: AW: InStr und Len anwenden von: Hajo_Zi
Geschrieben am: 23.09.2014 11:04:45

ich erstelle die Lösung für das was im Beitrag steht und da Stand nichts von Komma Zahl, Die Zahl bestand nur aus einer Ziffer.
Das ist jetzt eine andere Aufgabe.
Gruß Hajo


  

Betrifft: AW: InStr und Len anwenden von: Peter
Geschrieben am: 23.09.2014 11:06:51

Hallo

Ein kleiner Demo-Code

Sub FindString()
    Dim myID As String
    Dim myString As String
    Dim myValue As String
    
    Dim a, e As Integer

    myID = "1004"
    myString = "1000_100_1000;1001_2,7_1001;1002_8_1002;1003_1,7_1003;1004_0,4_1004;"

    a = InStr(1, myString, myID & "_", vbTextCompare)
    If a > 0 Then 'ID gefunden
        a = a + Len(myID) + 1
        e = InStr(a, myString, "_" & myID, vbTextCompare)
        myValue = Mid(myString, a, e - a)
        Debug.Print myValue
    End If

End Sub