Formatierungsänderung durch Neuberechnung

Hallo,
folgendes Problem.
Dieses Makro

Sub ZeileBerechnen()
'nach Änderung Zelle Neuberechnung der betroffenen Zeile

z = ActiveCell.Row - 1
s = ActiveCell.Column

Rows(z & „:“ & z).Calculate

'zurück zur bearb. Zelle
Cells(z, s).Select

End Sub

berechnet die Zeile der aktiven Zelle (autom. Neuber. ist aus) neu.
Der Aufruf erfolgt mit Worksheet_Change.
Leider wird mit der Neuberechnung die Formatierung der Zellen verändert.
Datum - von TT.MM.JJ in TT/MM/JJ
Buchhaltung von , in . und . in , - die Werte rücken nach rechts
eine Differenz zweier Zellen wird in Klammern gesetzt.

Markiert man die betreffende Zeile wird die ursprüngliche Formatierung wieder hergestellt.
Bin ratlos.

cu

Nachtrag:
Mit großer Brille habe ich gerade gesehen - so 100%ig ist die Wiederherstellung der Formatierung doch nicht.
Bei der Differenz verschwinden zwar die Klammern, aber unten liegen irgendwelche undefinierbaren „Krümmel“ und das Komma geht unten nicht nach link, sondern nach rechts ???
Werde mir das Ganze mal mit riesiger Monitorauflösung anschauen.

cu

Grüezi ghostkeeper

Dieses Makro

Sub ZeileBerechnen()
'nach Änderung Zelle Neuberechnung der betroffenen Zeile

z = ActiveCell.Row - 1
s = ActiveCell.Column

Rows(z & „:“ & z).Calculate

'zurück zur bearb. Zelle
Cells(z, s).Select

End Sub

berechnet die Zeile der aktiven Zelle (autom. Neuber. ist aus)
neu.

Das sollte IMO soweit OK sein.

Der Aufruf erfolgt mit Worksheet_Change.
Leider wird mit der Neuberechnung die Formatierung der Zellen
verändert.
Datum - von TT.MM.JJ in TT/MM/JJ
Buchhaltung von , in . und . in , - die Werte rücken nach
rechts
eine Differenz zweier Zellen wird in Klammern gesetzt.

…aber das kann ich mir nun mal gar nicht vorstellen - läuft da noch ein anderes Makro mit?

Mit welchen Regions-Einstellungen arbeitest Du?

Ist dasselbe auch in eine neuen Datei zu beobachten?

Möglicherweise ist die Mappe korrupt geworden.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi,
zurück (in die Schweiz ???)

Das sollte IMO soweit OK sein.

Die Werte werden richtig berechnet, funktioniert prima.

…aber das kann ich mir nun mal gar nicht vorstellen - läuft
da noch ein anderes Makro mit?

Nein.

Mit welchen Regions-Einstellungen arbeitest Du?

Deutsch.

Ist dasselbe auch in eine neuen Datei zu beobachten?

Habe heute eine neue Datei erstellt, gleiches Ergebnis.
Dabei habe ich bemerkt,

  • dass die Klammern auftauchen, wenn das Ergebnis negativ ist.
  • der Effekt tritt nicht auf, wenn ich den Bereich nur selektiere und dann ein Calculate mache.

Das Datumsformat DD/MM/JJ kann ich dabei nicht mal mit „Zellen formatieren“ auswählen.

cu

Grüezi ghostkeeper

Grüezi,
zurück (in die Schweiz ???)

Genau :wink:

Das sollte IMO soweit OK sein.

Die Werte werden richtig berechnet, funktioniert prima.

Ok, das ist dann schon mal was.

…aber das kann ich mir nun mal gar nicht vorstellen - läuft
da noch ein anderes Makro mit?

Nein.

Mit welchen Regions-Einstellungen arbeitest Du?

Deutsch.

Ist dasselbe auch in eine neuen Datei zu beobachten?

Habe heute eine neue Datei erstellt, gleiches Ergebnis.
Dabei habe ich bemerkt,

  • dass die Klammern auftauchen, wenn das Ergebnis negativ ist.

Das kann am zugewiesenen Zellenformat in der Tabelle selbst liegen - prüfe dieses daher mal explizit.

  • der Effekt tritt nicht auf, wenn ich den Bereich nur
    selektiere und dann ein Calculate mache.

Also über die Oberfläche von Excel:

Das Datumsformat DD/MM/JJ kann ich dabei nicht mal mit „Zellen
formatieren“ auswählen.

Hmmm, formatiere die Zellen mal explizit mit TT.MM.JJJJ und schau dir an ob es Veränderungen gibt.

Es könnte sein, dass die Neuberechnung über VBA sich hier der US-Formate bedient (warum auch immer).


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo,

Das kann am zugewiesenen Zellenformat in der Tabelle selbst
liegen - prüfe dieses daher mal explizit.

Das Format ist auf Buchhaltung (2 St., kein WZ) und auf Datumsformat DD.MM.YY eingestellt.

  • der Effekt tritt nicht auf, wenn ich den Bereich nur
    selektiere und dann ein Calculate mache.

Also über die Oberfläche von Excel:

Nein, statt

Rows(x,y).Calculate

wo nur die betreffende Zeile berechnet wird ein

Rows(x,y).Select
Calculate

im Makro. Hier wird natürlich die gesamte Tabelle berechnet (ich dachte erst, es bezieht sich nur auf den selekt. Bereich).

Das Datumsformat DD/MM/JJ kann ich dabei nicht mal mit „Zellen
formatieren“ auswählen.

Hmmm, formatiere die Zellen mal explizit mit TT.MM.JJJJ und
schau dir an ob es Veränderungen gibt.

Nein.
Die „Krümel“ die ich erwähnt habe wenn das Format beim Markieren der Zeile zurückspringt, sind die Reste der Klammern, die unten über die Einträge ragen.
Ein negat. Wert geht also von (0.22) zurück auf - 0,22. Da sich auch die Position in der Zelle wieder nach links verschiebt ist der Rest der linken Klammer genau an der Kommastelle. Das sieht dann aus, als ob das Komma nach rechts gebogen wird.
Das Ganze wird immer mysteriöser.

cu

Grüezi ghostkeeper

Das kann am zugewiesenen Zellenformat in der Tabelle selbst
liegen - prüfe dieses daher mal explizit.

Das Format ist auf Buchhaltung (2 St., kein WZ) und auf
Datumsformat DD.MM.YY eingestellt.

…ich nehme an, dass die ‚Y‘ ein Verschreiber sind und da in echt dann ‚JJ‘ steht?

  • der Effekt tritt nicht auf, wenn ich den Bereich nur
    selektiere und dann ein Calculate mache.

Also über die Oberfläche von Excel:

Nein, statt

Rows(x,y).Calculate

wo nur die betreffende Zeile berechnet wird ein

Rows(x,y).Select
Calculate

im Makro. Hier wird natürlich die gesamte Tabelle berechnet
(ich dachte erst, es bezieht sich nur auf den selekt.
Bereich).

OK, ja, hier wird komplett neu berechnet; die Selektierung kannst Du getrost weglassen.

Das Datumsformat DD/MM/JJ kann ich dabei nicht mal mit „Zellen
formatieren“ auswählen.

Hmmm, formatiere die Zellen mal explizit mit TT.MM.JJJJ und
schau dir an ob es Veränderungen gibt.

Nein.
Die „Krümel“ die ich erwähnt habe wenn das Format beim
Markieren der Zeile zurückspringt, sind die Reste der
Klammern, die unten über die Einträge ragen.
Ein negat. Wert geht also von (0.22) zurück auf - 0,22. Da
sich auch die Position in der Zelle wieder nach links
verschiebt ist der Rest der linken Klammer genau an der
Kommastelle. Das sieht dann aus, als ob das Komma nach rechts
gebogen wird.
Das Ganze wird immer mysteriöser.

Ja, das sehe ich auch so - kannst Du die abgespeckte und ev. anonymisierte Mappe auf einen WebSpace hochladen und den Link hier nennen oder sie mit direkt zusenden [an t(punkt)ramel(at)ggs(punkt)ch]?
Das Ganze interessiert mich denn nun doch sehr.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo

…ich nehme an, dass die ‚Y‘ ein Verschreiber sind und da in
echt dann ‚JJ‘ steht?

-)

Habe die Mappe immer neu erzeugt, dauert daher einen Moment.
Dann geht sie sofort auf die Reise-

cu

t(punkt)ramel(at)ggs(punkt)ch]?

Grüezi Thomas,

gilt die oben durch w-w-w genannte Mailadresse nicht mehr?

Ansonsten verfolge ich diese Beitragsfolge weiter interessiert und sehr ratlos.

Gruß
Reinhard

Grüezi Reinhard und ghostkeeper.

Mit der Mail-Adresse hatte ich mich verschreiben - die im W-W-W angegebene ist weiterhin korrekt.

…ich nehme an, dass die ‚Y‘ ein Verschreiber sind und da in
echt dann ‚JJ‘ steht?

-)

Habe die Mappe immer neu erzeugt, dauert daher einen Moment.
Dann geht sie sofort auf die Reise-

Ich habe sie erhalten und schon geantwortet.

Das Ganze ist ‚nur‘ eine optische Angelegenheit - die effektiven Formate werden nicht verändert und beim scrollen aus dem sichbaren Bereich und wieder zurück ist alles wieder OK.

Folgender Workaround hat bei mir geklappt:

Private Sub Worksheet\_Change(ByVal Target As Range)
'geänderte Zeile neu berechnen

 Application.ScreenUpdating = False

 Target.EntireRow.Calculate
 Target.Select

 Application.ScreenUpdating = True

End Sub


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -