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

Forumthread: Auf jedem Tabellenblatt zurück in A1 springen

Auf jedem Tabellenblatt zurück in A1 springen
20.02.2009 10:58:00
Bernd
Hallo,
ich habe mehrere Tabellenblätter und möchte, nachdem ich nachfolgende Module ausgeführt habe, daß auf jedem Tabellenblatt wieder A1 die aktive Zelle ist. Derzeit ist bei mir immer D7 aktiv.
Modul 1: Hier wird die Kopfzeile erstellt

Sub KopftextLinks()
Dim i As Long
Dim Blatt As Worksheet
'  ActiveWorkbook.Sheets(arrBlatt).Printout 'Direkt drucken
For i = 2 To ActiveWorkbook.Worksheets.Count
Set Blatt = Worksheets(i)
With Blatt.PageSetup
'Linke Kopfzeile vom 2. bis letzten Blatt setzen
'Schrift = Arial, Fett
'Schriftgröße = 12 Punkt
.LeftHeader = "&""Arial,Fett""&10Anlage 1 Blatt &P von &N zur Konformitätserklärung " _
& Worksheets(1).Range("D7").Text & " vom " _
& Format(Worksheets(1).Range("D11"), "DD.MM.YYYY")
End With
Next
End Sub


Modul 2: Druckvorschau (mit angepaßtem "Seite x von y")


Sub Drucken()
Dim i As Long, j As Long, arrBlatt() As String
Call KopftextLinks
'zu druckende Blätter in Array speichern
For i = 2 To ActiveWorkbook.Worksheets.Count
j = j + 1
ReDim Preserve arrBlatt(1 To j)
arrBlatt(j) = Worksheets(i).Name
Next
ActiveWorkbook.Sheets(arrBlatt).PrintPreview 'Seitenvorschau anzeigen
'  ActiveWorkbook.Sheets(arrBlatt).Printout 'Direkt drucken
Worksheets(1).Activate
End Sub


Was muß ich am Code ändern, so daß nach deren Ausführung A1 anstatt D7 aktiviert ist?
Schöne Grüße
Junker

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Range("A1").Select o.w.T.
20.02.2009 11:16:00
Ramses
...
AW: Range("A1").Select o.w.T.
20.02.2009 11:20:00
Bernd
Danke ...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Auf jedem Tabellenblatt zurück in A1 springen


Schritt-für-Schritt-Anleitung

Um auf jedem Tabellenblatt nach der Ausführung von Makros in Excel zurück zur Zelle A1 zu springen, musst du einige Änderungen an deinem VBA-Code vornehmen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge den folgenden Code in dein bestehendes Makro ein: Du kannst nach dem Ausführen deiner Module einfach Range("A1").Select hinzufügen.

    Sub Drucken()
       Dim i As Long, j As Long, arrBlatt() As String
       Call KopftextLinks
       'zu druckende Blätter in Array speichern
       For i = 2 To ActiveWorkbook.Worksheets.Count
           j = j + 1
           ReDim Preserve arrBlatt(1 To j)
           arrBlatt(j) = Worksheets(i).Name
       Next
       ActiveWorkbook.Sheets(arrBlatt).PrintPreview 'Seitenvorschau anzeigen
       '  ActiveWorkbook.Sheets(arrBlatt).Printout 'Direkt drucken
       Worksheets(1).Activate
       Range("A1").Select ' Hier zurück zu A1 springen
    End Sub
  3. Speichere und schließe den VBA-Editor.

  4. Führe das Makro aus und überprüfe, ob du nach der Ausführung in Zelle A1 bist.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass alle Arbeitsblätter korrekt referenziert werden. Überprüfe, ob Worksheets(i) gültig ist.
  • Fehler: "Zelle A1 wird nicht ausgewählt"

    • Lösung: Vergewissere dich, dass der Befehl Range("A1").Select nach dem Aktivieren des Arbeitsblatts platziert ist.

Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch ein Shortcut verwenden:

  1. Gehe zu dem gewünschten Tabellenblatt.
  2. Drücke CTRL + HOME, um direkt zur Zelle A1 zu springen.

Diese Methode ist schnell, benötigt jedoch manuelle Eingriffe auf jedem Blatt.


Praktische Beispiele

Hier ist ein Beispiel für ein vollständiges Makro, das auf jedem Tabellenblatt nach der Druckvorschau zu A1 zurückkehrt:

Sub DruckenMitRückkehr()
    Dim i As Long
    For i = 1 To ActiveWorkbook.Worksheets.Count
        Worksheets(i).Activate
        Range("A1").Select ' Springe in Zelle A1
        ' Hier kann weiterer Code zum Drucken hinzugefügt werden
    Next i
End Sub

Mit diesem Code kannst du sicherstellen, dass du automatisch in Zelle A1 auf jedem Blatt bist, nachdem du es aktivierst.


Tipps für Profis

  • Verwende Application.Goto: Anstelle von Range("A1").Select kannst du auch Application.Goto Reference:="A1" verwenden, um in Zelle A1 zu springen.

  • Versteckte Blätter berücksichtigen: Achte darauf, dass versteckte Blätter beim Drucken ausgeschlossen werden, da sie sonst die Navigation stören könnten.


FAQ: Häufige Fragen

1. Frage Wie kann ich sicherstellen, dass das Makro nur auf sichtbaren Blättern ausgeführt wird?

Antwort Du kannst eine Bedingung hinzufügen, um zu prüfen, ob ein Blatt sichtbar ist, bevor du es aktivierst:

If Worksheets(i).Visible = xlSheetVisible Then
    Worksheets(i).Activate
    Range("A1").Select
End If

2. Frage Kann ich das Makro anpassen, um nach jedem Druck automatisch zu A1 zu springen?

Antwort Ja, füge einfach den Befehl Range("A1").Select am Ende deines Druckcodes hinzu, wie im Schritt-für-Schritt-Abschnitt gezeigt.

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