Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1792to1796
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

Inhalt aus erster Klammer kopieren

Inhalt aus erster Klammer kopieren
19.11.2020 13:26:52
Levi
Hallo Zusammen,
ich habe hier im Forum einen Beitrag gefunden (12 Jahre alt :D) zu dem ich eine Frage habe.
Wie lässt sich die untere Funktion so abändern, dass nicht der Inhalt der letzten Klammer, sondern der Inhalt der ersten Klammer kopiert wird?
Sub TextKlammern()
Dim wks As Worksheet, lngZeile As Long, strKlammerText As String
Const lngSpalteOrig = 1 'Spalte A
Const lngSpalteKlammer = 2 ' Spalte B
Set wks = ActiveSheet
With wks
For lngZeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
strKlammerText = TextausletzterKlammer(.Cells(lngZeile, lngSpalteOrig).Value)
If strKlammerText  "" Then
.Cells(lngZeile, lngSpalteKlammer) = strKlammerText
.Cells(lngZeile, lngSpalteOrig) = _
Replace(.Cells(lngZeile, lngSpalteOrig), "(" & strKlammerText & ")", "", 1)
End If
Next lngZeile
End With
End Sub

Function TextausletzterKlammer(strText As String) As String
If InStr(1, strText, ")") > 0 And InStr(1, strText, "(") > 0 Then
TextausletzterKlammer = Mid(strText, InStrRev(strText, "(", -1) + 1, _
InStrRev(strText, ")", -1) - InStrRev(strText, "(", -1) - 1)
End If
End Function

Viele Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt aus erster Klammer kopieren
19.11.2020 14:07:29
volti
Hallo Levi,
hilft Dir dieses hier weiter?
Code:
[Cc]

Function TextausErsterKlammer(strText As String) As String TextausErsterKlammer = Split(Split(strText & "(", "(")(1) & ")", ")")(0) End Function

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
Off topic
19.11.2020 14:19:25
RPP63
Off Topic, Karl-Heinz:
Welches VBA2HTML-Tool benutzt Du?
Ich nutze VBAhtml_Xl2007, finde Deins aber (wegen der zusätzlichen Features) besser.
Gruß Ralf
AW: Off topic
19.11.2020 14:41:42
Levi
Hallo Karl-Heinz,
funktioniert super, danke!
Kann man das ganze noch in eine Schleife einbauen, falls direkt nach der 1. Klammer noch eine kommt, der Inhalt auch kopiert wird?
Als Beispiel: "(d)(3.2.1), or (3) proper functional response"
Kopiert werden sollte hier: (d)(3.2.1)
Gruß,
Levi
AW: Off topic
19.11.2020 15:01:36
volti
Hallo Levi,
wolltest Du den Output mit den Klammern haben?
Teste mal dieses hier:
Code:
[Cc]

Function TextausErsterKlammer(strText As String) As String TextausErsterKlammer = "(" & Split(Split(strText & "(", "(")(1) & ")", ")")(0) & ")" If strText Like "*)(*" Then TextausErsterKlammer = TextausErsterKlammer _ & "(" & Split(Split(strText & "(", "(")(2) & ")", ")")(0) & ")" End If End Function

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Off topic
24.11.2020 11:32:50
Levi
Hallo,
danke für deine Antwort ich bin leider erst heute dazu gekommen :)
Ja ist schon besser aber jetzt kopiert es auch den Inhalt der nächsten Klammer auch wenn Text dazwischen ist. BSP: (2) Hallo (3) ergibt: (2)(3)
Aber in dem Fall sollte es ja nur (2) kopieren.
Und wenn mehrere Klammern hintereinander sind BSP: (2)(3)(1)(f)hallo(2)
sollte es nun (2)(3)(1)(f) kopieren, kopiert aber nur die ersten 2.
Grüße
AW: Off topic
24.11.2020 14:23:53
volti
Hallo Levi,
eine neue Idee zur neuen Anforderung....
Code:
[Cc]

Function TextausErsterKlammer(strText As String) As String Dim sArr() As String, i As Integer, S As String sArr = Split(strText, "(") If UBound(sArr) > 0 Then S = "(" For i = 1 To UBound(sArr) If Right$(sArr(i), 1) = ")" Then S = S & sArr(i) If i = UBound(sArr) Then Exit For S = S & "(" Else S = S & Split(sArr(i), ")")(0) & ")": Exit For End If Next i TextausErsterKlammer = S End If End Function

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Off topic
19.11.2020 14:54:51
volti
Hallo Ralf,
das ist Marke Eigenbau. Es ist als AddIn realisiert.
Es wird auch alternativ gerade noch an einer VB6-Version gebastelt (Haklesoft).
viele Grüße
Karl-Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige