PDA

Vollständige Version anzeigen : Minus Zeichen hinter Wert - Hilfe!


dietmar aus dresden
26.02.2004, 07:30
Hallo,

aus einer vorsindflutlichen Anwendung erhalte ich Daten mit positiven und negativen Werten als *.TXT Datei. Diese lasse ich Exel 97 einlaufen und habe nun das Problem, das negative Werte nicht mehr als Zahl sondern in dieser Form 638,52- ausgegeben werden. Das Minus steht also dahinter und nicht davor. Aus diesem Grund kann ich mit den Zahlen nicht mehr rechnen. Über ersetzen das Minus entfernen bringt nichts, da ich dann die Minuswerte ja nicht mehr erkenne. Das Problem ist, daß ich ab jetzt täglich eine große Liste bekomme und entsprechend schnell bearbeiten muss. Gibt es eine schnelle Lösung zur klärung des Problems, vielleicht über ein Makro oder so?

Vielen Dank

Dietmar

rex
26.02.2004, 07:38
Hallo Dietmar,

in solchen Fällen hilft immer folgende Formel:

In dem Beispiel steht Dein Wert z.B. in Zelle B9

=WERT(WENN(RECHTS(B9;1)="-";WERT("-"&LINKS(B9;LÄNGE(B9)-1));B9))

Danach die Formeln einfach kopieren und mit dem Befehl BEARBEITEN > INHALTE EINFÜGEN > WERTE wieder einfügen...und schon kannst Du mit den negativen Werten auch rechnen.

Gruß
Manfred

Hajo_Zi
26.02.2004, 07:44
Hallo Dietmar

leider hast Du nicht geschrieben wo DEine Daten stehen, ich bin von Spalte A ausgegangen.


Option Explicit

Sub minus()
Dim LoLetzte As Long
Dim LoI As Long
LoLetzte = IIf(IsEmpty(Range("A65536")), Range("A65536").End(xlUp).Row, 65536)
For LoI = 1 To LoLetzte
If Right(Cells(LoI, 1), 1) = "-" Then Cells(LoI, 1) = "-" & Left(Cells(LoI, 1), Len(Cells(LoI, 1)) - 1)
Next LoI
End Sub

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

dietmar aus dresden
26.02.2004, 08:12
Hallo Rex,

danke für Deine Antwort, aber das wird zu aufwendig, wenn man es täglich macht.

Hallo Hajo,

der Code klingt gut. Die Werte sind bei mir in Zeile C / D / E. Ich habe in Deinem Code das "A" durch ein "C" ausgetauscht, um mal zu testen. Jedoch es passiert nichts. Könntest Du noch mal schauen?

Viele Grüße

Dietmar

Hajo_Zi
26.02.2004, 08:21
Hallo Diemar

bei mir gibt es keine Zeile C, D und E nur Spalten.

Sub minus()
Dim LoLetzte As Long
Dim LoI As Long
Dim ByI As Byte
For ByI = 3 To 5
LoLetzte = IIf(IsEmpty(Cells(65536, ByI)), Cells(65536, ByI).End(xlUp).Row, 65536)
For LoI = 1 To LoLetzte
If Right(Cells(LoI, ByI), 1) = "-" Then
Cells(LoI, ByI) = "-" & Left(Cells(LoI, ByI), Len(Cells(LoI, ByI)) - 1)
End If
Next LoI
Next ByI
End Sub

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

dietmar aus dresden
26.02.2004, 09:01
Hallo, der Code funktiert jetzt in soweit, daß das Komma wirklich vor die Zahl kommt. Soweit wunderbar; aber es gibt noch ein Problem:

Die Zahlen haben ein eigenartiges Format (auch schon vor der Umwandlung). Es ist wie ein Leerzeichen vorgesetzt, welches ich manuell entfernen muss. Erst dann wird der Zelleninhalt als Zahl erkannt. Wenn bei der entsprechenden Zelle oben in den Eingabebereich klicke, um das Leerzeichen zu entfernen, ist in dem Feld links daneben (Funktionen) "QIKV" zu lesen. Hat das etwas zu bedeuten?

Was kann ich tun, um das Problem zu lösen?

Hajo_Zi
26.02.2004, 09:45
Hallo Ditmar

vielleich folgender geänderte Code.

Sub minus()
Dim LoLetzte As Long
Dim LoI As Long
Dim ByI As Byte
For ByI = 3 To 5
LoLetzte = IIf(IsEmpty(Cells(65536, ByI)), Cells(65536, ByI).End(xlUp).Row, 65536)
For LoI = 1 To LoLetzte
If Trim(Right(Cells(LoI, ByI), 1)) = "-" Then
Cells(LoI, ByI) = "-" & Left(Trim(Cells(LoI, ByI)), Len(Trim(Cells(LoI, ByI))) - 1)
End If
Next LoI
Next ByI
End Sub

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

dietmar aus dresden
26.02.2004, 10:10
Super, klappt erst einmal soweit so gut. Könnte man in den Code noch einbauen, das die Spalte C / D / E rechtsbündig ausgerichtet wird?

Und noch ein Problem: Wenn ich meine Ursprungs TXT Datei täglich über Excel öffnen (das muss ich, um die Daten zu importieren und die Spalten anzupassen) müsste ich ja die Makro täglich neu in die neue Excel-Tabelle einschreiben, was wiederum ein riesen Aufwand wäre.

Ich habe mir überlegt, eine Vorlage mit den Makros zu speichern, aber das bringt auch nichts so richtig, denn wenn ich eine leere Vorlage habe, und auf "öffnen" gehe, dann öffnet er mir eine neue Tabelle mit den entsprechenden Daten. Wie man die Inhalte einer TXT-Datei in eine bestehende, mit Makros versehene Datei speichert, habe ich noch nicht herausgefunden.

Danke erst mal für Deine Hilfe.

Hajo_Zi
26.02.2004, 10:17
Hallo Dietmar
Sub minus()
Dim LoLetzte As Long
Dim LoI As Long
Dim ByI As Byte
For ByI = 3 To 5
LoLetzte = IIf(IsEmpty(Cells(65536, ByI)), Cells(65536, ByI).End(xlUp).Row, 65536)
For LoI = 1 To LoLetzte
If Trim(Right(Cells(LoI, ByI), 1)) = "-" Then
Cells(LoI, ByI) = "-" & Left(Trim(Cells(LoI, ByI)), Len(Trim(Cells(LoI, ByI))) - 1)
End If
Cells(LoI, ByI).HorizontalAlignment = xlRight
Next LoI
Next ByI
End Sub


Ausrichtung ergänzt.
Das Makro muß nicht in die importierte Datei. Die Datei mit dem Makro muß nur geöffnet sein und die Datei mit den Daten muß die aktive sein.
Das Makro könnte in der Datei PersonL.xls im ordner Xlstart abgelegt werden.

Für den Import einer TXT Datei bin ich nicht der Fachmann.
<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

dietmar aus dresden
26.02.2004, 10:46
Super, allerdings wird dann bei jedem öffnen des Excels auch immer meine Datei mit dem entsprechenden Namen mit Makrovorlage geöffnet. Geht das auch anders?

Hajo_Zi
26.02.2004, 11:46
Hallo Dietmar

hast Du es in der Datei Personl.xls gespeichert??

Diese Datei wird beim Start von Excel im ausgeblendeten Zustand geöffnet.

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

dietmar aus dresden
27.02.2004, 09:56
Habe ich gemacht - geht leider nicht. Die Datei wird immer sichtbar als Startdatei göffnet. Ich bin langsam am verzweifeln. Es ist wirklich schwierig, eine txt-Datei mit einem Makro in Excel sauber darzustellen.

Hajo_Zi
27.02.2004, 10:09
Hallo Dietmar

öffnen nur diese Datei, Fenster, Fenster ausblenden, Excel schließen und veränderungen speichern.
<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

dietmar aus dresden
27.02.2004, 10:14
OK, Danke. Der Code funktioniert aber noch nicht, da bei den Werten mit dem Minus immer noch ein Leerzeichen vorgeschaltet ist. Könnte ich Dir mal die TXT schicken, úm evtl. eine Lösung zu finden, wie man diese täglich problemlos in ein verarbeitbares Format bringt?

Hajo_Zi
27.02.2004, 10:20
Hallo Dietmar

ich hatte schon geschrieben das ich mit einlesen einer TXT Datei nicht der Fachmann bin. Hier im Forum können Datei bis 100 kb hochgeladen werden auch als zip.
<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
<span style=" font-weight:bold;">Das Forum lebt auch von den R&uuml;ckmeldungen.</span>
Betriebssystem XP Pro und Excel Version XP Pro
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>