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

Focus auf Zelle funktioniert nicht

Forumthread: Focus auf Zelle funktioniert nicht

Focus auf Zelle funktioniert nicht
20.10.2021 09:26:45
earlycon
Guten Morgen zusammen,
aktuell werden mir am Bildschirm die Zeilen 1 - 22 angezeigt. Die Zeilen 23 - 30 sind noch ausgeblendet. Sobald ich diese per Makro einblende und ein ,select auf die Zelle B30 setzte, sollte doch der Focus auf diese Zelle gehen. Leider bleibt der Bildschirm unberührt und es werden weiterhin nur die Zeilen 1 - 22 angezeigt.
Habt Ihr eine Idee, woran das liegen kann oder was ich anders machen kann ?
Besten Dank und viele Grüße
Stefan
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Focus auf Zelle funktioniert nicht
20.10.2021 09:40:35
KlausFz
Hallo Stefan,
versuchs mal mit Activate statt Select (ungetestet).
Gruß!
Klaus
AW: Focus auf Zelle funktioniert nicht
20.10.2021 11:19:09
earlycon
Danke Klaus, aber leider bringt das nicht den gewünschten Effekt...
Viele Grüße
Stefan
AW: Focus auf Zelle funktioniert nicht
20.10.2021 12:07:43
KlausFz
Komisch.
Jetzt eben Makro probiert: mit Activate springt der Cursor zu der programmierten Adresse,
die dann in die Mitte des des Arbeitsfensters gerückt wird.
Bei mir funzt's. (Excel 2013, dürfte aber nicht entscheidend sein)
Gruß!
Klaus
Anzeige
AW: Focus auf Zelle funktioniert nicht
20.10.2021 13:02:29
earlycon
OK, das ist seltsam...
Habe gerade noch mal die beiden Routinen
Private Sub Worksheet_SelectionChange(ByVal Target As Range) und Private Sub Worksheet_Change(ByVal Target As Range) deaktiviert, aber daran lag es auch nicht.
Der Bereich bleibt wie angenagelt am Bildschirm stehen...
Trotzdem Danke...
Gruß Stefan
Anzeige
AW: Focus auf Zelle funktioniert nicht
20.10.2021 09:51:38
Christian
Hallo Stefan,
kannst du mal deinen Code posten, mit dem du Spalten einblendest und die Zelle markierst?
Gruß
AW: Focus auf Zelle funktioniert nicht
20.10.2021 11:01:08
earlycon
Hallo und Danke,
ja gerne, obwohl der Code recht kurz ist:

Sub Zusatzzeilen_einblenden()
Application.ScreenUpdating = False
Rows("23:30").EntireRow.Hidden = False
Sheets("Status").Scrollarea = ("A1:I31")
Sheets("Status").[B31].Activate   'Select
Sheets("Status").[B23].Activate   'Select
Sheets("Status").PageSetup.PrintArea = "A1:I30"
Application.ScreenUpdating = True
End Sub
Mit activate ergab sich leider kein Unterschied...
Gruß
Stefan
Anzeige
AW: Focus auf Zelle funktioniert nicht
20.10.2021 13:50:00
UweD
Hallo
den Rows Befehl hast du NICHT auf ein Blatt referenziert.
In dem Fall wird das aktive Blatt benutzt. Das kann ggf. ein Anderes als "Status" sein

Sub Zusatzzeilen_einblenden()
Application.ScreenUpdating = False
With Sheets("Status")
.Rows("23:30").Hidden = False
.ScrollArea = ("A1:I31")
.[B31].Activate   'Select
.[B23].Activate   'Select
.PageSetup.PrintArea = "A1:I30"
End With
Application.ScreenUpdating = True
End Sub
LG UweD
Anzeige
AW: Focus auf Zelle funktioniert nicht
20.10.2021 13:59:18
earlycon
Hallo Uwe,
Du hast natürlich recht. Mit with... spart man sich Schreibarbeit und es wir übersichtlicher, ich gelobe Besserung.
Das Makro läuft in der aktiven Tabelle (Tabelle 1 (Status)), von daher hatte ich mir das geklemmt.
Leider trägt das jedoch nicht zur Problemlösung bei.
Trotzdem Dank.
Gruß Stefan
Anzeige
AW: Focus auf Zelle funktioniert nicht
21.10.2021 09:03:42
Peter
Immer funktionieren sollte

ActiveWindow.ScrollRow = 30
(oder dementsprechend)
Kann noch mit

ActiveWindow.ScrollColumn = 1
ergänzt werden (für alle Fälle)
;
Anzeige

Infobox / Tutorial

Fokus auf Zelle in Excel richtig setzen


Schritt-für-Schritt-Anleitung

  1. Makro zum Einblenden der Zeilen erstellen: Schreibe ein Makro, das die gewünschten Zeilen einblendet. Hier ist ein Beispiel:

    Sub Zusatzzeilen_einblenden()
       Application.ScreenUpdating = False
       With Sheets("Status")
           .Rows("23:30").Hidden = False
           .ScrollArea = ("A1:I31")
           .[B30].Activate   ' Fokus auf Zelle B30 setzen
           .PageSetup.PrintArea = "A1:I30"
       End With
       Application.ScreenUpdating = True
    End Sub
  2. Aktive Fensterposition anpassen:
    Um sicherzustellen, dass die Zelle sichtbar ist, kannst Du die Scrollposition des aktiven Fensters ändern:

    ActiveWindow.ScrollRow = 30
  3. Makro ausführen:
    Führe das Makro aus, um die gewünschten Zeilen einzublenden und den Fokus auf die Zelle zu setzen.


Häufige Fehler und Lösungen

  • Problem: Der Fokus bleibt auf der bisherigen Zeile.
    Lösung: Stelle sicher, dass Du die .Activate-Methode korrekt anwendest. Die Zeile sollte so aussehen: .B30.Activate.

  • Problem: Die Zelle ist nicht sichtbar.
    Lösung: Überprüfe, ob die Zeilen oder Spalten tatsächlich ausgeblendet sind. Manchmal kann auch die ScrollArea das Problem verursachen.

  • Problem: Der Code wurde nicht auf das richtige Blatt angewendet.
    Lösung: Verwende die With-Anweisung, um sicherzustellen, dass alle Befehle auf das spezifische Blatt angewendet werden.


Alternative Methoden

  • Verwendung von Select statt Activate:
    Manchmal kann es hilfreich sein, Select zu verwenden, um den Fokus auf die Zelle zu setzen. Auch wenn in den meisten Fällen Activate empfehlenswerter ist.

  • Direktes Scrollen zur Zelle:
    Du kannst auch die Scrollposition direkt einstellen, um sicherzustellen, dass die Zelle sichtbar ist:

    ActiveWindow.ScrollRow = 30

Praktische Beispiele

Wenn Du das Makro ausführst, wird es die Zeilen 23 bis 30 einblenden und den Fokus auf die Zelle B30 setzen. Hier ein einfaches Beispiel:

Sub Beispiel()
    Sheets("Status").Rows("23:30").Hidden = False
    ActiveWindow.ScrollRow = 30
    Sheets("Status").[B30].Activate
End Sub

Mit diesem Code stellst Du sicher, dass die Zelle B30 immer sichtbar ist, unabhängig von der vorherigen Ansicht.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False:
    Dies erhöht die Ausführungsgeschwindigkeit Deines Makros, da es das Bildschirm-Update während der Makroausführung deaktiviert.

  • Optimiere Deine Makros:
    Versuche, unnötige Befehle zu vermeiden, um die Effizienz zu steigern. Jedes .Activate oder .Select kann durch direkte Referenzen ersetzt werden.

  • Teste in verschiedenen Excel-Versionen:
    Die Funktionsweise kann sich je nach Excel-Version leicht unterscheiden. Stelle sicher, dass Du Deine Makros in der Version testest, in der sie genutzt werden sollen.


FAQ: Häufige Fragen

1. Warum funktioniert der Fokus auf Zelle nicht?
Der Fokus funktioniert möglicherweise nicht, wenn die Zelle nicht sichtbar ist oder wenn eine andere Regel das Verhalten beeinflusst.

2. Was ist der Unterschied zwischen Select und Activate?
Select selektiert eine Zelle, während Activate die Zelle aktiv macht und den Fokus darauf setzt. In vielen Fällen ist Activate die bessere Wahl für die Benutzerinteraktion.

3. Wie kann ich sicherstellen, dass eine Zelle immer sichtbar ist?
Verwende ActiveWindow.ScrollRow oder stelle die ScrollArea korrekt ein, um sicherzustellen, dass die Zelle in den sichtbaren Bereich kommt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige