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

Forumthread: Zellen aktivieren mit Makro

Zellen aktivieren mit Makro
12.01.2016 19:58:19
Michael
Hallo Leute,
in meiner Arbeitsmappe wird beim Öffnen die Zelle neben dem aktuellen Datum aktiviert.
Die Mappe heißt "Vorlage", das Datum ist im Bereich B8:B42 und die jeweils zu aktivierende Zelle in Spalte E8:E42.
Das funktiooniert im Prinzip auch. Da aber die Zellen B11,B19,B27 und B35 leer sind, werden nach den Leerzellen die falschen Zellen in E aktiviert.
Beispiel: Zelle B19 ist leer. Beim Öffnen wird aber die Zelle E20 (mit dem gestrigen Datum in B20)aktiviert. Richtig sollte aber E21 (mit dem heutigen Datum in B21)aktiviert sein. Es müssten die genannten Leerzellen übersprungen werden. Lässt sich das machen?
Das Makro:

Private Sub Workbook_Open()
With ThisWorkbook.Sheets(Format(Date, "Vorlage"))
.Activate
.Cells(Day(Date) + 8, 5).Select
End With
End Sub

Gruß
mike49

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ist doch alles korrekt ...
13.01.2016 03:29:03
Matthias
Hallo
Excel ist es doch egal, was da in den Zellen steht
Mit: Day(Date) + 8 legst Du doch die Zeile fest
Gestern war nun mal der 12.Tag
12+8 ist 20, also war gestern die Zelle E20 ja korrekt.
Cells(Day(Date) + 8, 5)
Heute wird E21 markiert. Das funktioniert auch.
Gruß Matthias

Anzeige
funktioniert bei mir nicht
13.01.2016 18:49:41
mike49
Hallo Matthias,
funktioniert bei mir nicht so. Wenn ich öffne, wird die Zelle E21 aktiviert. In Zelle B21 steht das gestrigeDatum. Eigentlich müsste E22 aktiviert sein.
Schau dir's bitte mal an. http://we.tl/3Kbv4Ntdu5
Gruß
mike49

Anzeige
von fremden Servern lad ich keine Dateien!
13.01.2016 18:58:59
fremden
Hallo
Ich lad mir nur Mappen von Herber.de herunter.
Lad die Mappe bitte hier hoch.
Sorry!
Gruß Matthias

AW: von fremden Servern lad ich keine Dateien!
13.01.2016 19:15:37
fremden
Alles klar. Die Datei war leider etwas zu groß, obwohl sie nur 2 Blätter umfasst. Ich weiß nicht, wie ich sie "entschlacken" soll.
Habe die Lösung von Harry genommen und es funktioniert jetzt richtig.
Danke auch dir.
Gruß
mike49

Anzeige
AW: Zellen aktivieren mit Makro
13.01.2016 07:00:22
hary
Moin
Probier mal.
Dim a As Variant
With ThisWorkbook.Sheets(Format(Date, "Vorlage"))
.Activate
a = Application.Match(CLng(Date), .Range("B8:B42"), 0)
If IsNumeric(a) Then
.Range("B8:B42").Cells(a, 5).Select
End If
End With

gruss hary

Anzeige
AW: Zellen aktivieren mit Makro
13.01.2016 19:09:06
mike49
Hallo Harry,
funktioniert dann richtig, wenn ich bei . . .Cells(a, 5).Select die 5 in 4 abändere.
Danke für die Hilfe.
Gruß
mike49
Anzeige
Anzeige

Infobox / Tutorial

Zellen aktivieren mit Makro in Excel


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel mithilfe eines Makros zu aktivieren, kannst du die folgende Vorgehensweise anwenden. Dabei wird die Zelle aktiv, die dem aktuellen Datum in einer bestimmten Spalte entspricht, wobei Leerzellen übersprungen werden.

  1. Öffne deine Excel-Arbeitsmappe und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Projekt-Explorer auf "Diese Arbeitsmappe".
  3. Füge den folgenden VBA-Code ein:
Private Sub Workbook_Open()
    Dim a As Variant
    With ThisWorkbook.Sheets("Vorlage")
        .Activate
        a = Application.Match(CLng(Date), .Range("B8:B42"), 0)
        If IsNumeric(a) Then
            .Cells(a + 7, 5).Select ' 7, weil der Bereich B8 beginnt
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und speichere deine Arbeitsmappe als .xlsm, um das Makro zu aktivieren.
  2. Schließe die Arbeitsmappe und öffne sie erneut. Nun solltest du die korrekte Zelle in Spalte E aktiviert sehen.

Häufige Fehler und Lösungen

  • Problem: Zelle wird nicht richtig aktiviert.

    • Lösung: Stelle sicher, dass die Zellen in Spalte B die richtigen Datumswerte enthalten und keine Leerzellen an den falschen Stellen vorhanden sind. Der Code überspringt Leerzellen, daher sollten die Datumswerte korrekt gesetzt sein.
  • Problem: Fehler beim Ausführen des Makros.

    • Lösung: Überprüfe, ob du das Makro im richtigen Modul eingefügt hast. Es sollte in "Diese Arbeitsmappe" und nicht in einem Modul eingefügt werden.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch die Funktion WVERWEIS oder SVERWEIS nutzen, um Daten basierend auf dem aktuellen Datum zu suchen. Diese Methode ist jedoch weniger flexibel und bietet nicht die Möglichkeit, die Zelle direkt zu aktivieren.


Praktische Beispiele

Hier ist ein einfaches Beispiel:

Du hast in den Zellen B8:B42 verschiedene Datumsangaben und möchtest die entsprechende Zelle in E aktivieren. Mit dem oben genannten Makro wird beim Öffnen der Arbeitsmappe die Zelle in Spalte E aktiviert, die dem aktuellen Datum in Spalte B zugeordnet ist, auch wenn einige Zellen in B leer sind.


Tipps für Profis

  • Debugging: Wenn dein Makro nicht wie gewünscht funktioniert, füge Debug.Print-Anweisungen ein, um den Wert von Variablen während der Ausführung zu überwachen.
  • Optimierung: Du kannst die Application.ScreenUpdating-Eigenschaft auf False setzen, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies kann die Leistung verbessern.
Application.ScreenUpdating = False
' Deaktiviere die Bildschirmaktualisierung
' Dein Code hier
Application.ScreenUpdating = True
' Aktiviere die Bildschirmaktualisierung

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um eine andere Spalte zu aktivieren? Du musst die Zahl in .Cells(a + 7, 5).Select anpassen. Ändere die 5 auf die entsprechende Spaltennummer.

2. Funktioniert das Makro in allen Excel-Versionen? Ja, das Makro sollte in den meisten aktuellen Versionen von Excel funktionieren, die VBA unterstützen, wie Excel 2010 bis 2021 und Excel für Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige