Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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
Inhaltsverzeichnis

Curser springt auf anderes Blatt - Report funktioniert nicht

Curser springt auf anderes Blatt - Report funktioniert nicht
19.02.2024 07:13:09
hkoepp63
Guten Morgen Zusammen,
Dank Eurer Hilfe habe ich eine Tabelle mit ein paar Grundlegenden Funktionen erstellen können.
1. Umbenennung der Tabellenblätter
2. Ein- und Ausblenden der Tabellenblätter mit Doppelklick
3. Automatischer Eintrag von Datum und Username
4. Report

Anbei die originale Datei

https://www.herber.de/bbs/user/167132.xlsm


Ich habe jetzt aber folgendes Problem.
1. Der Report wird nicht für alle Tabellenblätter erstellt, obwohl aus meiner Sicht, die Formel auf die Tabelle2 (Reort) verweist.
2. wenn ich einen Eintrag mache in eine Tabelle in der Spalte F, sprint der Cursor sofort zum Tabellenblatt Gesamt zurück.

Die Bereiche sind für einelne Benutzer freigegeben durch den Benutzernamen (Bearbeiten von Bereichen zulassen)

Ich wäre Euch sehr dankbar, für eine Lösung, da wir diese Tabelle für alle Projekte einsetzen wollen.

Vielen Dank im Voraus
Beste Grüße
Hinnerk

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA Automatischer Eintrag Datum und Benutzer - Codeproblem
19.02.2024 10:49:06
hkoepp63
Ich habe den Titel mal geändert. Vielleicht klingt das interessanter.
AW: VBA Automatischer Eintrag Datum und Benutzer - Codeproblem
19.02.2024 17:09:34
peter
Hallo

Ist ein interessantes Problem. Wenn Du eine Änderung in "Gesamt" machst, hast Du einen Eintrag im UNDO Puffer für diese Blatt. In Deinen anderen Blättern machst Du ein Undo, damit Du die Änderungen protokollieren kannst. Du schaltest die Events ein und dannach trägst Du User/Date ein, was wiederum das Event auslöst. Jetzt gibt es aber auf diesem Blatt kein Undo mehr, aber in der Tabelle "Gesamt", daher der Sprung zu diesem Blatt. Du solltest in Deinen Blättern die Events ganz am Schluss wieder einschalten.

Peter
Anzeige
AW: VBA Automatischer Eintrag Datum und Benutzer - Codeproblem
19.02.2024 18:35:17
hkoepp63
Hallo Peter,
Vielen Dank für die Info.
Auf dem "Gesamtblatt" protokolliere ich eigentlich nichts.
Von da aus werden nur die anderen Tabellenblätter umbenannt oder aus und eingeblendet.
Auf den anderen Blättern werden die Änderungen von Spalte F bis R protokolliert im "Report". Wenn ich jedoch in F einen Eintrag auf einem beliebigen Blatt mache, springt der Cursor nach dem Enter auf gesamt zurück.
Das ist mein Problem...

Wie kann ich das ändern?
Der Eintrag in F löst in den andern Spalten das Datum und den Benutzereintrag automatisch aus.

Grüße. Hinnerk
Anzeige
AW: VBA Automatischer Eintrag Datum und Benutzer - Codeproblem
20.02.2024 08:48:38
peter
Hallo

Wie schon bescrieben hast Du ein Problem mir dem UNDO Puffer. Mach einmal folgenden Versuch: Erstelle ein neues Excel File mit 2 Tabellenblättern. Trage in Tabelle1 A1 eine beliebiegen Wert ein. Gehe zu Tabelle2 und trag dort ebenfalls in A1 einen beliebigen Wert ein. Und nur Zurück auf Tabelle1. Drücke STRG-Z (Rückgängig) und wo landeste Du: auf Tabelle2.

In Deinen Tabellen werden die Events eingeschaltet und danach schreibst Du User/Datum in die Tabelle. Dies löst aber wiederum das Change Event aus. Undo hat nun auf diesem Tabelleblatt keine Funkion (wenn etwas mit einem Makro in ein Tabellblatt geschrieben wird, wird der UNDO Puffer des Blattes gelöscht). Hat Du in Gesamt etwas geschrieben , so versucht UNDO dies zu löschen (funktioniert nicht, aber du landest auf diesem Blatt).

Ändere Deinen Code (select case macht den Code übersichtlicher:



Private Sub Worksheet_Change(ByVal Target As Range)

'**** Report Anfang

Dim X As Range
Dim Y As Range
Dim C As Range

On Error GoTo fin

If Not Intersect(Target, Range("F3:R100000")) Is Nothing Then
For Each C In Intersect(Target, Range("F3:R100000"))
X = C
Application.EnableEvents = False
Application.Undo
Y = C
C = X
Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 5) = _
Array(C.Address(0, 0), Y, X, Date, Environ("username"))
Next
End If

fin:
If Err.Number > 0 Then Err.Clear

' **** Report Ende

If Target.Row > 2 Then
Select Case Target.Column
Case 6, 7, 8, 9
Target.Offset(0, 5).Value = Date
'Target.Offset(0, 2).Value = Time
Target.Offset(0, 9).Value = Environ("username")
End Select
End If

Application.EnableEvents = True

End Sub



Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige