Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Selection Value

Selection Value
DirkR
Hallo Excelgemeinde,
irgendwie hänge ich und komme nicht weiter.
Ich möchte, dass wenn ich in einem Tabellenblatt in einer Zelle einen Rechtsklick mache, dass dann eine Userform gezeigt wird. Das habe ich auch hinbekommen. In der Userform gibt es 2 CommandButton. der erste ist mit DU und der zweite ist mit Reha beschriftet. Nun soll folgendes passieren:
Clicke ich z.B. Beispiel auf den Button Reha, dann soll im aktiven Tabellenblatt alle selktierten Zellen den Inhalt Reha bekommen.
Mit dem Code geht es nicht: ActiveSheet.Target.Cells.Value = "Reha"
Aber wie dann....?
Ich komme nicht drauf.
Bitte daher um Hilfe!!!
Gruß DirkR
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Selection.Value
07.01.2011 16:45:17
Matthias
Hallo
siehe Dein Betreff
Private Sub CommandButton1_Click()
Selection.Value = "Reha"
End Sub
Gruß Matthias
AW: Selection.Value
07.01.2011 16:47:37
DirkR
Hallo Matthias,
genau das wars. Bin wohl überarbeitet. DANKE!!!!
Gruß Dirk
Bsp v. RANSI ist sicherer !
07.01.2011 17:11:27
Matthias
Hallo
Nimm RANSI sein Beispiel und frag vorher den Objekttyp ab.
If TypeOf Selection Is Range ...
Das hatte ich nicht mit berücksichtigt.
Kann aber entscheidend sein damit der Code ohne Fehler durchläuft.


Desweiteren kannst Du auch gleich den .CaptionWert des Button als .Value setzen
Zitat:
In der Userform gibt es 2 CommandButton. der erste ist mit DU und der zweite ist mit Reha beschriftet.
Also:
Private Sub CommandButton1_Click()
If TypeOf Selection Is Range Then Selection.Value = CommandButton1.Caption
End Sub

Private Sub CommandButton2_Click()
If TypeOf Selection Is Range Then Selection.Value = CommandButton2.Caption
End Sub
Gruß Matthias
Anzeige
AW: Selection Value
07.01.2011 16:47:20
ransi
Hallo Dirk
LAss mal das aCTIVEsHEET WEG:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub


' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
If TypeOf Selection Is Range Then Selection.Value = "Reha"
End Sub



Private Sub CommandButton2_Click()
If TypeOf Selection Is Range Then Selection.Value = "Du"
End Sub


RANSI
Anzeige
AW: Selection Value
07.01.2011 17:16:30
DirkR
Danke RANSI,
funzt super!!!
Gruß Dirk
;
Anzeige
Anzeige

Infobox / Tutorial

Auswahlwerte in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

  1. Userform erstellen:

    • Öffne den VBA-Editor mit ALT + F11.
    • Erstelle eine Userform mit zwei CommandButtons: einen für "Reha" und einen für "DU".
  2. Code für die Userform einfügen:

    • Doppelklicke auf den ersten CommandButton und füge folgenden Code hinzu:

      Private Sub CommandButton1_Click()
       If TypeOf Selection Is Range Then Selection.Value = "Reha"
      End Sub
    • Doppelklicke auf den zweiten CommandButton und füge diesen Code hinzu:

      Private Sub CommandButton2_Click()
       If TypeOf Selection Is Range Then Selection.Value = "DU"
      End Sub
  3. Rechtsklick-Ereignis im Arbeitsblatt:

    • Gehe zu dem Arbeitsblatt, in dem du die Auswahl ändern möchtest.
    • Füge im Codefenster des Arbeitsblattes folgenden Code hinzu:

      Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
       Cancel = True
       UserForm1.Show
      End Sub

Jetzt wird bei einem Rechtsklick auf eine Zelle die Userform geöffnet, und du kannst die Werte der ausgewählten Zellen ändern.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt":
    • Stelle sicher, dass der Code in der richtigen Userform oder dem Arbeitsblatt eingefügt wurde.
  • Lösung: Auswahl nicht erkannt:
    • Achte darauf, dass der Typ der Auswahl tatsächlich ein Range ist, wie im Code geprüft.

Alternative Methoden

  • Direkte Zuweisung in einer Schleife: Wenn du eine spezifische Logik benötigst, um z.B. nur bestimmte Zellen zu ändern, kannst du die For Each Schleife verwenden:

    Dim cell As Range
    For Each cell In Selection
      cell.Value = "Reha"
    Next cell
  • Verwendung von ActiveSheet: Wenn du sicherstellen möchtest, dass der Code auf das aktive Arbeitsblatt zugeschnitten ist, kannst du ActiveSheet verwenden, obwohl dies in der Regel nicht notwendig ist, wenn du die Selection korrekt verwendest.


Praktische Beispiele

Hier sind einige praktische Anwendungen, die den Umgang mit Selection.Value verdeutlichen:

  1. Festlegen mehrerer Zellen: Wenn du mehrere Zellen gleichzeitig ansprechen möchtest, kannst du:

    Selection.Value = "Neuer Wert"
  2. Einfärben der Zellen: Kombiniere die Selection.Value mit einer Formatierung:

    Selection.Interior.Color = RGB(255, 0, 0) ' Färbt die Zellen rot
    Selection.Value = "Wert"

Tipps für Profis

  • Verwendung von .Value2: Nutze Selection.Value2 anstelle von Selection.Value, um die Leistung zu verbessern, da Value2 weniger Formatierungsinformationen verarbeitet.

  • Vermeide globale Variablen: Halte deinen Code sauber, indem du globale Variablen vermeidest. Verwende stattdessen lokale Variablen innerhalb deiner Subroutinen.

  • Debugging: Nutze Debug.Print um Werte während der Entwicklung zu überprüfen, z.B.:

    Debug.Print Selection.Address

FAQ: Häufige Fragen

1. Frage: Was ist der Unterschied zwischen Selection.Value und Selection.Value2?

  • Selection.Value gibt die Werte in der aktuellen Formatierung zurück, während Selection.Value2 die Werte ohne Formatierung zurückgibt.

2. Frage: Wie kann ich sicherstellen, dass mein Code nicht abstürzt, wenn keine Zellen ausgewählt sind?

  • Füge eine Überprüfung hinzu:

    If Selection.Cells.Count > 0 Then
       ' Dein Code hier
    End If

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