Supportnet / Forum / Tabellenkalkulation
Zellenformatierung: Inhalt * 1000
Frage
Hallo zusammen,
ich habe folgendes Problem in Excel 2003:
Wie kann ich eine Zelle formatieren, daß der eingegebene Wert mit 1000 multipliziert wird?
Beispiel: Eingabe in A1: 135 / Ausgabe in A1: 135000
Toll wäre auch, wenn man dann eventuell noch Tausenderpunkte einfügen könnte.
Ich habe es versucht mit bedingter Formatierung als auch mit benutzerdefiniertem Zahlenformat, aber es hat nicht funktioniert.
Weiß jemand eine Lösung für dieses Problem?
Gruß, Björn
Antwort 1 von rainberg
Hallo Björn,
mit einer Formatierung kannst Du keine Werte verändern.
Für Dein Vorhaben brauchst Du ein Makro, etwa so
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target
.Value = Target.Value * 1000
.NumberFormat = "#,##0"
End With
Application.EnableEvents = True
End Sub
Bei diesem Beispielcode müsste noch der Bereich eingeschränkt werden, ansonsten wirkt er auf dem gesamten Tabellenblatt.
Gruß
Rainer
mit einer Formatierung kannst Du keine Werte verändern.
Für Dein Vorhaben brauchst Du ein Makro, etwa so
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Target
.Value = Target.Value * 1000
.NumberFormat = "#,##0"
End With
Application.EnableEvents = True
End Sub
Bei diesem Beispielcode müsste noch der Bereich eingeschränkt werden, ansonsten wirkt er auf dem gesamten Tabellenblatt.
Gruß
Rainer
Antwort 2 von Björn
Hallo Rainer,
danke für Deine schnelle Antwort.
Es wäre super, wenn Du mir noch sagen könntest wie das mit der Einschränkung des Bereiches funktioniert, da ich bislang kaum mit Makros gearbeitet habe.
Kennst Du ein gutes Buch, das einen in die Makroprogrammierung einführt?
Gruß
Björn
danke für Deine schnelle Antwort.
Es wäre super, wenn Du mir noch sagen könntest wie das mit der Einschränkung des Bereiches funktioniert, da ich bislang kaum mit Makros gearbeitet habe.
Kennst Du ein gutes Buch, das einen in die Makroprogrammierung einführt?
Gruß
Björn
Antwort 3 von rainberg
Hallo Björn,
gib doch einfach mal bekannt, in welchem Tabellenbereich dieser Code wirken soll, ich führe dann die Änderung durch.
Ein Buch kann ich Dir leider nicht empfehlen.
Gruß
Rainer
gib doch einfach mal bekannt, in welchem Tabellenbereich dieser Code wirken soll, ich führe dann die Änderung durch.
Ein Buch kann ich Dir leider nicht empfehlen.
Gruß
Rainer
Antwort 4 von Björn
Hallo Rainer,
z. B. im Bereich von A2:A80 und C2:C80.
Danke für Deine Hilfe.
Gruß
Björn
z. B. im Bereich von A2:A80 und C2:C80.
Danke für Deine Hilfe.
Gruß
Björn
Antwort 5 von rainberg
Hallo Björn,
anbei die Anpassung
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A2:A80,C2:C80")) Is Nothing Then
With Target
.Value = Target.Value * 1000
.NumberFormat = "#,##0"
End With
End If
Application.EnableEvents = True
End Sub
Gruß
Rainer
anbei die Anpassung
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A2:A80,C2:C80")) Is Nothing Then
With Target
.Value = Target.Value * 1000
.NumberFormat = "#,##0"
End With
End If
Application.EnableEvents = True
End Sub
Gruß
Rainer
Antwort 6 von Björn
Hallo Rainer,
danke für die Anpassung.
Was muß ich machen, um das Makro zum Laufen zu bringen?
Ich habe es in den Visual Basic Editor kopiert, aber ich weiß nicht was ich machen muß, um es aufrufen zu können.
Gruß
Björn
danke für die Anpassung.
Was muß ich machen, um das Makro zum Laufen zu bringen?
Ich habe es in den Visual Basic Editor kopiert, aber ich weiß nicht was ich machen muß, um es aufrufen zu können.
Gruß
Björn
Antwort 7 von rainberg
Hallo Björn,
das Makro wird bei jeder Eintragung im fesgelegten Bereich (A2:A80; C2:C80) automatisch gestartet.
Vorraussetzung ist, dass sich der Code im Codebereich des betreffenden Arbeitsblattes befindet.
Diesen Codebereich erreichst Du am besten , indem Du einen Rechtsklick auf den Reiter des Tabellenblattes machst und dann "Code anzeigen" wählst.
Gruß
Rainer
das Makro wird bei jeder Eintragung im fesgelegten Bereich (A2:A80; C2:C80) automatisch gestartet.
Vorraussetzung ist, dass sich der Code im Codebereich des betreffenden Arbeitsblattes befindet.
Diesen Codebereich erreichst Du am besten , indem Du einen Rechtsklick auf den Reiter des Tabellenblattes machst und dann "Code anzeigen" wählst.
Gruß
Rainer
Antwort 8 von Björn
Hallo Rainer,
habe ich so gemacht. Hat einmal funktioniert. Wenn ich jetzt aber z. B. in A2 eine andere Zahl eingebe geschieht nichts.
Hast Du eine Ahnung an was das liegen könnte?
Außerdem wurde die Zahl "100" als "100 000" dargestellt. Gibt es eine Möglichkeit den Tausenderpunkt angezeigt zu bekommen (ist aber nicht so tragisch)?
Gruß
Björn
habe ich so gemacht. Hat einmal funktioniert. Wenn ich jetzt aber z. B. in A2 eine andere Zahl eingebe geschieht nichts.
Hast Du eine Ahnung an was das liegen könnte?
Außerdem wurde die Zahl "100" als "100 000" dargestellt. Gibt es eine Möglichkeit den Tausenderpunkt angezeigt zu bekommen (ist aber nicht so tragisch)?
Gruß
Björn
Antwort 9 von rainberg
Hallo Björn,
was Du schreibst, kann ich nicht nachvollziehen.
Das Makro funktioniert bei jeder Eingabe im definierten Bereich, die mit Enter abgeschlossen wird.
Der Tausender-Punkt wird auch geschrieben.
Leider kann ich nicht sehen, was Du falsch gemacht hast.
Gruß
Rainer
was Du schreibst, kann ich nicht nachvollziehen.
Das Makro funktioniert bei jeder Eingabe im definierten Bereich, die mit Enter abgeschlossen wird.
Der Tausender-Punkt wird auch geschrieben.
Leider kann ich nicht sehen, was Du falsch gemacht hast.
Gruß
Rainer
Antwort 10 von Björn
Hallo Rainer,
danke für Deine Hilfe.
Gruß
Björn
danke für Deine Hilfe.
Gruß
Björn
Antwort 11 von Björn
Hallo Rainer,
habe jetzt herausgefunden warum es gestern plötzlich nicht mehr funktionierte:
Da die Zahl nicht mit Tausenderpunkt erschien, habe ich versuchsweise das Zahlenformat im Makro geändert.Daraufhin wurde dann das Makro gar nicht mehr ausgeführt. Erst nach einem kompletten Neustart von Excel wurde eine neu eingegebene Zahl dann nach dem geänderten Zahlenformat angezeigt. Inzwischen habe ich herausgefunden, daß das Makro nach einer Abänderung nicht mehr ausgeführt wird, wenn noch mehrere andere Excel-Dateien gleichzeitig geöffnet sind. Dann hilft nur noch der komplette Neustart von Excel. Ist nur die eine Excel-Datei geöffnet, führt Excel die Makroänderung sofort aus, ohne Neustart von Excel.
Daß anstatt eines Tausenderpunkts nur ein Leerschritt angezeigt wird, hängt damit zusammen, daß ich mit dem norwegischen Windows und Excel arbeite. Im norwegischen Windows ist bei Systemeinstellungen> Ländereinstellungen>Gruppierungszeichen für Zahlen ein Leerschritt hinterlegt. Ändert man das auf Punkt, wird der Tausenderpunkt in Excel angezeigt.
Nochmals vielen Dank für Deine Hilfe.
Gruß
Björn
habe jetzt herausgefunden warum es gestern plötzlich nicht mehr funktionierte:
Da die Zahl nicht mit Tausenderpunkt erschien, habe ich versuchsweise das Zahlenformat im Makro geändert.Daraufhin wurde dann das Makro gar nicht mehr ausgeführt. Erst nach einem kompletten Neustart von Excel wurde eine neu eingegebene Zahl dann nach dem geänderten Zahlenformat angezeigt. Inzwischen habe ich herausgefunden, daß das Makro nach einer Abänderung nicht mehr ausgeführt wird, wenn noch mehrere andere Excel-Dateien gleichzeitig geöffnet sind. Dann hilft nur noch der komplette Neustart von Excel. Ist nur die eine Excel-Datei geöffnet, führt Excel die Makroänderung sofort aus, ohne Neustart von Excel.
Daß anstatt eines Tausenderpunkts nur ein Leerschritt angezeigt wird, hängt damit zusammen, daß ich mit dem norwegischen Windows und Excel arbeite. Im norwegischen Windows ist bei Systemeinstellungen> Ländereinstellungen>Gruppierungszeichen für Zahlen ein Leerschritt hinterlegt. Ändert man das auf Punkt, wird der Tausenderpunkt in Excel angezeigt.
Nochmals vielen Dank für Deine Hilfe.
Gruß
Björn