Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1552to1556
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

Löschen von Werten per Formel

Löschen von Werten per Formel
13.04.2017 11:33:35
Werten
Hallo,
ich habe einen Tabelle mit Eintrag in Spalte a1 bspw:
249-251,828-829-844,828-829-883,1659,1670-1684-1808,828-829-883,1957-1941-1932
Übrig bleiben sollen kommagetrennt nur noch Werte, die nicht mit 828 anfangen:
Also:
249-251,1659,1670-1684-1808,1957-1941-1932
Ist das irgendwie per Formel möglich?
Danke und Grüße
Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: Löschen von Werten per Formel
13.04.2017 12:14:49
Werten
Hallo Stefan,
probiers mal damit:
Sub Wandel()
Dim ls As Double
Dim i As Integer
Dim Wert As Double
ls = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To ls
If IsEmpty(Cells(1, i)) Then
Else
Wert = Left(Cells(1, i).Value, 3)
If Wert = 828 Then
Range(Cells(1, i), Cells(1, i)).Select
Selection.Delete
i = i - 1
End If
End If
Next i
End Sub
Gruß Jonas
VERBESSERTE VERSION
13.04.2017 12:23:17
Jonas
Hier noch mal eine verbesserte Version um Fehlern vorzubeugen.
Sub Wandel()
Dim ls As Double
Dim i As Integer
Dim Wert As Double
ls = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To ls
If IsEmpty(Cells(1, i)) Then
If IsEmpty(Cells(1, i + 1)) Then
Else
Range(Cells(1, i), Cells(1, i)).Select
Selection.Delete Shift:=xlToLeft
End If
Else
Wert = Left(Cells(1, i).Value, 3)
If Wert = 828 Then
Range(Cells(1, i), Cells(1, i)).Select
Selection.Delete Shift:=xlToLeft
i = i - 1
End If
End If
Next i
End Sub

Anzeige
AW: VERBESSERTE VERSION
13.04.2017 15:37:29
Stefan
Hi,
erst einmal vielen Dank!
Bei mir stopptr das mit dem HinweiS
LAUFZEITFEHLER, 13
Typen unverträglich
Wenn ich auf Debuggen gehe, wird die Zeile
Wert = Left(Cells(1, i).Value, 3)
markiert.
Ich hänge mal mein Dokument an.
https://www.herber.de/bbs/user/112861.xlsx
Vielen Dank nochmals für Dein eHilfe.
Grüße
Stefan
AW: VERBESSERTE VERSION
13.04.2017 15:52:09
Jonas
Hallo Stefan,
das liegt vermutlich daran das die Werte alle in einer Zelle stehen.
Das tut mir leid das habe ich überlesen.
Ich bin davon ausgegangen das das die Werte in einzelnen Zellen stehen.
Gibt jetzt zwei Möglichkeiten:
1. Du importierst die kommagetrennten aus einer .csv dann sieht Excel das als Zellenbegrenzung und liest das in einzelne Zellen. Dann lässt du die Makro laufen und dann exportierst du das ganze wieder und sagst das es kommagetrennt exportiert werden soll.
2. Ich schreib nen anderen Code :) (Ist denk ich einfacher)
Und Entschuldige das ich das falsch verstanden habe.
Gruß Jonas
Anzeige
AW: VERBESSERTE VERSION
13.04.2017 16:25:09
Jonas
Ok nimm am besten den Code von Hansueli
der ist um Längen besser ;)
AW: Löschen von Werten per Formel
13.04.2017 16:01:59
Werten
Hallo Stefan,
Ich glaub nicht mit einer einfachen Formel. Ev. mit einem Formelmonster.
Einfacher wäre hier eine UDF, diesen Code in ein Modul
Function RemoveBeginn(Bezug As Range, NichtBeginnendMit As String) As Variant
Dim tmp, Lx As Long, outputText As Variant
tmp = Split(Bezug, ",")
For Lx = LBound(tmp) To UBound(tmp)
If Not Left(tmp(Lx), Len(NichtBeginnendMit)) = NichtBeginnendMit Then
outputText = outputText & tmp(Lx) & ","
End If
Next Lx
RemoveBeginn = Left(outputText, Len(outputText) - 1)
End Function

Dann mit der Formel (ab A2) =RemoveBeginn(A2;828) und runterkopieren.
Gruess Hansueli
Anzeige
AW: Löschen von Werten per Formel
13.04.2017 16:35:36
Werten
Dankeschön! Ich teste das mal!
Euch allen ein schönes Osterfest!
Stefan

102 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige