Thema Datum  Von Nutzer Rating
Antwort
11.11.2024 17:30:54 Simon
NotSolved
Blau VBA erstellen
12.11.2024 00:16:01 ralf_b
NotSolved
12.11.2024 12:24:53 Gast22584
NotSolved
12.11.2024 13:42:37 Gast23255
NotSolved
12.11.2024 19:02:37 ralf_b
NotSolved
12.11.2024 22:17:39 Gast18687
NotSolved
13.11.2024 07:05:15 ralf_b
NotSolved
13.11.2024 09:53:26 Simon
NotSolved
13.11.2024 11:43:44 Gast21099
NotSolved
13.11.2024 13:52:35 Simon
NotSolved
13.11.2024 15:18:41 Gast77708
NotSolved
13.11.2024 17:34:55 ralf_b
NotSolved
13.11.2024 17:58:45 Simon
NotSolved
13.11.2024 22:33:40 ralf_b
NotSolved
14.11.2024 14:22:28 Simon
NotSolved
14.11.2024 17:43:21 ralf_b
NotSolved
13.11.2024 11:39:49 Gast87178
NotSolved
13.11.2024 17:25:11 ralf_b
NotSolved

Ansicht des Beitrags:
Von:
ralf_b
Datum:
12.11.2024 00:16:01
Views:
65
Rating: Antwort:
  Ja
Thema:
VBA erstellen

das hier in ein allgemeines modul, und das makro klickmich dem Button zuweisen

Option Explicit

Function getnextuser(ByVal strMember As String, ByVal strTroopsof As String) As String
  ' sucht nach einem wort  und sucht ab dieser stelle nach dem zweiten suchwort.
  ' gibt dann das word nach dem zweiten suchwort zurück

    Dim objCBData As DataObject
    Dim pointer As Long, i As Integer, posmember As Long
    Dim strPN As String
    
    Set objCBData = New DataObject
    objCBData.GetFromClipboard
    strPN = objCBData.getText
    
    If strPN = "" Then getnextuser = "": Exit Function
    
    ' feststellen ob user in text
    posmember = pos_in_text(strPN, strMember)
    
    'wenn in text etwas gefunden wurde
    If posmember > 0 Then
        'pointer ist die stelle im test wo das suchwort steht
        ' ab posmember wird im text gesucht
       pointer = pos_in_text(strPN, strTroopsof, posmember)
    
       If pointer > 0 Then
            'wenn zweiter text vorhanden,dann wird das wort dannach zurückgegeben
            'oder ein leeres wort ""
            getnextuser = getText(Right(strPN, Len(strPN) - posmember), strTroopsof)
            Exit Function
       End If
   End If
   getnextuser = ""
End Function




Function getText(osel As String, strSuch As String) As String
'sucht ein wort in einem text und gibt das nächste wort zurück.
    Dim nextLeer As Long, pos As Long
                 
         'position des suchwortes im text
         pos = pos_in_text(osel, strSuch)
         If pos > 0 Then
            ' wenn an fundstelle ein leerzeichen steht
             If InStr(pos, osel, " ") = pos Then
                'wird ab dem nächsten zeichen nach einem leerzeichen gesucht
                nextLeer = InStr(pos + 1, osel, " ")
             Else
                'sonst ab diese r position suchen
                nextLeer = InStr(pos, osel, " ")
             End If
             'gibt den text zwischen den positionen im text zurück
             getText = Mid(osel, pos, nextLeer - pos)
         Else
            getText = ""
         End If
            
End Function

Function pos_in_text(suchtext As String, suchzeichen As String, Optional start As Long) As Long
'gibt die stelle im text zurück an der das gesuchte wort endet, sonst  0
    
    If IsMissing(start) Or start = 0 Then
        If InStr(suchtext, suchzeichen) = 0 Then
            pos_in_text = 0
            Exit Function
        Else
                   
             pos_in_text = InStr(suchtext, suchzeichen) + Len(suchzeichen)
            
        End If
     Else
        If InStr(start, suchtext, suchzeichen) = 0 Then
            pos_in_text = 0
            Exit Function
        Else
            
            pos_in_text = InStr(start, suchtext, suchzeichen) + Len(suchzeichen)
        End If
     End If
End Function


Sub klickmich()
  Dim stext As String
  Dim stmp As Variant, stxt, sresult As String
  Dim i&
  
  stext = "Body-name:;chairman-name:;members-all:"
  stmp = Split(stext, ";")
    
    For i = 0 To UBound(stmp)
        stxt = Split(stmp(i), "-")
        sresult = getnextuser(stxt(0), stxt(1))
        If InStr(1, sresult, """") > 0 Then
          Range("B3").Offset(, i) = Split(getnextuser(stxt(0), stxt(1)), """")(1)
        End If
          
    Next
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
11.11.2024 17:30:54 Simon
NotSolved
Blau VBA erstellen
12.11.2024 00:16:01 ralf_b
NotSolved
12.11.2024 12:24:53 Gast22584
NotSolved
12.11.2024 13:42:37 Gast23255
NotSolved
12.11.2024 19:02:37 ralf_b
NotSolved
12.11.2024 22:17:39 Gast18687
NotSolved
13.11.2024 07:05:15 ralf_b
NotSolved
13.11.2024 09:53:26 Simon
NotSolved
13.11.2024 11:43:44 Gast21099
NotSolved
13.11.2024 13:52:35 Simon
NotSolved
13.11.2024 15:18:41 Gast77708
NotSolved
13.11.2024 17:34:55 ralf_b
NotSolved
13.11.2024 17:58:45 Simon
NotSolved
13.11.2024 22:33:40 ralf_b
NotSolved
14.11.2024 14:22:28 Simon
NotSolved
14.11.2024 17:43:21 ralf_b
NotSolved
13.11.2024 11:39:49 Gast87178
NotSolved
13.11.2024 17:25:11 ralf_b
NotSolved