Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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

Zeichenkette abschneiden und ersetzen

Zeichenkette abschneiden und ersetzen
13.11.2016 15:39:29
Jaylan
Hallo zusammen,
ich brauche ein kleines MAKRO, der mir die Zeilen mit folgendem "Ausgangswert" in das Format "Zielwert" umwandelt und die entsprechende Zeile ersetzt.
Ausgangswert: 004055188 04FG13 ABC; PPP Auftragsnr. Bohrm.
Zielwert: 055188
Die Idee ist dabei, dass die letzten 6 Ziffern der ersten zusammenhängenden Zeichenfolge extrahiert wird. Der Rest wird "abgeschnitten".
Die Daten befinden sich in der Spalte A. Mein Arbeitsblatt heisst "Aufträge".
Viele Grüße
Jay

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zeichenkette abschneiden und ersetzen
13.11.2016 15:50:57
Michael
Hi,
Sub machen()
Dim r As Range, c As Range
Set r = Intersect(UsedRange, Range("A:A"))
If Not r Is Nothing Then
For Each c In r
c.Value = "'" & Right(Left(c.Value, InStr(c.Value, " ") - 1), 6)
Next
Else
MsgBox "Keine gefunden"
End If
End Sub

Das "'" sorgt dafür, daß führende Nullen mit übernommen werden.
Schöne Grüße,
Michael
AW: warum nicht eine kleine Formel? ...
13.11.2016 15:54:14
...
Hallo Jay,
... wenn "Ausgangswert" z.B. in A1 dann so =RECHTS(LINKS(A1;FINDEN(" ";A1)-1);6)

Gruß Werner
.. , - ...
AW: warum nicht eine kleine Formel? ...
13.11.2016 16:16:21
Jaylan
Vielen Dank für die Lösungsvorschläge!
Das Makro gibt bei mir eine Fehlermeldung!
Kannst du das mal bei dir ausprobieren? Anbei meine Bespieldatei:
https://www.herber.de/bbs/user/109385.xlsx
Vielen Dank!!
Anzeige
AW: warum nicht eine kleine Formel? ...
13.11.2016 16:54:16
Anton
Hallo Jay,
hier noch eine Lösung mit Array:
Sub ZeichenketteBearbeiten()
Dim VarDat() As String
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim wkb As Workbook
Dim wks As Worksheet
Dim i As Long
Set wkb = ThisWorkbook
Set wks = wkb.Worksheets("Tabelle1") 'Tabellenblatt anpassen
With wks
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
i = 0
For lngZeile = 1 To lngZeileMax
If .Cells(lngZeile, 1).Value  "" Then
ReDim Preserve VarDat(i)
VarDat(i) = Split(.Cells(lngZeile, 1), " ")(0)
VarDat(i) = Right(VarDat(i), 6)
.Cells(lngZeile, 2).Value = VarDat 'Spalte für Ausgabe anpassen
i = i + 1
End If
Next lngZeile
End With
End Sub
VG Anton
Anzeige
AW: warum nicht eine kleine Formel? ...
13.11.2016 17:05:23
Anton
Hab einen kleinen Fehler entdeckt. Bitte hier noch den Index (i) an VarDat übergeben:
.Cells(lngZeile, 2).Value = VarDat(i) 'Spalte für Ausgabe anpassen
VG Anton
AW: warum nicht eine kleine Formel? ...
13.11.2016 17:18:51
Jaylan
Hallo Anton,
vielen Dank für die Lösung! Das funktioniert eigentlich schon Prima! Jedoch
wird nur die erste Zeile korrekt abgeschnitten. Dieser wird in jede Zeile geschrieben, egal
welche Zeichenfolge in der Zelle existiert:
Eingabe:
004055238 04FG13 ABC; PPP Auftragsnr. Schraubendr.
004055188 04FG13 ABC; PPP Auftragsnr. Bohrm.
004052123 04FG13 ABC; PPP Auftragsnr. Rohmat.
Ausgabe:
055238
055238
055238
Kannst du das nochmal überprüfen?
Anzeige
AW: warum nicht eine kleine Formel? ...
13.11.2016 17:20:49
Jaylan
Haben wohl zeitgleich geschrieben.... :) vielen lieben Dank!!!
AW: Makro incl. Datum
14.11.2016 14:14:08
Jaylan
Perfekt! Danke!!
LG
Jay
gern geschehen,
15.11.2016 15:03:43
Michael
Jay,
LG zurück,
M.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige