Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In Tabell nach oben scrollen

In Tabell nach oben scrollen
08.11.2019 14:44:38
Andreas
Hallo zusammen,
mein Problem:
Excel-Datei wird aufgerufen, UserForm CentroN startet sofort.
Wenn ich von der Userform aus, per Button eine Tabelle bspw. Deckblatt einblende und aktiviere, dann möchte ich, dass diese immer nach oben gescrollt angezeit wird.
Hierzu verwende ich den folgenden Code:
CentroN.Hide
Sheets("Deckblatt").Visible = True
Sheets("Deckblatt").Activate
Application.Goto ActiveSheet.Range("A1"), True
Funktioniert aber nicht.
Wenn ich dann noch einmal die Userform CentroN aufrufe und zum wiederholten male auf den Button Deckblatt drücke, dann funktioniert der Code.
Gleicher Button, gleicher Code - nur beim ersten male, wenn ich die Excel Datei neu geöffnet habe und die UserForm automatisch startet und auf irgendein Tabellenblatt per Button wechseln möchte, funtkioniert der Code nicht. Dann aber immer, ohne Ausnahme.
Bin etwas irritiert und ratlos.
was mache ich falsch ?
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
kann ich nicht bestätigen ...
08.11.2019 16:06:59
Matthias
Hallo,
bei mir wird das Blatt aktiviert und darin dann auch A1 markiert
Gruß Matthias
AW: In Tabell nach oben scrollen
08.11.2019 16:12:38
onur
"funtkioniert der Code nicht" ist Wischi-Waschi - Was funktioniert denn nicht? das Scrollen, das Blatt-Wechseln oder Beides nicht?
Wo steht der Code denn genau?
AW: In Tabell nach oben scrollen
08.11.2019 20:36:00
Andreas
Die Tabelle Deckblatt wird aufgerufen, aber das scrollen nach oben funktioniert nicht.
Ich habe einen Button "Deckblatt" auf einer Userform. Diese wird mit dem Öffnen der Excel Datei sofort gestartet / eingeblendet. Wenn ich dann über den Button "Deckblatt" auf die Tabelle Deckblatt wechseln möchte, dann funktioniert das scrollen nach oben nicht. D.h. ich muss dann jedes mal zuerst mal nach oben scrollen um Eingaben in die Tabelle vornehmen zu können.
Wohl gemerkt - das passiert nur direkt nach dem öffnen der Excel Datei und dem erstmaligen aufrifen eines Tabellenblattes (eigentlich egal welches. Wenn ich den Vorgang wiederhole (ohne die datei vorher wieder zu schließen), dann funtkioniert das scrollen, eagl wie oft ich das wiederhole.
Beim drücken des Buttons bspw. um die Deckblatt-Tabelle zu öffnen, steht ausschließlich der folgende Code:
CentroN.Hide
Sheets("Deckblatt").Visible = True
Sheets("Deckblatt").Activate
Application.Goto ActiveSheet.Range("A1"), True
Schließe die Userform, zeige die Tabelle an und aktiviere diese und scrolle dann nach oben.
Der exakt gleiche Code in einer anderen Excel datei - die ich mir zum Spaß jetzt mal erstellt habe, funktioniert aber.
Unterschied zwischen den Dateien?
Die Original datei umfasst fasst 4,8 MB, die TestDatei mit dem gleichen Code zum Testen 400kb
Wohlgemerkt:
Der Code funktioniert nur nicht nach dem dem öffnen der Datei und wenn er quasi das erste mal ausgeführt werden soll. Über die Userform zum Deckblatt und wieder zurück auf die Userform und dem erneuten drücken auf den exakt gleichen Button - dann geht es ?
Anzeige
AW: In Tabell nach oben scrollen
08.11.2019 20:39:07
onur
Noch einmal:
Wo steht der Code denn genau?
AW: In Tabell nach oben scrollen
08.11.2019 23:37:10
Andreas
Befehlschaltfläche (ActiveX Steuerelement) auf einer UserForm. Dort steht der Code.
In meiner Original Datei - 4,7 MB groß - genauso wie in meiner Test-Datei - 400kb klein.
Über die Befehlschaltfläche (auf der Userform), wird in beiden Dateien exakt der gleiche Code ausgeführt:
Private Sub cbDeckblatt_Click()
Application.ScreenUpdating = False
CentroN.Hide
Sheets("Deckblatt").Visible = True
Sheets("Deckblatt").Activate
Sheets("Deckblatt").Range("A5").Select
Application.ScreenUpdating = True
End Sub
Application.Goto ActiveSheet.Range("A1"), True
Ich habe jetzt zum testen den Code - um irgendwelche "Fehler zu vermeiden" - zuerst von meiner Original-Datei in die Testdatei kopiert und dann wieder zurück. Ergebnis - in meiner Test-Datei fehlerlos, in meiner Original-Datei nach dem Öffnen der Datei und dem erstmaligem ausführen kein scrollen. Wiederholtes ausführen wird der scroll Befehl ausgeführt.
Immer nur beim erstmaligem ausführen nach dem öffnen.
Anzeige
AW: In Tabell nach oben scrollen
08.11.2019 23:54:07
onur
Lass mal die blöden Application.ScreenUpdating...-Zeilen weg.
Was soll das überhaupt ?
AW: In Tabell nach oben scrollen
09.11.2019 00:20:52
Andreas
Application.ScreenUpdating gelöscht
Keine Änderung - gleiches Verhalten.
Hat das vielleicht irgendetwas mit der "Größe" der Userform zu tun ? Diese friert ab und zu völlig motivationslos einfach ein, wenn ich diese öffne. Wie ein Blinker beim Auto :-)
Aufruf der Userform durch:
CentroN.Show
Es wird dabei keinerlei Code beim öffnen der Userform erzeugt.
Auf der Userform sind 33 Befehlsschaltflächen sowie 42 Checkboxen (beides als ActiveX Steuerelemente).
Das ist eine reine Navigations-Userform (es werden - wie erwähnt - keinerlei Felder o.ä. gefüllt, nix erzeugt - nur aufgerufen und dann ab über den nächsten Button, auf das nächste Tabellenblatt).
Reine Verzweiflungsfrage :-)
Der Code ist ja an sich pillepalle
Private Sub cbDeckblatt_Click()
CentroN.Hide
Sheets("Deckblatt").Visible = True
Sheets("Deckblatt").Activate
Sheets("Deckblatt").Range("A5").Select
Application.Goto ActiveSheet.Range("A1"), True
End Sub
Geht halt nicht nach dem öffnen der datei. Erst wieder zurück auf die Userform und wieder auf den gleichen Button drauf, dann checkt Excel wohl den pillepalle Code.
Beim öffnen von excel, wird code generiert (hat aber eigentlich nix mit der Userform zu tun).
Folgender Code wird beim öffnen von excel ausgeführt:
Private Sub Workbook_Open()
Dim Pfad1 As String
Dim AktivPfad1 As String
Sheets("Start").Unprotect Password:="formatieren"
If Sheets("Start").Range("A103") = 1 Then
GoTo theend:
Else
Pfad1 = ThisWorkbook.Path
Sheets("Start").Range("A102").Value = Pfad1
Sheets("Start").Range("A103").Value = 1
End If
theend:
Sheets("Start").Visible = True
Sheets("Start").Activate
Sheets("Start").Range("W19").Select
CentroN.Show
Sheets("Start").Protect Password:="formatieren", DrawingObjects:=True, Contents:=True,  _
Scenarios:=True
Sheets("Start").EnableSelection = xlUnlockedCells
End Sub

Anzeige
AW: In Tabell nach oben scrollen
09.11.2019 00:01:22
Andreas
Befehlschaltfläche (ActiveX Steuerelement) auf einer UserForm. Dort steht der Code.
In meiner Original Datei - 4,7 MB groß - genauso wie in meiner Test-Datei - 400kb klein.
Über die Befehlschaltfläche (auf der Userform), wird in beiden Dateien exakt der gleiche Code ausgeführt:
Private Sub cbDeckblatt_Click()
Application.ScreenUpdating = False
CentroN.Hide
Sheets("Deckblatt").Visible = True
Sheets("Deckblatt").Activate
Sheets("Deckblatt").Range("A5").Select
Application.ScreenUpdating = True
End Sub
Application.Goto ActiveSheet.Range("A1"), True
Ich habe jetzt zum testen den Code - um irgendwelche "Fehler zu vermeiden" - zuerst von meiner Original-Datei in die Testdatei kopiert und dann wieder zurück. Ergebnis - in meiner Test-Datei fehlerlos, in meiner Original-Datei nach dem Öffnen der Datei und dem erstmaligem ausführen kein scrollen. Wiederholtes ausführen wird der scroll Befehl ausgeführt.
Immer nur beim erstmaligem ausführen nach dem öffnen.
Anzeige
AW: In Tabell nach oben scrollen
09.11.2019 00:03:20
onur
Wieso wiederholst jetzt deinen Post von 23:37 ?
AW: In Tabell nach oben scrollen
09.11.2019 10:05:47
Andreas
Eigentlich hatte ich dir folgendes gesendet:
Application.ScreenUpdating gelöscht
Keine Änderung - gleiches Verhalten.
Hat das vielleicht irgendetwas mit der "Größe" der Userform zu tun ? Diese friert ab und zu völlig motivationslos einfach ein, wenn ich diese öffne. Wie ein Blinker beim Auto :-)
Aufruf der Userform durch:
CentroN.Show
Es wird dabei keinerlei Code beim öffnen der Userform erzeugt.
Auf der Userform sind 33 Befehlsschaltflächen sowie 42 Checkboxen (beides als ActiveX Steuerelemente).
Das ist eine reine Navigations-Userform (es werden - wie erwähnt - keinerlei Felder o.ä. gefüllt, nix erzeugt - nur aufgerufen und dann ab über den nächsten Button, auf das nächste Tabellenblatt).
Reine Verzweiflungsfrage :-)
Der Code ist ja an sich pillepalle
Private Sub cbDeckblatt_Click()
CentroN.Hide
Sheets("Deckblatt").Visible = True
Sheets("Deckblatt").Activate
Sheets("Deckblatt").Range("A5").Select
Application.Goto ActiveSheet.Range("A1"), True
End Sub
Geht halt nicht nach dem öffnen der datei. Erst wieder zurück auf die Userform und wieder auf den gleichen Button drauf, dann checkt Excel wohl den pillepalle Code.
Beim öffnen von excel, wird code generiert (hat aber eigentlich nix mit der Userform zu tun).
Folgender Code wird beim öffnen von excel ausgeführt:
Private Sub Workbook_Open()
Dim Pfad1 As String
Dim AktivPfad1 As String
Sheets("Start").Unprotect Password:="formatieren"
If Sheets("Start").Range("A103") = 1 Then
GoTo theend:
Else
Pfad1 = ThisWorkbook.Path
Sheets("Start").Range("A102").Value = Pfad1
Sheets("Start").Range("A103").Value = 1
End If
theend:
Sheets("Start").Visible = True
Sheets("Start").Activate
Sheets("Start").Range("W19").Select
CentroN.Show
Sheets("Start").Protect Password:="formatieren", DrawingObjects:=True, Contents:=True,  _
Scenarios:=True
Sheets("Start").EnableSelection = xlUnlockedCells
End Sub

Anzeige
AW: In Tabell nach oben scrollen
09.11.2019 10:32:14
Andreas
... lass es gut sein, ich werde die komplette Userform löschen und neu Stück für Stück aufbauen ... am Code kann es ja nicht liegen - auch nicht am Code beim Öffnen der Excel Datei mit Aufruf der besagten Userform .... meines Erachtens auch nicht an der "Menge" der "Steuerelemente" auf der Userform .... hat wahrscheinlich - die Userform - nur irgendwie einen "hau weg" ...
Danke für deine schnellen Antworten und deiner Mühe ...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

In Tabellen nach oben scrollen


Schritt-für-Schritt-Anleitung

Um in Excel beim Öffnen einer Datei und dem Wechsel zu einem bestimmten Tabellenblatt nach oben zu scrollen, kannst du den folgenden VBA-Code verwenden. Dieser wird in einer ActiveX-Steuerelement-Befehlschaltfläche auf einer UserForm platziert:

Private Sub cbDeckblatt_Click()
    CentroN.Hide
    Sheets("Deckblatt").Visible = True
    Sheets("Deckblatt").Activate
    Application.Goto ActiveSheet.Range("A1"), True
End Sub

Dieser Code sorgt dafür, dass beim Klicken auf die Schaltfläche "Deckblatt" die Tabelle "Deckblatt" sichtbar wird und automatisch nach oben (A1) gescrollt wird. Stelle sicher, dass der Code in der richtigen UserForm platziert ist.


Häufige Fehler und Lösungen

  1. Excel lässt sich nicht nach oben scrollen: Wenn die Excel-Liste sich nicht scrollen lässt, kann es daran liegen, dass der Code nicht richtig ausgeführt wird. Überprüfe, ob alle Steuerelemente richtig konfiguriert sind und ob der Code an der richtigen Stelle eingefügt wurde.

  2. Benutzte Steuerelemente in der UserForm: Eine große Anzahl von Steuerelementen (z. B. 33 Befehlsschaltflächen und 42 Checkboxen) kann die Performance beeinträchtigen. Versuche, die UserForm zu vereinfachen oder unnötige Steuerelemente zu entfernen.

  3. Erstmaliges Öffnen: Wenn der Code beim ersten Öffnen der Excel-Datei nicht funktioniert, könnte es an der initialen Ausführung des Codes liegen. Stelle sicher, dass keine anderen Prozesse den Code blockieren.


Alternative Methoden

Falls der oben genannte Code nicht funktioniert, gibt es alternative Ansätze:

  • Verwendung eines HTML-Buttons: Wenn du in einer Webanwendung arbeitest, kannst du einen HTML-Button verwenden, um nach oben zu scrollen. Der Code könnte so aussehen:
<button onclick="window.scrollTo(0, 0);">Nach oben scrollen</button>
  • Excel VBA für das Scrollen: Du kannst auch andere Ansätze in VBA nutzen, um nach oben zu springen, wie z.B.:
ActiveWindow.ScrollRow = 1

Praktische Beispiele

Hier ist ein Beispiel, wie du das Scrollen in einer großen Excel-Datei implementieren kannst:

  1. Erstelle eine UserForm mit einem Button für das "Deckblatt".
  2. Füge den obigen VBA-Code in den Button-Klick-Handler ein.
  3. Stelle sicher, dass das Tabellenblatt "Deckblatt" korrekt benannt ist.

Wenn du die Excel-Datei öffnest und auf den Button klickst, sollte die Ansicht automatisch nach oben (A1) springen.


Tipps für Profis

  • Verwende Application.ScreenUpdating: Setze Application.ScreenUpdating = False am Anfang des Codes, um die Bildschirmaktualisierung während der Ausführung des Codes zu verhindern. Vergiss nicht, es am Ende wieder auf True zu setzen.

  • Performance optimieren: Wenn deine UserForm oder das Excel-Dokument langsam reagiert, kann es helfen, die Anzahl der Steuerelemente zu reduzieren oder die Größe der Datei zu optimieren.

  • Debugging: Nutze Debug.Print oder MsgBox, um den Status des Codes zu überprüfen, wenn etwas nicht wie erwartet funktioniert.


FAQ: Häufige Fragen

1. Warum funktioniert der Code nur beim ersten Mal nicht?
Es kann sein, dass beim ersten Öffnen der Datei einige Prozesse noch nicht abgeschlossen sind. Überprüfe, ob andere Makros den Code stören könnten.

2. Was kann ich tun, wenn Excel beim Scrollen einfriert?
Reduziere die Anzahl der Steuerelemente auf deiner UserForm oder teste die Performance in einer neuen, leichten Excel-Datei.

3. Gibt es eine Möglichkeit, ohne Makros zu scrollen?
Ja, du kannst auch die Excel-Funktionen nutzen, um direkt zu Zellen zu springen, jedoch wirst du ohne Makros nicht die gleiche Kontrolle und Flexibilität haben.

4. Wie kann ich ein „nach oben“ Button in Excel erstellen?
Du kannst ein ActiveX-Steuerelement oder ein Formularsteuerelement verwenden, um einen Button zu erstellen, der beim Klicken nach oben scrollt.

5. Wie kann ich sicherstellen, dass das Excel-Dokument beim Öffnen immer das gleiche Tabellenblatt anzeigt?
Du kannst im Workbook_Open-Ereignis den Code hinzufügen, um das gewünschte Tabellenblatt beim Öffnen der Datei zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige