Microsoft Excel

Herbers Excel/VBA-Archiv

SelectionChange ByVal funktioniert nicht | Herbers Excel-Forum


Betrifft: SelectionChange ByVal funktioniert nicht von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 18:26:08

Hallo zusammen,

nachfolgender Code funktioniert nicht.
Was mache ich falsch? Eine Fehlermeldung wird nicht erzeugt.

Wenn in Zelle A1 die Ziffer 1 erzeugt wird (durch Optionsschalter), soll in Zelle E22 die Zahl 25
erzeugt werden. Sofern durch den zweiten Optionsschalter die Ziffer 2 generiert wird, soll in Range("E22") eine 1 erzeugt werden.

Viele Grüße
Dietmar aus Aachen

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "A1" Then
If Target.Value = 1 Then Range("E22").Value = 25
If Target.Value = 2 Then Range("E22").Value = 1
End If

End Sub

  

Betrifft: AW: SelectionChange ByVal funktioniert nicht von: Hajo_Zi
Geschrieben am: 01.02.2012 18:28:02

Hallo Dietmar,

Selection ist Auswahl. Bei Dir wird nichts ausgewählt und Change wird nicht ausgelöst, vermute ich da Verknüpfung.

GrußformelHomepage


  

Betrifft: AW: SelectionChange ByVal funktioniert nicht von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 18:48:11

Hallo Hajo,

besten Dank für den Hinweis.

Eine Verknüpfung liegt nicht vor. Ich generiere lediglich mit zwie Optionsschaltern eine 1 oder eine 2 in A1.

Ohne Selection hatte ich es auch schon versucht, also nur mit 'Private Sub Worksheet_Change(ByVal Target As Range)'
Funktioniert leider auch nicht.

Hier mal meine Testdatei:
https://www.herber.de/bbs/user/78690.xls

Bin gespannt, was da nicht stimmt.

Vielen Dank!
Dietmar aus Aachen


  

Betrifft: AW: SelectionChange ByVal funktioniert nicht von: Hajo_Zi
Geschrieben am: 01.02.2012 18:50:34

Hallo Dietmar,

Du schreibst die 1 und 2 also per Code in die Zelle. Warum machst Du Deinen Code dann nicht dort?
Ich sehe keinen Grund eine Datei runterzuladen.

Gruß Hajo


  

Betrifft: Ich komme dem Ziel näher :-) von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 20:33:21

Hallo Hajo,

Du kriegst mich schon dazu, dass ich das Problem logisch eingrenze :-)
Habe jetzt eine Lösung codiert, die mich dem Ziel ein wenig näher bringt. Leider aber noch nicht zu meiner Zufriedenheit.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pruefbereich As Range
On Error Resume Next
Set Pruefbereich = Range("A1")
If Pruefbereich.Value = 1 Then Range("E22").Value = 25
End Sub
Es funktioniert , wenn ich die Zahl 1 in A1 eintrage.
Was nicht funktioniert, ist: wenn ich die 1 mittels des Optionsschalters generiere. In meiner Mutterdatei
arbeite ich aber mit mehreren Optionsschaltern; diese möchte ich auch gerne beibehalten.

Gibt es dafür eine Lösung?

Viele Grüße
Dietmar


  

Betrifft: AW: Ich komme dem Ziel näher :-) von: Hajo_Zi
Geschrieben am: 01.02.2012 20:37:39

Hallo Dieter,

das hatte ich auch schon geschrieben. Du mußt Calculate benutzen.

Gruß Hajo


  

Betrifft: genug getüftelt, komme nicht weiter von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 21:32:54

Hallo Hajo,

sorry, habe alles mögliche probiert. Es klappt nicht!

Ich weiß nicht wo ich das calculate einsetzen muss, damit eine Zellwertänderung mittels des Optionsschalters
in der Zelle A1 die Zahl 25 in Range("E22") schreibt.

Wenn ich die Zahl 1 in A1 eintippe, ist alles kein Problem.
In meiner Mutterdatei wird es aber nicht A1 sein, sondern eine verborgene Zelle, die ich mittels Optionsschalter verändere.

Private Sub Worksheet_Calculate ... jedenfalls komme ich nicht klar.


Viele Grüße
Dietmar


  

Betrifft: AW: SelectionChange ByVal funktioniert nicht von: Josef Ehrensberger
Geschrieben am: 01.02.2012 21:54:12


Hallo Dietmar,

' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Calculate()
  
  On Error GoTo ErrExit
  Application.EnableEvents = False
  
  If Range("A1") = 1 Then
    Range("E22") = 25
  Else
    Range("E22") = 1
  End If
  
  ErrExit:
  Application.EnableEvents = True
End Sub






« Gruß Sepp »



  

Betrifft: nicht wirklich von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 22:32:35

Hallo Sepp,

danke für Deine Mühe.

Ich sitze doch tatsächlich noch dran und finde einfach keine Lösung.
Dein Code funktioniert auch nur dann, wenn ich ihn in der VBA-Umgebung mit F5 (respektive F8) aktiviere.

Die Änderung des Zelleintrags in A1 mittels des Optionsschalters bewirkt leider nicht den Eintrag in E22.

So recht verstehen kann ich das nicht.


Viele Grüße
Dietmar


  

Betrifft: dann schreib in .... von: Josef Ehrensberger
Geschrieben am: 01.02.2012 22:47:35


... irgend eine Zelle de Formel =JETZT() damit die Berechnung angestoßen wird.




« Gruß Sepp »



  

Betrifft: ... na da soll einer drauf kommen ... von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 22:52:39

Hallo Sepp,

wieder mal: herzlichen Dank!
Diese Variante hatte ich nun aber wirklich nicht in meinen Überlegungen. Logisch ist es wohl auch nur
für den Profi :-)

Funktioniert aber bestens.

So, jetzt geht's mir besser :-)

Gute Nacht
Dietmar aus Aachen


  

Betrifft: AW: ... na da soll einer drauf kommen ... von: Josef Ehrensberger
Geschrieben am: 01.02.2012 22:54:12


Hallo Dietmar,

warum ist das nicht logisch? Wenn keine Formel in der Tabelle ist, kann Worksheet_Calculate ja nicht anspringen, es gibt ja nichts zu Berechnen!




« Gruß Sepp »



  

Betrifft: ok, das ist dann natürlich doch logisch ... von: Dietmar aus Aachen
Geschrieben am: 01.02.2012 22:57:30

Hallo Sepp,

jetzt hab ich's verstanden.

Das wäre mir vermutlich in meiner Mutterdatei, die ich mir gleich vorknöpfe, dann wohl auch nicht
aufgefallen, weil dort zahlreiche Berechnungen vorkommen.

Wie würde Lothar Mattäus sagen: Again what learned :-)

Bis gelegentlich dann mal wieder.

Liebe Grüße
Dietmar


Beiträge aus den Excel-Beispielen zum Thema "SelectionChange ByVal funktioniert nicht"