Zeichen aus Zellen löschen

Hallo zusammen,

kann mir jemand bei folgendem Problem helfen?

Aus einem externen Programm importierte Datensätze sehen in Excel 2010
so aus:

 A B C D E
1 ="123456" ="ABCDE" ="123AB" ="abcd123" ="654321"
2 ="ABCDE" ="abcd123" ="654321" ="123AB" ="123456"
3 ="abcd123" ="ABCDE"
4
5
6

Ich möchte das = und die Gänsebeine vorn und hinten in den ersten 5 Spalten löschen.

Der folgende Code löscht mir das erste Zeichen, also das =:

Option Explicit

Sub DeleteFirstCharacter()
' loescht das erste Zeichen der Zellen
Dim Zelle As Range
Dim TMP

' genutzter Bereich auf der aktiven Tabelle
For Each Zelle In ActiveSheet.UsedRange
 TMP = Zelle.Value
 If Len(TMP) 0 Then
 Zelle.Value = Mid(TMP, 2, Len(TMP) - 1)
 End If
Next Zelle

End Sub

OK, jage ich es nochmal drüber, ist das erste " auch weg.
Aber wie werd ich das " am Schluss los?
Es wäre nett, wenn mir das jemand in einen Arbeitsgang bringen könnte.

Gruß
Rolf

Hallo,

ersetze

Zelle.Value = Mid(TMP, 2, Len(TMP) - 1)

durch

Zelle.Value = Mid(TMP, 3, Len(TMP) - 3)

und du schneidest in einem Mal die ersten beiden und das letzte Zeichen ab.

MfG
Stephan

Hallo Stephan,

ersetze

Zelle.Value = Mid(TMP, 2, Len(TMP) - 1)

durch

Zelle.Value = Mid(TMP, 3, Len(TMP) - 3)

und du schneidest in einem Mal die ersten beiden und das
letzte Zeichen ab.

vielen Dank, das klappt prima. Freut mich sehr.
Kann man das noch auf Spalte B bis E begrenzen?

Gruß
Rolf

vielen Dank, das klappt prima. Freut mich sehr.
Kann man das noch auf Spalte B bis E begrenzen?

Hallo Rolf,

eine Nachfrage, in den Zellen steht vorne =" und hintendran ".
Könnten da auch die beiden Zeichen IN dem Text dazwischen stehen?

Gruß
Reinhard

Hallo,

vielen Dank, das klappt prima. Freut mich sehr.
Kann man das noch auf Spalte B bis E begrenzen?

natürlich lässt sich das eingrenzen.

Ersetze

For Each Zelle In ActiveSheet.UsedRange

durch

For Each Zelle In ActiveSheet.Range(„B:E“)

MfG
Stephan

Hallo Stephan,

Kann man das noch auf Spalte B bis E begrenzen?

natürlich lässt sich das eingrenzen.

Ersetze

For Each Zelle In ActiveSheet.UsedRange

durch

For Each Zelle In ActiveSheet.Range(„B:E“)

Das funktoniert. Alles Bestens.
Danke für die schnelle Hilfe und schönen Sonntag.

Gruß
Rolf

Moin Reinhard,

eine Nachfrage, in den Zellen steht vorne =" und hintendran ".
Könnten da auch die beiden Zeichen IN dem Text dazwischen
stehen?

Nein, das ist ein festes Übergabeformat.

Gruß und schönen Sonntag.
Rolf

eine Nachfrage, in den Zellen steht vorne =" und hintendran ".
Könnten da auch die beiden Zeichen IN dem Text dazwischen
stehen?

Nein, das ist ein festes Übergabeformat.

Hallo Rolf,

das müßte schneller sein als Zellen mit Vba einzeln abzuklappern:

Sub Rolf()
With Worksheets("Tabelle1") 'oder With ActiveSheet
 With .Range("B1:E" & .Range("B:E").SpecialCells(xlCellTypeLastCell).Row)
 .Replace What:="=""", Replacement:="", LookAt:=xlPart, SearchOrder \_
 :=xlByRows, MatchCase:=False
 .Replace What:="""", Replacement:="", LookAt:=xlPart, SearchOrder \_
 :=xlByRows, MatchCase:=False
 End With
End With
End Sub

Gruß
Reinhard

Moin Reinhard,

das müßte schneller sein als Zellen mit Vba einzeln
abzuklappern:

Sub Rolf()
With Worksheets(„Tabelle1“) 'oder With ActiveSheet
With .Range(„B1:E“ &
.Range(„B:E“).SpecialCells(xlCellTypeLastCell).Row)
.Replace What:="=""", Replacement:="", LookAt:=xlPart,
SearchOrder _

=xlByRows, MatchCase:=False

.Replace What:="""", Replacement:="", LookAt:=xlPart,
SearchOrder _

=xlByRows, MatchCase:=False

End With
End With
End Sub

Yep, das klappt auch, obwohl ich nicht ganz nachvollziehen kann,
was er da macht…
Danke Dir.

Gruß
Rolf

Yep, das klappt auch, obwohl ich nicht ganz nachvollziehen
kann, was er da macht…

Hallo Rolf,

starte die Makroaufzeichnung,dann wähle in Excel „Ersetzen“…
Dann schaue dir das aufgezeichnete Makro an.
Wenn dann noch was unklar ist frag einfach gezielt nach.

Gruß
Reinhard