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

Forumthread: Zellen aktivieren

Zellen aktivieren
12.05.2004 12:47:59
Nadine
Hallo!
Ich bin dabei ein Materialbestellprogramm in Excel zu überarbeiten und versuche die "Selects" rauszubekommen. Mit folgendem Code sollen in jedem Blatt bestimmte Spalten ausgeblendet werden und nur 2 bestimmte wieder eingeblendet. Soweit funktioniert auch alles.
Problem ist dann: es soll dann in jedem Blatt eine bestimmte Zelle aktiviert werden, so dass die Benutzer sofort mit der Eingabe loslegen können. Bei der Anweisung
.Range(Cells(Rowindex, Spaltennummer1)).Select
bekomme ich immer eine Fehlermeldung.
Kann man die Zellen auch ohne Select bzw. Activate markieren?
Danke für die Hilfe
Nadine

Sub Spalten()
Dim neuBlatt As Worksheet
Dim Rowindex As Integer
Rowindex = 4
For Each neuBlatt In Worksheets
With neuBlatt
.Unprotect "Andy"
.Columns("C:CN").EntireColumn.Hidden = True
.Columns(Spaltennummer1).Hidden = False
.Columns(Spaltennummer2).Hidden = False
.Protect "Andy", True, True, True
.Range(Cells(Rowindex, Spaltennummer1)).Select
End With
Next neuBlatt
End Sub

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen aktivieren
xXx
Hallo,
ohne Range geht's.
.Cells(RowIndex,SpaltenNummer1).Select
Gruß aus'm Pott
Udo
http://www.excelerator.de
AW: Zellen aktivieren
12.05.2004 13:02:18
Nadine
Hallo Udo,
danke für die schnelle Antwort. Klappt aber trotzdem nicht.
Fehlermeldung ist: "Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden"
Hast Du vielleicht noch eine Idee?
Grüße
Nadine
Anzeige
AW: Zellen aktivieren
12.05.2004 13:03:43
Nadine
Hallo Udo,
danke für die schnelle Antwort. Klappt aber trotzdem nicht.
Fehlermeldung ist: "Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden"
Hast Du vielleicht noch eine Idee?
Grüße
Nadine
AW: Zellen aktivieren
xXx
Hallo,
war ein Schnellschuss.
Auf einem nicht aktiven Blatt kannst du keine Zelle Selecten. Also vorher .Activate
Anzeige
AW: Zellen aktivieren
12.05.2004 13:19:09
Nadine
das .activate wollte ich eigentlich vermeiden, wenn es geht.
Kann man die Zellen nicht irgendwie ohne Select markieren?
AW: Zellen aktivieren
12.05.2004 13:35:50
Oberschlumpf
Hi Nadine
Wo ist denn das Problem mit Select bzw. Activate?
Wenn User Eingabe machen soll, dann muss doch das entsprechende Blatt und die Zelle sichtbar sein, oder?
Kann es vielleicht daran liegen, dass es in Deinem Bsp bei Blattwechsel (Makrobedingt) zu sehr "flackert"?
Dann verwende doch von Beginn bis Ende des Makros die Funktion
Application.ScreenUpdating = False
bzw
Application.ScreenUpdation = True
Aber ich denk, bei Deinem VBA-Level wird DAS wohl nicht das Prob sein, oder?
Ciao
Thorsten
Anzeige
AW: Zellen aktivieren
12.05.2004 13:56:22
Nadine
Hallo Thorsten,
ich habe hier eine ziemlich große Datei, die ich überarbeiten soll. Der Verfasser hat fast nur select benutzt. Ich bin froh, über jedes select das ich entfernen kann ;-)
Das entsprechende Blatt wählt der Benutzer erst später aus, in dem betreffende sub ging's erst mal nur ums Einblenden der richtigen Spalten.
Das ScreenUpdating habe ich als erstes eingebaut. Trotzdem danke für den Tipp!
Grüße
Nadine
Anzeige
AW: Zellen aktivieren
Kurt
hi Nadine,
es geht fast alles
aber wozu muss denn die Zelle überhaupt aktiviert werden ?
Application.Goto Reference:= .Cells(RowIndex, Spaltennummer1), Scroll:=True
und Tschüss
AW: Zellen aktivieren
12.05.2004 13:49:05
Nadine
Dachte ich's mir doch ;-)
Danke, Kurt!
Die Zelle soll aktiviert werden, damit die Benutzer direkt an der richtigen Stelle sind, wenn sie auf das Tabellenblatt losgelassen werden...
Anzeige
AW: Zellen aktivieren
xXx
Hallo,
in dem Fall kommst du wohl nicht drum rum. Manchmal geht es halt nicht ohne Select/ Activate.
Gruß aus'm Pott
Udo

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen aktivieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel VBA zu aktivieren, kannst du den Befehl .Select verwenden. Wenn du jedoch die Verwendung von Select vermeiden möchtest, kannst du die Zelle direkt ansteuern. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Füge den folgenden Code ein, um die gewünschte Zelle zu aktivieren:
Sub ZelleAktivieren()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DeinBlattname") ' Ersetze "DeinBlattname" mit dem tatsächlichen Namen des Blattes
    ws.Activate ' Aktiviere das Blatt
    ws.Cells(4, 2).Select ' Wähle die Zelle in der 4. Reihe und 2. Spalte
End Sub
  1. Führe das Makro aus (F5), um die Zelle zu aktivieren.

Häufige Fehler und Lösungen

  • Fehler: "Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden"

    • Lösung: Stelle sicher, dass das Blatt, auf dem du die Zelle aktivieren möchtest, auch aktiv ist. Du musst das Blatt mit .Activate aktivieren, bevor du .Select verwendest.
  • Fehler: Flackern beim Blattwechsel

    • Lösung: Verwende Application.ScreenUpdating = False am Anfang deines Makros und Application.ScreenUpdating = True am Ende, um das Flackern zu minimieren.

Alternative Methoden

Wenn du die Zelle aktivieren möchtest, ohne die Select-Methode zu verwenden, kannst du die Application.Goto-Methode nutzen. Hier ein Beispiel:

Sub ZelleScrollen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DeinBlattname")
    Application.Goto Reference:=ws.Cells(4, 2), Scroll:=True
End Sub

Diese Methode scrollt zur Zelle, ohne sie auszuwählen, was oft eine bessere Benutzererfahrung bietet.


Praktische Beispiele

Hier sind einige praktische Anwendungsfälle:

  1. Aktivieren einer bestimmten Zelle in mehreren Blättern:
Sub AktivierenInAllenBlättern()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Activate
        ws.Cells(4, 2).Select
    Next ws
End Sub
  1. Zellen aktivieren und gleichzeitig Spalten ausblenden:
Sub SpaltenUndZellenAktivieren()
    Dim neuBlatt As Worksheet
    Dim Rowindex As Integer
    Dim Spaltennummer1 As Integer
    Rowindex = 4
    Spaltennummer1 = 2 ' Beispiel für die 2. Spalte
    For Each neuBlatt In Worksheets
        With neuBlatt
            .Columns("C:CN").EntireColumn.Hidden = True
            .Columns(Spaltennummer1).Hidden = False
            .Activate
            .Cells(Rowindex, Spaltennummer1).Select
        End With
    Next neuBlatt
End Sub

Tipps für Profis

  • Vermeide übermäßigen Einsatz von Select und Activate: Es ist oft effizienter, direkt auf Zellen zuzugreifen, ohne sie vorher zu aktivieren.
  • Nutze With-Anweisungen: Diese helfen, den Code lesbarer zu gestalten und die Ausführungsgeschwindigkeit zu erhöhen.
  • Verwende Application.ScreenUpdating: Das Deaktivieren der Bildschirmaktualisierung kann die Ausführungszeit deiner Makros erheblich reduzieren.

FAQ: Häufige Fragen

1. Wie kann ich eine Zelle ohne Select aktivieren? Du kannst die Application.Goto-Methode verwenden, um zur Zelle zu scrollen, ohne sie auszuwählen.

2. Was ist der Unterschied zwischen Select und Activate? Select wählt ein Objekt aus, während Activate ein Objekt aktiv macht, sodass darauf zugegriffen werden kann. Activate ist oft notwendig, bevor Select verwendet wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige