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
| G | H |
1 | 1000_100_1000;1001_2,7_1001;1002_8_1002;1003_1,7_1003;1004_0_1004; | 0 |
2 | 1004_3_1004; | 3 |
3 | 110_20_110;1004_5_1004;111_16_111; | 5 |
4 | hfhf | |
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 |

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