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

Select oder Activate?

Forumthread: Select oder Activate?

Select oder Activate?
26.11.2002 16:20:55
Karin
Hallo zusammen!
Kann mir jemand evtl. sagen, welcher Unterschied es gibt zwischen Select und Activate?
Ich habe mehrmals gelesen, dass Select nur den Code verlangsamt.
Vielen Dank

Gruss

Karin

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Select oder Activate?
26.11.2002 16:36:33
Ralf Sögel
Wenn du z.B.nur eine Zelle auswählts, ist es egal ob select oder activate. Wenn du einen Zellbereich selectierst, kannst du mit activate eine bestimmte Zelle innerhalb dieser Selektion zur aktiven machen(eingabebereit). Auf select und activate kann fast immer verzichtet werden.
Re: Select oder Activate?
26.11.2002 16:37:54
Hans W. Hofmann
Warum fällt es eigentlich so schwer auf die F1 Taste zu drücken und das nachzulesen? ;-)
Zum zweiten Teil:
Die Selectiererei ist grundsätzlich abzulehnen. Wiel sie unübersichtlichen und unflexiblen Code liefert, d.h. die Codeausführung ist ggf. von Zellenmarkierungen abhängig und damit nicht alltagstauglich. Aber vielleicht hast Du ein konkretes Problem, an dem wir das aufhängen können...

Gruß HW

Anzeige
Re: Select oder Activate?
26.11.2002 16:39:59
Karin
Vielen Dank für die Erklärung.....
was kann ich als Alternative benutzen? Irgendwie muss ich in meinem Code Zellen selektieren oder aktivieren.
Re: Select oder Activate?
26.11.2002 17:12:58
PeterA
Hallo Karin !

So kannst du z.Bb. einen Wert in die Zelle A1 Des Tabellenblattes Tabelle1 schreiben ohne zu selektieren.

Worksheets("Tabelle1").Cells(1,1) = 123

oder z.b. die Hintergrundfarbe ändern ...

Worksheets("Tabelle1").Cells(1,1).Interior.ColorIndex = 6

oder die schriftfarbe ändern...

Worksheets("Tabelle1").Cells(1,1)Font.ColorIndex = 3

Ein kleiner Anhaltspunkt
Ciao Peter

Anzeige
Re: Select oder Activate?
26.11.2002 17:13:12
Karin
zur Taste F1....leider ist die Hilfe nicht in meiner Muttersprache ;o(
Problem habe ich keines mit dem selektieren, es hat mich einfach nur interessiert WARUM der Code deshalb langsamer wird. Aber durch eure ausführliche Erklärung ist eine meiner Hirnzellen etwas satter geworden.
Danke schön!
Gruss

Karin

Anzeige
Re: Select oder Activate?
26.11.2002 18:15:48
Ralf Sögel
Poste doch mal ein konkretes Problem.
Hier ein Beispiel
27.11.2002 06:48:37
Karin
Private Sub UserForm_Initialize()

Dim Nombre As Integer

Range("A1").Select
Selection.End(xlDown).Select 'positioniert Curser auf die letzte beschriebene Zeile (die Zeilen sind nummmeriert...1,2,3....)
Nombre = ActiveCell.Value + 1 'Wert der Zeile plus 1
txtnumérocréation.Value = Nombre
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = txtnumérocréation.Value
End Sub

Anzeige
Re: Hier ein Beispiel
27.11.2002 06:57:03
Georg_Zi
Hallo Karin

Deine Code ohne select usw. würde ungefähr so aussehen.


Option Explicit

Private Sub UserForm_Initialize()
txtnumérocréation.Value = Range("A1").End(xlDown) + 1
Range("A1").End(xlDown).Offset(1, 0) = txtnumérocréation.Value
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Georg

Anzeige
Re: Hier ein Beispiel
27.11.2002 07:00:59
Karin
Guten Morgen!
Poah....das ist ja ein Ding!
Vielen vielen vielen Dank!
Bin noch Anfängerin und hoffe sehr eines Tages annähernd logisch codieren zu können ;o)
Vielen Dank jedenfalls!
Gruss

Karin

Re: Hier ein Beispiel
27.11.2002 11:23:22
Ralf Sögel
Das ginge z.B. so:
Option Explicit
Sub nummerieren()
If [a1] = "" Then
[a1] = 1
Exit Sub
End If
[a65536].End(xlUp).Offset(1, 0) = _
[a65536].End(xlUp) + 1
End Sub
Anzeige
Danke schön
27.11.2002 13:01:09
Karin
Gruss

Karin

;
Anzeige

Infobox / Tutorial

Unterschiede zwischen Select und Activate in VBA


Schritt-für-Schritt-Anleitung

  1. Verstehen der Begriffe: Der Befehl Select wird verwendet, um eine Zelle oder einen Zellbereich auszuwählen, während Activate eine Zelle oder einen Zellbereich aktiv macht, sodass Du darin Eingaben tätigen kannst.

  2. Verwendung in VBA:

    • Um eine Zelle auszuwählen, kannst Du Range("A1").Select verwenden.
    • Um eine Zelle zu aktivieren, nutze Range("A1").Activate.
  3. Code optimieren: Es ist oft besser, Select und Activate zu vermeiden, da sie den Code verlangsamen können. Stattdessen kannst Du die Zellen direkt ansprechen, wie in folgendem Beispiel:

    Worksheets("Tabelle1").Cells(1, 1) = 123

Häufige Fehler und Lösungen

  • Fehler: "Method 'Select' of object 'Range' failed"

    • Lösung: Stelle sicher, dass die Arbeitsmappe aktiv ist, bevor Du eine Zelle auswählst oder aktivierst. Verwende Worksheets("DeinBlatt").Activate.
  • Fehler: Der Code läuft langsamer als erwartet.

    • Lösung: Vermeide die Verwendung von .Select und .Activate. Greife direkt auf die Zellen zu, um die Ausführung zu beschleunigen.

Alternative Methoden

Wenn Du Zellen in Excel VBA ansprechen möchtest, ohne sie zu selektieren oder zu aktivieren, kannst Du folgende Methoden verwenden:

  • Direkte Zuweisung:

    Worksheets("Tabelle1").Cells(1, 1) = 123
  • Ändern von Eigenschaften:

    Worksheets("Tabelle1").Cells(1, 1).Interior.ColorIndex = 6
  • Verwendung von Variablen:

    Dim rng As Range
    Set rng = Worksheets("Tabelle1").Cells(1, 1)
    rng.Value = 123

Praktische Beispiele

Hier sind einige praktische Beispiele, die zeigen, wie Du Activate und Select vermeiden kannst:

  1. Zähler erhöhen:

    Private Sub UserForm_Initialize()
       Dim Nombre As Integer
       Nombre = Worksheets("Tabelle1").Range("A1").End(xlDown).Value + 1
       Worksheets("Tabelle1").Range("A1").End(xlDown).Offset(1, 0).Value = Nombre
    End Sub
  2. Farbe ändern:

    Worksheets("Tabelle1").Cells(1, 1).Interior.ColorIndex = 6

Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Tippfehler in Variablennamen zu vermeiden.
  • Minimiere die Verwendung von Select und Activate: Dies verbessert die Lesbarkeit und Geschwindigkeit Deines Codes.
  • Nutze With-Anweisungen: Damit kannst Du den Code kürzer und effizienter gestalten:
    With Worksheets("Tabelle1").Cells(1, 1)
      .Value = 123
      .Interior.ColorIndex = 6
    End With

FAQ: Häufige Fragen

1. Was ist der Hauptunterschied zwischen Select und Activate?
Select wählt eine Zelle aus, während Activate die Zelle aktiv macht, sodass Du darin direkt arbeiten kannst.

2. Warum sollte ich Select und Activate vermeiden?
Die Verwendung dieser Methoden kann den Code verlangsamen und ihn weniger flexibel machen, da die Ausführung von Zellenmarkierungen abhängt.

3. Wie kann ich Werte in Zellen setzen, ohne Select zu verwenden?
Du kannst direkt auf die Zellen zugreifen, indem Du den Arbeitsblattnamen und die Zellreferenz angibst, wie in Worksheets("Tabelle1").Cells(1, 1) = 123.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige