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