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

Entfernung von Textteil in Zelle durch Makro

Entfernung von Textteil in Zelle durch Makro
31.07.2014 13:03:03
Textteil
Guten Tag,
ich erhalte durch den Import einer .csv-Datei alle Zellen, die Eurobeträge erhalten, als Text in der Form EUR 0,00.
Sobald ich die Zeichen E, U, R und Leer manuell entferne, wandelt Excel 2003 den verbliebenen Ziffernrest in eine Zahl um und es lässt sich damit rechnen.
Gibt es ein Makro, das mir die manuelle Arbeit abnehmen kann? Es handelt sich immer um die Zellkoordinaten P:P, R:R und U:U. Weiß jemand dafür einen Code?
Vielen Dank.
Barbara

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 13:13:16
Textteil
Hallo,
vielleicht so?
Sub Start ()
Sheets("Tabelle1").Range("P:P,R:R,U:U").Replace What:="EUR ", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Gruß Tino

AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 14:57:06
Textteil
Tino, Du bist mein Held! Vielen Dank! Es hat funktioniert, nur gäbe es noch eine Kleinigkeit zu verändern. Anders als bei dem manuellen Entfernen der Zeichen belässt Excel die Zelle im Textformat. Ich muss also nochmals drübergehen und die verbliebenen Ziffern in Zahlen verwandeln. Hast du auch hiefür eine Lösung? Das wäre ganz prima! Nochmals vielen Dank für das Makro, es hilft mir auch schon in der vorliegenden Form sehr weiter!!!
Herzliche Grüße
Barbara

Anzeige
AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 15:32:57
Textteil
Hallo
Versuch mal diese Variante, aber bitte zur Vorsicht in einer neuen Datei.
Kopiert wird Range, und wieder an derselben Stelle als Wert eingefügt.
Da Excel zum Teil intelligent ist wandelt er es selbst in eine Zahl um.
Keine Garantie das es in jeder Version klappt. Einfach mal ausprobieren.
Wenn es klappt den Kopiervorgang immer -nach- dem Replace ausführen.
Sheets("Tabelle1").Range("P:P,R:R,U:U").Copy
Sheets("Tabelle1").Range("P:P,R:R,U:U").PasteSpecial xlValues
Gruss Adis

AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 16:09:17
Textteil
Hallo, Adis, vielen Dank, aber das funktioniert leider nicht. Ich erhalte die Fehlermeldung:
Laufzeitfehler '1004': Bei einer Markierung von nicht-angrenzenden Zellen ist die Ausführung dieses Befehls nicht möglich.
Herzliche Grüße
Barbara

Anzeige
AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 16:20:43
Textteil
Hallo,
setze das Zellformat vorher auf Standard.
Sub Start()
With Sheets("Tabelle1").Range("P:P,R:R,U:U")
.NumberFormat = "General"
.Replace What:="EUR ", Replacement:="", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
End Sub

Gruß
Rudi

AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 17:44:49
Textteil
Hallo, Rudi,
vielen Dank. Hier habe ich das gleiche Ergebnis wie bei Tinos Lösungsvorschlag, die Zellen bleiben leider im Textformat. Ich habe vor dem Ausführen des Makros die Zellen auf "Standard" gesetzt, wie Du es empfohlen hast.
Gruß
Barbara

Anzeige
mit einer Hilfzelle
31.07.2014 18:08:44
Tino
Hallo,
versuch es mal so.
Sub Start()
Dim rngTmp As Range, rngNum As Range
With Sheets("Tabelle1")
    Set rngTmp = .Cells(1, .Columns.Count)
    
    With .Range("P:P,R:R,U:U")
        
        .Replace What:="EUR ", Replacement:="", _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
        On Error Resume Next
        Set rngNum = .SpecialCells(xlCellTypeConstants, 1)
        If Err.Number <> 0 Then Exit Sub
        
        rngTmp.Value = 1
        For Each rngNum In rngNum.Areas
            If Not Application.CutCopyMode Then rngTmp.Copy
            rngNum.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
        Next rngNum
        rngTmp.Clear
    End With
End With
End Sub
Gruß Tino

Anzeige
AW: mit einer Hilfzelle
31.07.2014 18:20:16
Barbara
Hallo, Tino,
ich finde es toll, was du und ihr mir hier an Hilfe anbietet...
Leider ist das Problem noch immer nicht geknackt, EUR ist zwar getilgt, aber die Ziffern bleiben hartnäckig im Textformat. Was meinst Du im Betreff Deiner Antwort mit "mit einer Hilfszelle"?
Kann es sein, dass ich mich irgendwie dämlich anstelle? Ich habe ja leider keine Ahnung von VBA, ich kopiere den Code in den VBA-Editor, passe den Namen des Arbeitsblatts darin an und lasse das Makro dann laufen...
Grüße
Barbara

der Hinweis von Daniel
31.07.2014 19:27:54
Daniel
Hallo,
ist Gold wert!
Versuch es mal so!
Sub Start()
With Sheets("Tabelle1")
    With .Range("P:P,R:R,U:U")
        .Replace What:="EUR ", Replacement:="", _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

        .Replace What:=",", Replacement:=".", _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    End With
End With
End Sub
Gruß Tino

Anzeige
Danke Daniel und Tino
31.07.2014 21:01:29
Barbara
Hallo, Tino und Daniel,
das war es: ES KLAPPT! Dreimal HURRA!!! Ihr seid die Größten!
Es dankt von Herzen
Barbara :-))

AW: Entfernung von Textteil in Zelle durch Makro
31.07.2014 18:32:26
Textteil
Hi
wenn man beim Ersetzen mit Mit Makros arbeitet, muss man bedenken, dass VBA und Excel Englisch miteinander reden und das Ersetzen wie eine Neueingabe des Wertes wirkt.
Daher erkennt Excel eine Zahl nur dann als Zahl, wenn die Zahl im englischen Format, dh mit dem Punkt als Dezimalzeichen von VBA eingegeben wird, daher muss man erstmal das Komma durch einen Punkt ersetzen:
With Range("P:P,R:R,U:U")
.Replace ",", ".", xlpart
.Replace "EUR", "", xlpart
.Replace " ", "", xlpart 'kann ggf entfallen
End With
fürst du das hingeben "von Hand" aus, spricht Excel deutsch mit dir und die Zahlen müssen das Komma enthalten um als Zahl erkannt zu werden.
gruß Daniel
Anzeige

333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige