Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Ergebniszelle einfrieren

Forumthread: Ergebniszelle einfrieren

Ergebniszelle einfrieren
17.11.2024 20:55:04
Uwe Ernst
Hallo Wissende,
ich möchte die Auslesezelle A20aus der Ergebniszelle B20 einfrieren, sodass ich beim erneuten Öffnen und ändern der Datei mit neuer Ergebniszelle, den neuen Wert zu der Auslesezelle addiere.
Dank und
Gruß
Uwe
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ergebniszelle einfrieren
17.11.2024 21:09:44
Onur
Was bitte soll eine Ergebniszelle sein und was eine Auslesezelle ?
AW: Ergebniszelle einfrieren
17.11.2024 22:18:17
GerdL
Hallo Uwe,

die Prozedur ins Modul der Tabelle kopieren; Speichern musst du ggf. halt noch.
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address(0, 0) = "B20" Then _
Range("A20") = Range("A20") + Range("B20")
End Sub

Gruß Gerd
Anzeige
Oh, Oh, Oh....
17.11.2024 23:16:39
Uduuh
Hallo,
das ergibt eine Rekursion, weil du die Events nicht ausgeschaltet hast.
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address(0, 0) = "B20" Then
On Error GoTo ERREXIT
Application.EnableEvents = False
Range("A20") = Range("A20") + Range("B20")
End If
ERREXIT:
Application.EnableEvents = True
End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: Oh, Oh, Oh....
17.11.2024 23:20:24
Onur
Das stimmt so nicht, da das Makro nur auf B20 eagiert, jedoch A20 verändert.
AW: Oh, Oh, Oh....
18.11.2024 07:12:29
Luschi
Hallo Onur,

Udo hat Recht, auch Einträge per Vba in 1 Zelle rufen das Event 'Worksheet_Change' standardmäßig auf; überprüfen kann man es so:
Private Sub Worksheet_Change(ByVal Target As Range)

Debug.Print Target.Address
If Target.Address(0, 0) = "B20" Then _
Range("A20").Value = Range("A20") .Value+ Range("B20").Value
End Sub

Ergebnis: B20 und A20 werden in dieser Reihenfolge im Vba-Direktfenster angezeigt,

Gruß von Luschi
aus klein-Paris



Anzeige
AW: Oh, Oh, Oh....
18.11.2024 07:17:08
Onur
Hi Luschi,
Das weiss ich doch, aber nur einmal.
Wenn B20 verändert wird, verändert das Makro A20 und somit wird das Event wieder aufgerufen. Aber dank
If Target.Address(0, 0) = "B20" Then

wird dann wieder rausgesprungen. Also keine Endlosschleife. Der Code braucht vielleicht eine Nanosekunde mehr.

Gruss
Onur
Anzeige
AW: Oh, Oh, Oh....
18.11.2024 07:23:15
Onur
Events muss man eigentlich nur ausschalten, wenn vom Makro die selbe Zelle verändert wird, auf die das Event reagieren soll. Das wäre eine Endlosschleife.
AW: Oh, Oh, Oh....
18.11.2024 11:30:24
Luschi
Hallo Onur,

ich bin da aber ganz bei Udo und 1 Seitensprung kann auch bei Vba manchmal schon zuviel sein (z.B. in Schleifen und im wahren Leben).

Gruß von Luschi
aus klein-Paris
Anzeige
AW: Oh, Oh, Oh....
18.11.2024 13:07:33
Uwe Ernst
Oh man Leute - das sieht ja kompliziert aus...
Da habt ihr euch so viel Mühe und ich einen Fehler in der Fragestellung gemacht.
Nämlich - wenn beim Öffnen der Datei das Macro abläuft, kann ich die Datei den ganzen Monat nicht schließen.
Da ich eine Auswahlbox habe, mit der ich einen Monat (Jan-Dez) auswählen kann, der dann successive mit Arbeitszeiten gefüllt wird, wäre ein Start des Macro dann sinnvoller, wenn der Monat gewechselt wird.
Ich hänge die Datei mal an...
Gruß
Uwe
P.S. Ich könnte natürlich auch einfach 12 Einzelblätter mit einem Auswerte-Deckblatt machen...
Anzeige
AW: Oh, Oh, Oh....
19.11.2024 12:32:04
daniel
Hi

letzteres scheint mir sinnvoller.
sonst verlierst du ja auch die Daten der Vergangenen Monate (oder du müsstest jeden Monat als eigene Datei speichern)
oder du füllst die Übersichtstabelle in den Zellen L25:M34 von Hand aus, wenn der Monat abgeschlossen ist.
Gruß Daniel
Anzeige
AW: Oh, Oh, Oh....
20.11.2024 15:30:07
Uwe Ernst
Ja Daniel - ich mache eine Zwölfer-Datei mit Auswerte-Deckblatt.
Dank an alle und
freundliche Grüße
Uwe
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18