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

Forumthread: Erste sichtbare Zelle auswählen mit VBA

Erste sichtbare Zelle auswählen mit VBA
01.07.2004 13:39:31
Panicman
Guten Tag zusammen !!
Ich suche ein Makro, mit der man die "erste sichtbare Zelle" und bei einer Fixierung die "erste sichtbare Zelle" unterhalb der Fixierung selektiert.
Per Tasten-Kombi geht das mit STRG-POS1. Per Makro bekomme ich das nicht hin.
Danke im vorraus
Gruß
Holger
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Erste sichtbare Zelle auswählen mit VBA
01.07.2004 13:57:19
Isabella
Hallo Holger,
Hast Du SENDKEYS ausprobiert? Aber ganz genau genommen verstehe ich Deine Frage nicht. Was meinst Du mit Fixierung? Eine Zelle ist eine Range. In der VBA-Hilfe in Excel gbt es reichlich Beispiele, wie Du eine Zelle ansprichst. Und natürlich hier im Forum.
Gruß,
Isabella
Anzeige
AW: Erste sichtbare Zelle auswählen mit VBA
Panicman
Hallo Isabella,
ja, ich habe Sendkeys "^{POS1}" schon ausprobiert. Bin zu blöd dafür oder es klappt nicht.
Nochmals zu Verdeutlichung. Ich bekomme XL-Dateien mit mehr als 70 Blättern. In jedem Blatt ist die selektierte Zelle irgendwo. ich möchte mit einem Makro in jedem Blatte die Selektion auf die erste sichtbare Zelle stellen. Wenn z.B. die Spalten A+B ausgeblendet sind, ist die erste sichtbare Zelle C1. In anderen Blättern ist über das Menü Fenster eine Fixierung auf die Zelle C7 gemacht. Ich möchte dann die erste sichtbare Zelle unterhalb dieser Fixierung selektieren.
Die Krönung ist, wenn Spalte A+C ausgeblendet ist, die Fixierung aber auf C7 gemacht worden ist, dann ist die erste sichtbare Zelle unterhalb der Fixierung D7.
Das ganze klappt mit STRG-POS1, aber nicht als Makro.
Ich hoffe jetzt ist es verständlicher.
Gruß
Holger
Anzeige
AW: Erste sichtbare Zelle auswählen mit VBA
K.Rola
Hallo,
schau dir mal VisibleRange an, dort liegt die Lösung.
Gruß K.Rola
AW: Erste sichtbare Zelle auswählen mit VBA
Panicman
Hallo K.Rola,
Habe es schon ausprobiert mit einem Makro von Hans. Das Problem ist, das es bei einer Fixierung nicht klappt.
Text-Index: 232204
Subject: Excel/VBA-Beispiel: Den sichtbaren Bereich ermitteln
Problem: Der im Blatt sichtbare Zell-Bereich wird ermittelt.
Lösung: Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.

Sub Erste_Zelle()
'sekektiert die erste sichtbare Zelle in jeder Mappe der Datei
For I = Worksheets.Count To 1 Step -1
Worksheets(I).Select
Range("A1").Select
Dim rng As Range
Dim iRow As Integer, iCol As Integer, iStartR As Integer, iStartC As Integer
Set rng = ActiveCell
iStartC = ActiveWindow.ScrollColumn
iCol = iStartC
Do Until ActiveWindow.ScrollColumn <> iStartC
ActiveCell.Offset(0, 1).Activate
Loop
iStartC = ActiveCell.Column - 1
iStartR = ActiveWindow.ScrollRow
iRow = iStartR
Do Until ActiveWindow.ScrollRow <> iStartR
ActiveCell.Offset(1, 0).Select
Loop
iStartR = ActiveCell.Row - 1
rng.Select
MsgBox "Sichtbarer Bereich: " & Range(Cells(iRow, iCol), Cells(iStartR, iStartC)).Address
Range(Cells(iRow, iCol), Cells(iStartR, iStartC)).Address
Range(x).Cells(1, 1).Select
Next I
Worksheets(1).Select
End Sub

Hast du noch eine Lösung
Gruß
Holger
Anzeige
AW: Erste sichtbare Zelle auswählen mit VBA
K.Rola
Hallo,
so zu einfach?

Private Sub Worksheet_Activate()
Application.SendKeys "^{HOME}"
End Sub

Gruß K.Rola
Danke, bin doch zu ...
Panicman
Hallo K.Rola,
das war zu einfach, und ist eigentlich das gleiche wie ^{POS1}. Bin nur einfach zu blöd.
Habe das Makro bei geöffneten VBA-Editor mit F8 gestartet. XL war im Hintergrund.
Dann funzt sendkeys logischerweise in XL nicht.
Danke
Holger
Anzeige
wieder offen !!!
Panicman
Hallo zusammen,
die Lösung von K.Rola funktioniert zwar in einem Makro, aber wenn ich darum eine For-Schleife baue, geht es nicht mehr ? Warum

Sub Erste_Zelle1()
Application.SendKeys "^{HOME}"
End Sub

Das geht.

Sub Erste_Zelle()
For I = 1 To Worksheets.Count
Worksheets(I).Activate
Application.SendKeys "^{HOME}"
Next I
Worksheets(1).Select
End Sub

Geht nicht ?
Warum
Gruß
Holger
Anzeige
AW: wieder offen !!!
K.Rola
Hallo,

Sub Erste_Zelle()
For I = 1 To Worksheets.Count
Application.SendKeys "^{HOME}"
Worksheets(I).Activate
DoEvents
Next I
Worksheets(1).Select
End Sub

Gruß K.Rola
nochmals Danke ...
Panicman
Danke K.Rola,
jetzt funzt es
nochmals Danke
Gruß
Holger
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Erste sichtbare Zelle auswählen mit VBA


Schritt-für-Schritt-Anleitung

Um die erste sichtbare Zelle in einem Excel-Arbeitsblatt mit VBA auszuwählen, kannst Du das folgende Makro verwenden. Dieses Makro durchläuft alle Arbeitsblätter und wählt die erste sichtbare Zelle basierend auf der aktuellen Sicht.

Sub Erste_Zelle()
    For I = 1 To Worksheets.Count
        Worksheets(I).Activate
        Application.SendKeys "^{HOME}"
        DoEvents
    Next I
    Worksheets(1).Select
End Sub
  1. Öffne den VBA-Editor mit ALT + F11.
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor.
  5. Führe das Makro aus, um die erste sichtbare Zelle auszuwählen.

Häufige Fehler und Lösungen

  • Fehler: SendKeys funktioniert nicht in Schleifen.

    • Lösung: Füge DoEvents nach dem SendKeys Befehl ein. Dadurch wird Excel Zeit gegeben, die Eingaben zu verarbeiten.
  • Fehler: Makro bleibt bei fixierten Zellen hängen.

    • Lösung: Verwende ActiveWindow.VisibleRange, um den sichtbaren Bereich korrekt zu ermitteln.

Alternative Methoden

Eine alternative Methode zur Auswahl der ersten sichtbaren Zelle kann die Verwendung von VisibleRange sein. Hier ist ein einfaches Beispiel:

Sub Erste_Sichtbare_Zelle()
    Dim rng As Range
    For Each ws In Worksheets
        ws.Activate
        Set rng = ActiveWindow.VisibleRange
        rng.Cells(1, 1).Select
    Next ws
End Sub

Diese Methode ist einfach und erfordert keine Tastenbefehle. Sie wählt immer die erste Zelle des sichtbaren Bereichs aus.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Du in Deinen eigenen Excel-Projekten verwenden kannst:

  1. Erste sichtbare Zelle ohne Fixierung:

    • Wenn Du die erste sichtbare Zelle in einem Arbeitsblatt ohne Fixierung auswählen möchtest, nutze einfach das erste Beispiel.
  2. Erste sichtbare Zelle unterhalb einer Fixierung:

    • Du kannst die Fixierung manuell setzen und das Makro anpassen, um die Auswahl auf die Zelle direkt unterhalb der Fixierung zu richten.

Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um das Flackern beim Ausführen von Makros zu vermeiden.
  • Teste Deine Makros häufig mit verschiedenen Arbeitsblättern, um sicherzustellen, dass sie unter unterschiedlichen Bedingungen funktionieren.
  • Benutze Kommentare im Code, um die Funktionalität zu erklären, besonders wenn Du mit Kollegen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich die erste sichtbare Zelle in einem bestimmten Bereich auswählen?
Du kannst den Bereich anpassen, indem Du die Range-Eigenschaft in Deinem Makro änderst.

2. Funktioniert das Makro in allen Excel-Versionen?
Ja, diese VBA-Codes sollten in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt wird. Achte darauf, dass Du die entsprechenden Berechtigungen hast, um Makros auszuführen.

3. Was tun, wenn Excel beim Ausführen des Makros abstürzt?
Überprüfe den Code auf Fehler und stelle sicher, dass keine Endlosschleifen vorhanden sind. Führe das Makro Schritt für Schritt mit F8 im VBA-Editor aus, um den Fehler zu identifizieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige