Anzeige
Archiv - Navigation
1424to1428
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

characters löschen

characters löschen
04.05.2015 20:06:38
simsim

Hallo VBA Fans,
ich hätte eine Frage, ich möchte in einer Zelle zeichen löschen, wenn sie nicht in der Klammern, z.B. qwweeererr[test]hjhjhjki d.h. alles, was vor test und danach soll gelöscht werden, der Wert zwischen Klammern ist nicht fest, es kann alles sein.
Danke für die Unterstützung

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: characters löschen
04.05.2015 20:10:41
Hajo_Zi

Tabelle3
Da du die VBA-Fans angesprochen hast, ...
04.05.2015 20:22:35
Luc:-?
…simsim,
wie wär's als Kompromiss zwischen VBA und FormelLösung mit einer UDF in einer Fml?
A1: qwweeererr[test]hjhjhjki
Fml:=MaskOn(MaskOn(A1;"mrk[]");"[]";1)
Gruß, Luc :-?

AW: Da du die VBA-Fans angesprochen hast, ...
04.05.2015 20:39:25
Matthias L
Hi
Sag ich ja, ...
05.05.2015 02:29:52
Luc:-?
…Matti,
aber der Fragesteller scheint ja eine selbst zusammen­gestellte Einzel­Lösung einem universellen Fertig-Tool vorzuziehen, allerdings ist das auch schon mindestens 10 Jahre alt. Trotzdem decken die meisten meiner UDFs immer mehr Probleme ab, als die jeweilige Auf­gaben­stellung beinhaltet. Das ist dann wie bei Xl-Fktt, denn denen analog sollen sie einsetzbar sein, was einigen Leuten wohl immer noch nicht so recht klar zu sein scheint…
Gruß, Luc :-?

Anzeige
AW: Sag ich ja, ...
05.05.2015 08:07:46
Daniel
Hi Luc
Deine Lösung ist neunmal keine VBA-Lösung, sondern immer noch eine Formel Lösung.
Der Formel Text ist zwar etwas kürzer, dafür muss man aber erst ein AddIn installieren, damit Excel die Funktionen erkennt.
Deine UDFs mögen zwar viele Problemfälle abdecken, aber solange du nicht erklärst was sie alles können und wie die Parameter gesetzt werden müssen, sind sie für den Anwender such nicht hilfreicher als eine für sein Problem angepasste Spezialösung.
Gruß Daniel

Das steht bei mir (zumindest bei neueren UDFs) ...
05.05.2015 20:28:52
Luc:-?
…immer in Kurzfassung über dem PgmCode, Daniel,
das macht sonst kaum mal jemand. Außerdem erklären sich die Argumente (zumindest bei kurzen UDFs) oft selbst.
Das ist doch nicht etwa deiner Aufmerksamkeit entgangen…?
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Das steht bei mir (zumindest bei neueren UDFs) ...
05.05.2015 20:48:28
Daniel
wenn ich mir die von dir hier verlinke Version von MaskOn anschaue:
Function MaskOn(ByVal Text As String, ByVal ZTyp As String, Optional ByVal ZTmask) As String
Dim i As Integer, a As String, d As String, z As String, ZusZ As String
Const b = "abcdefghijklmnopqrstuvwxyzäöü", c = "0123456789", e = " +-,.E " 'letztZ=Chr(160)
If IsMissing(ZTmask) Then
ZTmask = 1
ElseIf IsNumeric(ZTmask) Then
ZTmask = ZTmask Mod 2 + 1
Else
ZusZ = ZTmask: ZTmask = 1
End If
For i = 1 To Len(Text)
Select Case lcase(Left(ZTyp, 3))                            'feste ZKomb in ZTyp
Case "gkz", "buz", "bz", "bzi", "len", "lin", "a0", "an", "anu"
a = c & b & "ß": z = lcase(Mid(Text, i, 1))
Case "gk", "gkb", "bst", "buc", "let", "lit"
a = b & "ß": z = lcase(Mid(Text, i, 1))
Case "kb", "mil", "min"
a = b & "ß": z = Mid(Text, i, 1)
Case "gb", "cal", "cap"
a = UCase(b): z = Mid(Text, i, 1)
Case "zf", "dg", "zif", "dig", "num", "00", "000"
a = c: z = Mid(Text, i, 1)
Case "zw", "nv", "zah", "zwt", "nvl", "+0", "0.-"
a = c & e: z = Mid(Text, i, 1)
Case "mar", "mrk", "mkt", "mtx"
z = Mid(Text, i, 1)
If z = Left(Right(ZTyp, 2), 1) Then
a = z: d = z
ElseIf z = Right(ZTyp, 1) Then
a = z: d = z
ElseIf d = Left(Right(ZTyp, 2), 1) Then
a = z
Else: a = ""
End If
Case Else                                                   'freie ZKomb in ZTyp
a = ZTyp: z = Mid(Text, i, 1)
End Select
a = a & ZusZ
On Abs(CInt(InStr(a, z) > 0)) + ZTmask GoSub lm, zm, lm
Next i
MaskOn = WorksheetFunction.Substitute(Trim(MaskOn), "  ", " ")
Exit Function
lm: Rem reduziert maskierte Zeichen (mehrere hintereinander als 1 blank)
MaskOn = MaskOn & IIf(Right(MaskOn, 1) = " ", "", " ")
Return
zm: Rem übernommene Zeichen
MaskOn = MaskOn & Mid(Text, i, 1)
Return
End Function
kann ich nichts davon finden.
Weder eine Beschreibung, noch Kommentare oder eine selbsterklärende Programmierung mit sprechenden Variablennamen oder so.
Bis ich mir da die möglichen Funktionen rausinterpretiert habe, habe ich doch wesentlich schneller ein nicht universelles Spezialmakro erstellt, welches dann genau auf meine Lösung passt, nach meinen Vorgaben dokumentiert ist.
für die Beschriebene Aufgabenstellung reicht ein Einzeiler!
Warum also dann sowas aus unsicherer Quelle auf seinem Rechner installieren?
sorry, nö danke. Dann lieber selber etwas Zeit investieren und selber programmieren.
Sollte deine Zielgruppe für solche Universalmakros Excelanwender ohne Programmierkenntnisse sein, die damit ihren Excelfunktionsumfang erweiteren können (was ja durchaus sinnvoll wäre im Bereich von Text-Funktionen), dann müsstest du erst recht genau beschreiben, was deine UDFs können und wie man sie parametrisiert, weil dieser Personenkreis erst recht nicht in der Lage ist, deinen Code zu interpretieren.
Gruß Daniel

Anzeige
Du solltest wenigstens lesen können, ...
06.05.2015 04:51:02
Luc:-?
…Daniel,
denn unter dem verlinkten BT steht ja wohl deutlich, dass es sich hierbei um die Zweit­schrift einer sehr alten UDF handelt (die Erst­schrift wurde durch Änderungen der Forums­software unbrauchbar!). Deren Argumente und ihre möglichen Werte sind auch bedingt selbst­erklärend.
Diese UDF ist in ihrer letzten Version in einem AddIn enthalten, zu dem auch eine Hilfe existiert (habe ich von dir noch nicht gesehen!). Außerdem ist mir unklar, warum ein AddIn ein Problem darstellen sollte (außer bei grund­sätz­licher VBA-Sperre). Es kann genauso wie ein Standard-Xl-AddIn eingebunden wdn.

MaskOn( Text; ZTyp; ZTmask=0; ErsZ=blank)
Ergebnis:
Listentext, Zeichenfolge oder Zahl
Erzeugt redu­zierte Zeichenfolge als Listen­text über Maske laut Arg2 mit Einzel­blanks als Ersatz-/Trennzeichen
Arg2.1: anu=alf+nume­risch alf=Buch­stabe kb=Klein­buch­stabe gb=Groß­buch­stabe num=Ziffer zw=Zahlen­werte
Arg2.2: hex=Hexadezimal­zahlen ad=Zell­adresse mar‘’=Markie­rung ‘…’ [‘’=belie­bige diffe­rente Zei­chen ]
Arg2.3: belie­bige direkt einge­tragene Zeichen/kombi­nation (freie Zeichen­kombi­nation hier ggw nicht möglich)
Arg3: 0 [1 ] *nur [ohne ] Zeichen laut Arg2 oder zusätz­lich zu belas­sende Zeichen (implizit 0)
Arg4: fehlt/leer/beliebiges nicht in Arg1 enthaltenes Zeichen
Funktionsargumente:

• Arg1 → Text

Zu behandelnder Text(bezug)

• Arg2 → ZTyp

Maskentyp (vordefinierte Zeichengruppe) bzw Einzelzeichen oder
Zeichenkombination

• Arg3 → ZTmask

Wahr = Zeichen lt Arg2 werden entfernt, sonst alle anderen (implizit, ggf hier zusätzlich zu bewahrende Zeichen angeben)

• Arg4 → ErsZ

Als Ersatz für entfernte Zeichen(folgen) zu verwendendes Zeichen, Default: Leerzeichen

 Bsp1: a) M =MaskOn("5 Mann";"gb"), b) , % =MaskOn("1,6%";"num";1), c) 2,52 =MaskOn("zu 2,52 Euro";"zw")
 Bsp2: a) F0 =MaskOn("F0 byte";"hex"), b) A$1:IV1 =MaskOn("Sum(A$1:IV1)";"ad"), c) Sum =MaskOn("Sum(A:A)";"mar()";1)
 Bsp3: a) a b c =MaskOn("(a+b)*c";"( + * )";1), b) a W n =MaskOn("alle Wellen";"el";1), c) lle el =MaskOn("alle Welt";"el")

Hinweis: Im Falle von Arg2="ad" ist in Arg3 nur ein Ein­zel­zei­chen, keine Folge ein­zel­ner zusätz­lich zu bewah­ren­der Zei­chen wie in allen ande­ren Fäl­len zuläs­sig. Außer­dem muss es unmit­tel­bar vor einer erkenn­baren Zell­adresse in Arg1 auf­treten. Falls hier der soge­nannte Schnitt­men­gen­ope­ra­tor (Leer­zei­chen) auf­tre­ten kann, sollte(n) ggf (ein) ande­re(s) Zei­chen für Arg4 gewählt werden.
Achtung!
Von die­ser Ver­sion wer­den keine Z1S1- und Adres­sen ober­halb von IV65536 (xlVer­sio­nen ab 12) erkannt!
Vs 2.9b -Autor: LSr -1Pub:(2.1) 20050217herber.de -CDate: 2004/5 -LUpd:20100206n

Das 4.Argument gibt's in der alten Version natürlich nicht (immer Leer­zeichen) und beim 2.Argument ist hier auch noch keine Adress­Isolation vorgesehen.
Viel Spaß beim Selbstversuch! :-]
Qapla', Luc :-?

Anzeige
AW: Du solltest wenigstens lesen können, ...
06.05.2015 07:22:43
Daniel
Ich kann schon lesen, aber für mich ist immer das relevant, was du und tatsächlich zur Verfügung stellst, und das ist nunmal der verlinkte Code.
Gruß Daniel

Mehr war ja von dir auch nicht zu erwarten! owT
06.05.2015 13:42:48
Luc:-?
:-?

AW: Mehr war ja von dir auch nicht zu erwarten! owT
07.05.2015 10:05:48
Daniel
naja, was erwartest du?
dass ich mich auf deinem Rechner einhacke und mir dort die noch nicht von dir veröffentliche neuste Version deiner UDFs und die Hilfedateien runterlade?

Du willst doch nicht etwa andeuten, dass du ...
09.05.2015 01:34:03
Luc:-?
…dich dafür interessieren würdest…?!
Da du es wohl nie zu einer Vorzugsbehandlung bringen wirst, musst du dich mit dem begnügen, was den Meisten auch zV steht… ;->
Luc :-?

AW: Du willst doch nicht etwa andeuten, dass du ...
09.05.2015 02:03:10
Daniel
natürlich habe ich mich dafür interessiert.
ich hab mir das angeschaut und festgestellt, dass die behandelten Fälle in meinem Arbeitsalltag zu selten vorkommen, als dass es sich lohnen würde, mir das zu installieren.
Ausserdem profitiere ja nicht nur ich davon, sondern alle, die sich für deine UDFs interessiern und jetzt deren volle Power nutzen können, weil sie eine Beschreibung haben, in der sie nachlesen können was die UDF alles kann.
Ich habe das nie für mich eingefordert, sonden immer nur an die gedacht, denen du die UDFs angeboten hast.
Sies mal so, wer in der Lage ist, sich als dem Code allein ohne Beschreibung den vollen Funktionsumfang abzuleiten, der kann sich solche Makros auch selber schreiben und brauchst deine Hilfe dabei nicht.
Gruß Daniel

Anzeige
Deshalb hatte ich ja diese Hilfe angefertigt, ...
09.05.2015 13:20:16
Luc:-?
…Daniel,
wofür die Meisten gar keine Zeit finden, abgesehen mal davon, dass das oftmals auch nicht lohnen würde, weil deren UDFs oft auf nur ein spezifisches Problem zugeschnitten sind. Das entspräche dann der pgmmierer­üblichen Sicht auf eine Fkt als Pgmier­Hilfs­mittel. Das ist aber nicht die meine! Ich orientiere mich an dem, was die Pgmmierer des alten Xl-FktsKerns beabsichtigt hatten — Universalität im Rahmen der jeweiligen Aufgaben­stellung der Fkt. Das beachten nur sehr Wenige! Ich freue mich, wenn ich mal, sehr selten, auf solch ein Bsp stoße. Leider erkennt der Nach­nutzer dann oft nicht, was er da hat. Zu sehr sind die Nutzer bei VBA auf „Anpasse­ritis“ fixiert…
Luc :-?

Anzeige
AW: Deshalb hatte ich ja diese Hilfe angefertigt, ...
09.05.2015 16:24:05
Daniel
Hi
Was verstehst du unter 'Univtsalität im Rahmen der Aufgabenstellung"
Versuchen, Probleme zu lösen, die noch gar nicht da sind aber vielleicht mal auftreten könnten?
Funktionen immer als Variant auslegen?
Welche Eigenschaften muss ein Code haben, damit du ihn als universell anerkennst?
Gruß Daniel

Die gleichen, die bspw KKLEINSTE im GgSatz ...
10.05.2015 03:24:43
Luc:-?
…zu RANG hat, Daniel,
also zuvorderst auch Verarbeitung von Datenfeldern (aus Ausdrücken → expressions bzw Matrix­Konstanten), was in VBA idR nur mit Variant-Argumenten möglich ist. Ebenso ein Variant-Ergebnis, damit ggf auch qualifizierte Fehler­meldungen ausgegeben wdn können.
Wünschenswert, aber nicht immer erforderlich, wäre volle Matrix­formel­taug­lichkeit, zumindest in Bezug auf das Haupt­Argument. Für Neben­Argumente muss das nur gelten, wenn über die xl-typische Werte­Variation bereichs­bezogener Angaben hinaus ganze Daten­felder verarbeitet wdn sollen oder dieses ermöglicht wdn soll. Ich meine also eine Fkt, die mit allen oder wenigstens möglichst vielen existie­renden Xl-Gegeben­heiten umgehen kann, nicht mit evtl zukünftigen (dieses Risiko bleibt). Ebenso erwarte ich auch keine „Handy-Funk­tion“, die ganz verschiedene Dinge miteinander vereint. Das entspräche eher einer Über­speziali­sierung als Univer­salität.
So kann eine Text­Fkt auf der Basis von Split bzw Join schon mal (eine) echte Zahl(en) liefern dürfen, wenn ihr Ergebnis numerisch ist, muss es aber nicht unbedingt.
Wenn du dir die in Foren geposteten UDFs ansiehst, wirst du schnell feststellen, dass die Mehrzahl diese Kriterien nicht erfüllt.
Darüber hinaus habe ich noch einige andere Maximen, die aber hier nicht relevant sind. Gleiches gilt für einiges Andere, mit dem der Bedien­komfort erhöht wdn kann, oder diverse Sicherungs­maß­nahmen (damit ist nicht die Anwendungs­sicherheit gemeint!).
Luc :-?

Anzeige
AW: erstmal Danke
10.05.2015 13:21:36
Daniel
für deine ausführlichen Erläuterungen.
diese qualtitativen und funktionalen Anforderungen an eine UDF sind sicherlich gut richtig und sinnvoll, wenn es sich um Funktionen handelt, die für die allgemeine Verwendung in ein AddIn oder sonstige Programmbibliothek geschrieben werden.
allerdings ist der Aufand, alle diese Anforderungen abzudecken dann doch recht gross.
Für eine Funktion, die nur innerhalb eines Projekts eingesetzt wird, halte ich es für sinnvoller, diese auf sie auf die tatsächlich vorhandenen Anforderungen auszulegen, weil das den Aufwand dann doch deutlich reduziert.
Desweiteren ist es auch gar nicht mein Ziel, den Fragesteller hier im Forum mit einer Fertiglösung zu beglücken, die er sich nur noch installieren muss.
Wer sowas haben will, soll sich an einen echten Profi wenden.
Auch bin ich nicht der Ansicht, dass ein Forum eine vernünftige Aus- oder Weiterbildung ersetzen kann und soll.
Es ist vielmehr mein Ziel, den Fragesteller soweit zu unterstützen, dass er sein Problem mit den vorhandenen Mitteln (Excel, VBA) selber und eigenständig lösen kann.
Dazu gehört, dass er mein Programmbeispiel nachvollzieht und versteht, und dann selber progrogrammieren kann. Die meisten Fragesteller hier wären damit wahrscheilich überfordert, wenn ich ihnen einen Lösung die deinen Ansprüchen genügen würde, zeigen.
Wenn jemand eine "allgemeingültige, universelle" UDF haben will, darf er sich diese gerne selber schreiben.
Wenn er Fragen dabei hat, werde ich sie ihm beantworten, wenn ich es kann.
Aber ich werde ihm nicht die fertige UDF erstellen, zumindest nicht im Forum und nicht lau.
Gruß Daniel

Anzeige
AW: um dafür noch mal ein Beispíel zu bringen:
10.05.2015 13:59:37
Daniel
was den Unterschied zischen einer Universellen und einer einfachen UDF ausmacht, schau dir mal deinen Lösungsvorschlag für die Problemstellung "Blattname als Formel" an:
  Function ShName(Optional ByVal lfdNr)
Dim isVert As Boolean, aZr As Long, lZr As Long, shN() As String
On Error Resume Next
With ActiveWorkbook
If IsArray(lfdNr) Then
If IsError(LBound(lfdNr, 2)) Then
Else: Let isVert = UBound(lfdNr, 2) = 1
If Not isVert Then
lfdNr = WorksheetFunction.Transpose(lfdNr)
End If
lfdNr = WorksheetFunction.Transpose(lfdNr)
End If
aZr = LBound(lfdNr): lZr = UBound(lfdNr) - aZr
ReDim shN(lZr)
For lZr = 0 To lZr
shN(lZr) = .Sheets(lfdNr(aZr + lZr)).Name
Next lZr
If isVert Then
ShName = WorksheetFunction.Transpose(shN)
Else: ShName = shN
End If
ElseIf IsMissing(lfdNr) Then
ShName = .Sheets(.Sheets.Count).Name
Else: ShName = .Sheets(lfdNr).Name
End If
End With
End Function
wenn Universalität in deinem Sinne nicht erforderlich ist, reicht:
Function ShName(Nr As Long) As String
If Nr > 0 Then If Nr <= ActiveWorkbook.Sheets.Count Then ShName = ActiveWorkbook.Sheets(Nr). _
Name
End Function
und da muss ich mir dann schon die Frage stellen, wie gross der Vorteil der Universalität ist und den entstehenden Mehraufwand rechtfertigt.
ansonsten stellt sich mir auch die Frage, warum jemand sowas zeigt, wenns ein kleiner Einzeiler auch tun würde.
Gruß Daniel

Anzeige
Auf DAS Bsp hätte ich jetzt auch verwiesen, ...
10.05.2015 18:09:20
Luc:-?
…nicht die ganze UDF hier zusammenhanglos nochmals gepostet, Daniel,
da sie diese Problematik durchaus demonstriert, obwohl hier noch eine qualifizierte Fehler­Ausgabe fehlt. Ursprünglich war diese UDF tatsächlich kaum mehr als 3 Zeilen lang, was für das geschilderte Problem ausgereicht hätte.
Ich habe aber etwas gg die PC-Vermüllung mit „Eintags­fliegen“, die schon beim nächsten Mal nicht mehr einsetzbar sind. Du denkst wie ein ProfiPgmmierer, der gerade von so etwas lebt, in Projekten. Damit wäre eine Funktion nur ein Pgmmier­Hilfs­mittel und kein Universal­Werkzeug, denn es ginge ja vornehmlich um ein abgeschlossenes Projekt. Solche Fktt wären dann konsequenter­weise auch stets Private oder in solchen Modulen unter­gebracht. Den meisten Nutzern geht's aber durchaus um univer­sellere Werkzeuge, die sie in der Personal.xlsm oder einem AddIn sammeln, um sie bei Bedarf wieder­zuver­wenden. Wer soll dann in so etwas die Über­sicht behalten, wenn von einem Werkzeug x Varianten für spezifische Zwecke erfor­derlich sind? Wären die XlFktt auch nach diesem Prinzip konstruiert worden, hätte sich Xl wohl kaum gg andere Produkte durch­setzen können.
Außerdem kann auch ein Selber­macher aus meinen Bspp lernen, wie man an so etwas herangehen sollte. Das lernt er bei spezi­fischen Fktt bestimmt nicht; er müsste allgemeinere Grund­lagen erst aus einer Viel­zahl von Code­Bspp ableiten, denn das einzelne Pgm geht ja nur auf die besondere Situation ein. Und die kann sich auch mal ändern.
Richtig ist, dass es so etwas, komplett in einem AddIn und mit Hilfe*, normalerweise nicht umsonst gibt. Deshalb fehlen hier auch solche Teile (evtl voran­gestellte Hinweise sind in Kurzform, weil als Stichworte für eine spätere Hilfe gedacht). Aber, wenn man Forderungen wie die meinen vertritt, muss man auch abundzu zeigen, was man meint. Das tut der Eine oder Andere auch mal; solche Fälle sind aber sehr selten im Netz zu finden. Wer so etwas findet, hat Glück gehabt. Leider erkennt er das nicht immer.
Übrigens habe ich für den Zweck, dem die von dir zitierte UDF gewidmet ist, auch deutlich längere, umfassendere und komfortablere UDFs. Was Fml-Freaks* mit den StandardFktt in Fmln machen, mache ich mit UDF-Pgmm in Kombi mit ihrem Fml-Einsatz. Damit lernt man dann gleich 2 Dinge, wie Xl fktioniert und wie man deshalb eine univer­selle UDF für FmlEin­satz schreiben muss. Darin habe ich inzwischen schon soviel Übung, dass ich auch mal etwas mit vertret­barem Zeit­Aufwand neu schreiben kann.
Und weil das so ist, „spiele ich auch in einer anderen Liga“, die in Foren kaum vertreten ist. Nicht mehr und auch nicht weniger ist damit gemeint…! ;-]
* Hierzu ein Zitat von Alison Gopnik im Gespräch mit Stefan Klein: „In einer Serie von Experi­menten probierte meine Kollegin Laura Schulz vor den Augen einer Gruppe von Vier­jährigen an einem ziemlich kompli­zierten elektro­nischen Spiel­zeug herum. Allein gelassen, fanden die Kinder bald selbst alles heraus, was dieses Ding konnte. Anderen Jungen und Mädchen gleichen Alters zeigte Schulz gezielt ein paar Funk­tionen des Spiel­zeugs. Doch als sie ging, wieder­holten diese Kinder nur das Wenige, was sie ihnen vorge­führt hatte.“ (zitiert nach Stefan Klein, Wir könnten unsterblich sein, Fischer Tb, 2014, Ss.70-71.)
Genau das, was die 1.Gruppe getan hat, machen auch Formel-Freaks, sie verlassen sich nicht allein auf die Xl-Hilfe; mit vielen meiner UDFs kann genauso experimentiert wdn, denn uU ist dann noch mehr drin, als ich ursprünglich beabsichtigt hatte bzw mit wenigen Tests feststellen konnte. Mit auf ZellBereiche festgelegten Fktt ist man aber allzu schnell am „Ende der Fahnen­stange“ angekommen.

Gruß, Luc :-?

AW: characters löschen - mit Replace
04.05.2015 21:03:46
Daniel
Hi
wenns keine Formel sein soll, sondern die Werte in der Zelle direkt bearbeitet werden sollen und es in der Zelle nur eine Klammergruppe gibt, dann kannst du auch mit ERSETZEN zuerst "*[" durch nichts und danach "]*" durch nichts ersetzen.
Die Option "gesamten Zellinhalt vergleichen" muss hierbei aktiv sein.
- das funktioniert auch für mehere Zellen gleichzeitig
- das geht auch in VBA:
With Selection
.Replace "*[", "", xlwhole
.Replace "]*", "", xlwhole
End With

für einen Einzelwert als VBA auch so:
With Range("A1")
.Value = Split(Replace(.Value, "]", "["), "[")(1)
End with
Gruß Daniel

AW: characters löschen - mit Replace
04.05.2015 23:30:21
simsim
Hallo VBA Fans,
danke an alle erstmal.
die Lösung mit replace fand ich gut, aber leider wurde "*[" stern nicht als beliebig viele Zeichen, sondern als string. gibt es andere Möglichkeit mit VBA???
Gruss an alle

AW: characters löschen - mit Replace
04.05.2015 23:49:44
Daniel
Hi
ersetz mal xlwhole durch xlpart
sorry war nen Fehler von mir.
hier noch ne Alternative.
die ist für den Fall, wenn die Werte alle in einter Spalte stehen:
- ersetzte "]" durch "["
- wende auf die Spalte die Funktion DATEN - DATENTOOLS - TEXT IN SPALTEN an.
wähle hierbei das "[" als anderes Trennzeichen aus.
gib im Schritt 3 des Assistentenn an, dass du Spalte 1 und 3 nicht importieren willst.
With Columns(1)
.Replace what:="]", replacement:="[", lookat:=xlPart
.TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, _
Other:=True, OtherChar:="[", _
FieldInfo:=Array(Array(1, 9), Array(2, 1), Array(3, 9)), _
TrailingMinusNumbers:=True
End With
Gruß Daniel

AW: characters löschen - mit Replace
05.05.2015 23:18:39
simsim
Hallo Daniel,
Super, es hat perfekt funktioniert.
Danke nochmal an alle

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige