Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
736to740
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
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Minuszeichen nach vorn

Minuszeichen nach vorn
25.02.2006 16:55:51
Dieter
Hallo zusammen,
ich habe eine Textdatei in Excel eingelesen. In variablen Spalten stehen Zahlen mit hinten angefügtem Minuszeichen. Ich möchte das Minuszeichen nach vorn holen und den Text in Zahl umwandeln.
Für einen feststehenden Bereich habe ich das hinbekommen.
Ich möchte aber, dass die umzuwandelnde Spalte abgefragt wird und das Abfrageergebnis meinen im Code feststehenden Bereich ersetzt.
Ganz komfortabel wäre es, wenn ich nicht die nebenstehenden Zelle füllen müsste, sondern den Text direkt ersetzen könnte.
Ich hoffe ihr könnt mir helfen.
es grüßt
Dieter
https://www.herber.de/bbs/user/31419.xls

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Minuszeichen nach vorn
25.02.2006 17:15:57
Peter
Hallo Dieter,
angenommen, deine Zahlen stehen in Spalte A, dann geht es z. B. so:

Sub MinusNachVorn()
Dim lZeile  As Long
For lZeile = 1 To Range("A65536").End(xlUp).Row
Range("A" & lZeile).Value = Trim(Range("A" & lZeile).Value)
If Right(Range("A" & lZeile).Value, 1) = "-" Then
Range("A" & lZeile).Value = "-" & _
Left(Range("A" & lZeile).Value, Len(Range("A" & lZeile).Value) - 1)
If IsNumeric(Range("A" & lZeile).Value) Then
Range("A" & lZeile).Value = Range("A" & lZeile).Value * 1
End If
End If
Next lZeile
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Minuszeichen nach vorn
25.02.2006 17:35:26
Dieter
Hallo Peter,
die Umwandlung funktioniert prima.
Auf dieser Basis bekomme ich die variable Spaltenauswahl selber hin.
Vielen Dank
Gruß
Dieter
AW: Minuszeichen nach vorn
25.02.2006 18:04:58
Peter
Hallo Dieter,
wenn du mehrere Spalten zu bearbeiten hast, kannst du sie auch so bereinigen:
Public

Function MinusShift(iSpalte As Integer)
Dim lZeile  As Long
If iSpalte > 0 And iSpalte < 257 Then
For lZeile = 1 To Cells(65536, iSpalte).End(xlUp).Row
Cells(lZeile, iSpalte).Value = Trim(Cells(lZeile, iSpalte).Value)
If Right(Cells(lZeile, iSpalte).Value, 1) = "-" Then
Cells(lZeile, iSpalte).Value = "-" & _
Left(Cells(lZeile, iSpalte).Value, Len(Cells(lZeile, iSpalte).Value) - 1)
If IsNumeric(Cells(lZeile, iSpalte).Value) Then
Cells(lZeile, iSpalte).Value = Cells(lZeile, iSpalte).Value * 1
End If
End If
Next lZeile
End If
End Function

Public

Sub MinusVerschieben()
Call MinusShift(7)
Call MinusShift(12)
Call MinusShift(256)
End Sub

In der

Sub gibst du lediglich die Spalten-NUMMER(n) aller Spalten an.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.

Anzeige
AW: Minuszeichen nach vorn
25.02.2006 18:58:04
Dieter
Hallo Peter,
eine prima und sinnvolle Alternative, die ich ganz bestimmt einsetzen werde.
Nur stimmt die Formatierung noch nicht. Ich hatte im Ursprungscode erst das Zahlenformat (mit Minusbeträgen in rot) gesetzt und anschließend nochmal mit 1 multipliziert. Erst diese eigentümliche, eigentlich doppelt gemoppelte Formatierung, ermöglichte es mir die Zahlen in richtigem Format anzuzeigen.
Wenn ich jetzt deinen Code ablaufen lasse, funktioniert die Formatierung nur bei ganzen Zahlen.
Hast du hierfür auch noch eine Idee?
Gruß
Dieter
AW: Minuszeichen nach vorn
25.02.2006 19:52:10
Dieter
Hallo Peter,
ich habe die Formatierung hinbekommen. Die Spalte frage ich jetzt per inputbox ab.
Dank deiner Hilfe habe ich meinen Fehler gefunden. Ich hatte immer versucht die Spalte als Buchstaben einzugeben. Auf die Nummer bin ich nicht gekommen.
die doppelte Formatierung habe ich beibehalten.
Der Code sieht jetzt so aus:

Sub Minuszeichen()
Dim lZeile  As Long
Dim ispalte As Long
ispalte = InputBox("Bitte NUMMER der Spalte eingeben", "Minuszeichen nach vorn")
For lZeile = 1 To Cells(65536, ispalte).End(xlUp).Row
Cells(lZeile, ispalte).Value = Trim(Cells(lZeile, ispalte).Value)
Cells(lZeile, ispalte).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
If Right(Cells(lZeile, ispalte).Value, 1) = "-" Then
Cells(lZeile, ispalte).Value = "-" & _
Left(Cells(lZeile, ispalte).Value, Len(Cells(lZeile, ispalte).Value) - 1)
Cells(lZeile, ispalte).Value = Cells(lZeile, ispalte).Value * 1
Cells(lZeile, ispalte).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
End If
Next lZeile
End Sub

Vielen Dank nochmal
Gruß
Dieter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige