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

Jede Zeile der Spalte durchgehen und ändern

Jede Zeile der Spalte durchgehen und ändern
29.11.2017 10:56:37
Benjamin
Hallo zusammen,
ich habe folgenden Code, um Werte in einer Spalte zu ändern.
wert = "Auto-Haus"
wert_neu = Right(wert, Len(wert) - InStrRev(wert, "\", , vbTextCompare))
Ausgabe: Haus
Mit diesem Code entferne eine Teil des Strings bis zum Bindestrich. Das klappt alles ganz gut. Ich möchte das aber jetzt für meine Tabelle anwenden. Die Spalte heißt "Code" und befindet sich in der Zelle ("J1"). Das heißt ich möchte jede alle Werte dieser Spalte durchgehen und mit dem Code oben bearbeiten. Das geht wahrscheinlich mit einer For-Schleife, nur habe ich es nicht hinbekommen. Ich freue mich sehr, wenn mir jemand behilflich sein kann.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Jede Zeile der Spalte durchgehen und ändern
29.11.2017 11:11:07
Bernd
Hi,
meinst Du so:
Sub ZEntfernen()
Dim start As Long, letzte As Long, lngZ As Long, strW As String, rngD As Range
'   Application.ScreenUpdating = False          ' nach dem Test aktivieren
start = 2
letzte = ActiveSheet.Range("J65536").End(xlUp).Row
For lngZ = letzte To start Step -1
strW = Cells(lngZ, 10).Value
Cells(lngZ, 10) = Right(strW, InStr(1, strW, "-", vbTextCompare) - 1)
Next
Application.ScreenUpdating = True
End Sub

MfG Bernd
AW: Jede Zeile der Spalte durchgehen und ändern
29.11.2017 14:12:09
Benjamin
Vorerst herzlichen Dank für die Hilfe. Hut ab und Daumen hoch für diese ehrenamtliche Unterstützung! Der Code funktioniert super!
Ich hätte da ein paar Fragen zum Code:
1) Warum hast du extra die Variable "start" gesetzt, obwohl man auch einfach bei der For-Schleife eine 2 schreiben kann?
2) Warum beginnt diese Zahl bei 2?
3) die -1 ist ja deswegen negativ, weil die Schleife rückwärts durchgeht. Liege ich da richtig?
4) Warum hast du bei Range die Zahl auf 65536 gesetzt? Kann man das nicht so machen, dass man einfach die Zellen berücksichtigt, die Werte enthalten?
Keiner dieser Fragen ist auf keinen Fall Kritik oder sonstiges. Dienen nur zu meinem besseren Verständnis. Falls das zu viel wird mit den Fragen, verstehe ich das auch.
Danke sehr!!
Anzeige
AW: Jede Zeile der Spalte durchgehen und ändern
29.11.2017 14:43:13
Daniel
HI
wenn du den Text vor dem Bindestrich entfernen willst, würde das für die ganze Spalte auch mit der Menüfunktion ERSETZEN gehen, in dem du "*-" durch nichts ersetzt, der Haken bei "gesamten Zellinhalt vergleichen" darf nicht gesetzt sein.
als VBA-Code dann:
Range("J:J").Replace what:="-*", Replacement:="", lookat:=xlpart

deine Schleife würde so aussehen:
dim Zelle as range
dim Wert as string
dim WertNeu as string
for each Zelle in Columns(10).SpecialCells(xlcelltypeconstants, 3)
wert = Zelle.Value
WertNeu = Mid(wert, InstrRev(wert, "-") + 1)
Zelle.Value = WertNeu
Next
Gruß Daniel
Anzeige
AW: Jede Zeile der Spalte durchgehen und ändern
04.12.2017 11:31:41
Benjamin
Vielen Dank für deine Hilfe Daniel. Funktioniert super! Großes Dankeschön an euch beide.
Hätte da eine Frage:
Ar = Cells(1).CurrentRegion
ReDim Br(UBound(Ar), UBound(Ar, 2))
For z = 1 To UBound(Ar)
Br(z, 1) = Ar(z, 1)
Br(z, 2) = Ar(z, 3)
Br(z, 3) = Ar(z, 13)
Br(z, 4) = Ar(z, 4)
Br(z, 5) = Ar(z, 5)
Br(z, 6) = Ar(z, 6)
Br(z, 7) = Ar(z, 7)
Br(z, 8) = Ar(z, 8)
Br(z, 9) = Ar(z, 2)
Br(z, 10) = Ar(z, 9)
Br(z, 11) = Ar(z, 14)
Br(z, 12) = Ar(z, 15)
Br(z, 13) = Ar(z, 10)
Br(z, 14) = Ar(z, 11)
Br(z, 15) = Ar(z, 12)
Next z
Cells(1).Resize(UBound(Br) + 1, UBound(Br, 2) + 1) = Br
Mit diesem Code hier vertausche ich die Reihenfolge der einzelnen Spalten. Funktioniert auch ganz gut. Aber am Ende platziert es die neuen Werte ab der Zelle(2, 2). Ich möchte aber, dass es bei Zelle(1, 1) beginnt. Weil sonst habe ich eine eine freie Zelle link und oben. Hat da jemand ne Lösung dafür? Irgendwas muss ich wohl an der letzten Zeile ändern. Habs nicht hinbekommen..
Anzeige

218 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige