Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeichen löschen in Spalte

Zeichen löschen in Spalte
05.03.2004 15:41:38
helena
Hallo Helfer
habe ein Problem, bei gestriger Lösung stolpere ich
über Formatierung, also Endprodukt = nicht gleich SOLL

16 24 32 Zeichen
--------->------->------>
=1HSM +AUL\\-PE
mein Suchbegriff in Spalte = zB AUL dann soll vom letzten Buchstabe also L
2 Zeichen rechts gelöscht werden und anschliessend 14 Zeichen nach links
das Minuszeichen rechts von den zwei \\ ist immer vorhanden und muss bleiben

SOLL
16 24 32 Zeichen
--------->------->------>
-PE
aber nur wenn Suchbegriff in Zelle, im Code von gestern habe ich versucht
die Zeichenkette zu splitten Zellen löschen usw. geht aber wegen Plotter
SW nicht so (Problem mit Leerschlägen)

Sub Suchbegriffelöschen()
Dim Wert As String
Dim c As Integer
Dim gefunden As Boolean
Wert = InputBox("Bitte den Suchbegriff eingeben", "suche nach zB +SCH1, +SCH2 usw. ..")
If Wert = "" Then Exit Sub
For c = 1000 To 1 Step -1
If Worksheets("Zwischenablage1").Cells(c, 2) = Wert Then
Worksheets("Zwischenablage1").Cells(c, 2).Delete shift:=xlToLeft
Worksheets("Zwischenablage1").Cells(c, 1).Delete shift:=xlToLeft
gefunden = True
End If
Next
If gefunden = False Then MsgBox ("Der Suchbegriff wurde nicht gefunden")
End Sub


hat jemand einen Lösungsansatz
DANKE jetzt schon
gruss helena

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen löschen in Spalte
05.03.2004 17:00:51
PeterW
Hallo Helena,
vertsuch es mal mit Instr (siehe dazu die VBA-Hilfe):
If InStr(1, Worksheets("Zwischenablage1").Cells(c, 2), Wert) > 0 Then
Gruß
Peter
kann leider mit deiner Info wenig anfangen
05.03.2004 18:33:32
helena
Hallo Werner

Sub Suchbegriffelöschen()
Dim Wert As String
Dim c As Integer
Dim gefunden As Boolean
Wert = InputBox("Bitte den Suchbegriff eingeben", "suche nach zB +SCH1, +SCH2 usw. ..")
If Wert = "" Then Exit Sub
For c = 1000 To 1 Step -1
'das File ist TXT Importfile und wenn ich dies schaffe nach rechts zwei Zeichen
'und nach links anschliessend 14 Zeichen löschen erspare ich mir die Zwischenablage
'völlig
'Abhängig vom SUCHBEGRIFF in der Zelle, sihe bitte Musterfile denke dann siehst du
' klar der gestrige Weg ging wegen Zellenformat nicht (CAD-Plott und spez. SW)
' und kann Ergebniss direkt verarbeiten, Plotter hat die Leerzeichen falsch interpretiert und hat Zeilenumbruch etc. falsch ausgeführt, Tebellenblatt = aktiv Sheet
End If
Next
If gefunden = False Then MsgBox ("Der Suchbegriff wurde nicht gefunden")
End Sub

DANKE für Input
gruss helena
Anzeige
noch nee Idee...
05.03.2004 19:06:35
helena
Hallo denke es geht auch noch anders vielleicht
als Ansatz
wenn in Zelle Inhalt zB. +SCH1 dann lösche Zeichen 16 bis 32
in Zelle das in Spalte A dann rutscht Zeichen 33 auch an
an Platz 16 in Zelle
nur so ne Idee
gruss helena
AW: noch nee Idee...
05.03.2004 19:36:54
Christoph
Hallo Helena,
ehrlich gesagt, komm ich mit deiner Beschreibung nicht ganz klar.
So wie ich dich verstehe, möchtest du den Teil hinter dem "\\" erhalten.
Das geht prinzipiell auch mit einer Funktion.
à la: =TEIL(A2;SUCHEN("\";A2;1)+2;4)
Ich hab dir mal eine Beispiel-Datei auf den Server gelegt:
https://www.herber.de/bbs/user/4107.xls
Hier lassen sich auch noch bestimmte Bedingungen einfügen im Sinne von:
"wenn das und das im Text enthalten ist, dann ..."
Das ganze lässt sich natürlich auch über VBA lösen, aber bis du das mit
deinem Level ("VBA nein") angepasst hast, denke ich, kommst du mit einer Funktion
besser klar.
Gruß
Christoph
Anzeige
AW: noch nee Idee...
05.03.2004 20:14:02
helena
Hallo Christoph
lass Dich bitte nicht täuschen von Muster unten
es soll einfach wenn Wert vorhanden in Zelle A1:Ax (x=variabel)
das Zeichen 16-31 aus zelle entferhnen, kanns leider nicht besser beschreiben
einzig im Muster unten werden die Leerschläge gekürzt, d.h du siehst die ersten 15 Zeichen nicht mehr

Siehe Lösung von PeterW
05.03.2004 21:07:08
Christoph
Hallo Helena,
Die Lösung von PeterW bringt dir genau das Ergebnis.
"Wenn suchbegriff gefunden, dann schneide den Teil (16 bis 31) raus".
Und das in Spalte A in allen Zeilen von 1 bis 1000.
für weitere Fragen...
gerne
Christoph
AW: kann leider mit deiner Info wenig anfangen
05.03.2004 19:16:42
PeterW
Hallo Helena,
davon ausgehend, dass die Strings in den Zellen A1 bis A1000 stehen probier mal das hier:

Sub Bereinigen()
Dim strSuche As String
Dim c As Integer
Dim bolGefunden As Boolean
strSuche = InputBox("Suchbegriff", "erwarte Eingabe")
If strSuche = "" Then Exit Sub
For c = 1 To 1000
If InStr(1, Cells(c, 1), strSuche) > 0 Then
Cells(c, 1) = Left(Cells(c, 1), InStr(1, Cells(c, 1), strSuche) + Len(strSuche) - 15) _
& Right(Cells(c, 1), Len(Cells(c, 1)) - InStr(1, Cells(c, 1), strSuche) - Len(strSuche) - 1)
bolGefunden = True
End If
Next
If bolGefunden Then Exit Sub
MsgBox "Suchbegriff nicht gefunden"
End Sub

Gruß
Peter
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige