Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Instr suche und Rückgabe

Instr suche und Rückgabe
01.12.2015 16:31:39
Julian
Hallo zusammen,
ich habe ein kleines Problem mit folgenden Code:
  • 
    Function tifs(Text As String, Zelle As Range) As String
    Dim F As String, r As String
    F = Zelle.Formula
    If InStr(1, F, Text)  0 Then
    ' r = InStr(1, F, "!")
    tifs = Mid(F, InStr(1, F, Text) + 6, InStr(1, F, "!") - 1)
    Stop
    End If
    End Function
    

  • und zwar gibt dieser einen Falschen Wert zurück.
    Hier soll eine Formel per VBA nach 2 Zeichen durchsucht werden. Einmal "LEFT" und einmal "!".
    Der Komplette Text der untersucht werden soll ist:
    =CONCATENATE("F ",LEFT('4'!B$6,3),"_",'4'!B12,"_",'4'!E$10)
    Ziel wäre es das Left zu finden und bis zum ersten ! auszulesen.
    Das zeigt er mir auch an das er das L von Left in der 19. Position gefunden hat und in der 27. Position das !. Allerdings gibt er mir den Text bis zum letzten Ausrufezeichen zurück.
    Kann mir da jemand helfen?

    3
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Instr suche und Rückgabe
    01.12.2015 16:46:33
    Michael
    Hi Julian,
    probier's mal damit:
    Option Explicit
    Function tifs(T1 As String, T2 As String, Zelle As Range) As String
    Dim p1&, p2&
    Dim F As String
    F = Zelle.Formula
    p1 = InStr(1, F, T1)
    tifs = "n.v."
    If p1  0 Then
    p2 = InStr(p1, F, T2)
    If p2  0 Then
    tifs = Mid(F, p1, p2 - p1 + 1)
    ' oder auch ohne das " + 1"
    End If
    End If
    End Function
    Sub aufrufen()
    MsgBox tifs("LEFT", "!", Range("B2"))
    End Sub
    
    Schöne Grüße,
    Michael

    AW: Instr suche und Rückgabe
    02.12.2015 08:25:34
    Julian
    Super Danke. Glaube ich erkenne auch meinen Fehler.

    Blattname aus Funktion ermitteln
    01.12.2015 17:22:07
    NoNet
    Hallo Julian,
    Das sieht mir nach einem Versuch aus, den referenzierten Blattnamen aus der Funktion zu ermitteln !?!?
    Du hast da aber einen kleinen Denk- bzw. Rechenfehler. Schau Dir mal folgendes Beispiel an :
     AB
    1Function :=CONCATENATE("F ",LEFT('4'!B$6,3),"_",'4'!B12,"_",'4'!E$10)
    2POS "Left"19
    3POS "!"27
    4Sheetname4

     AB
    1Function :=CONCATENATE('F ',LEFT('4'!B$6,3),'_','4'!B12,'_','4'!E$10)
    2POS 'Left'=SUCHEN('Left';B1)
    3POS '!'=SUCHEN('!';B1)
    4Sheetname=TEIL(B1;B2+6;B3-B2-7)

    Stand : 01.12.2015
    Tabelle erstellt mit : Tab2HTML AddIn
    © 2013-2015, NoNet - www.excelei.de



    Die Funktionen dazu :
    Und so sieht der entsprechende VBA-Code aus :
    Function tifs(strText As String, rngZelle As Range) As String
    Dim strF As String ', strR As String
    strF = Zelle.Formula
    If InStr(1, strF, strText)  0 Then
    tifs = Mid(strF, InStr(1, strF, strText) + 6, InStr(1, strF, "!") - 7 - InStr(1, strF,  _
    strText))
    End If
    End Function
    
    Salut, NoNet
    Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
    Exceltreffen 06.-08.05.2016 bei Bonn
    Landhaus Wieler - Hauptstr. 94-96 - D 53332 Bornheim
    http://www.hotelwieler.de


    http://www.exceltreffen.de/index.php?page=255
    Anmeldungen sind noch bis 31.01.2016 möglich ! - Schau doch mal rein !

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige