Ich versuche im Moment ein Problem mit meinem VBA Auswerteprogramm zu lösen.
Und zwar befindet sich auf dem ersten Tabellenblatt in Range(„Q50“) ein Drop-Downmenü, welches über die Datenprüfung eingefügt wurde.
In diesem Drop down Menü gibt es folgende Möglichkeiten zur Auswahl:
„“ (leer)
Ja
Nein
Im Change-Ereignis soll nun eine entsprechende Abfrage erfolgen:
If Sheets(„Datenblatt“).Range(„Q50“) = „Ja“ Then
Sheets(„Umkehrspanne“).Visible = True
Else
Sheets(„Umkehrspanne“).Visible = False
End If
Das Programm erkennt zwar, das in der Celle „Ja“ oder „Nein“ steht, springt nach der If-Funktion direkt auf das Else und blendet das Blatt immer nur aus. und nicht ein.
Hallo Flochen,
ich habe im Moment leider keine Zeit, um mich genau um Dein Problem zu kümmern.
Aber hier ein neuer Ansatz.
Ruf das Selection_change Ereignis des Blattes ab.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
With Target
If .Column = 1 And .Row = 1 Then
Select Case Cells(1, 1)
Case „ja“
Sheets(„xxxxxx“).Visible = True
Case Else
Sheets(„xxxxxxxx“).Visible = False
End Select
End If
End With
End Sub
oder,
statt des Dropdown-Menüs setze zwei Button „Ja“ und „Nein“ auf das Blatt.
Ich versuche im Moment ein Problem mit meinem VBA
Auswerteprogramm zu lösen.
Und zwar befindet sich auf dem ersten Tabellenblatt in
Range(„Q50“) ein Drop-Downmenü, welches über die Datenprüfung
eingefügt wurde.
Keine Ahnung, ob ein Drop-Down die Vorgehensweise beeinflusst.
In diesem Drop down Menü gibt es folgende Möglichkeiten zur
Auswahl:
„“ (leer)
Ja
Nein
Im Change-Ereignis soll nun eine entsprechende Abfrage
erfolgen:
Habe selbst erst kürzlich mit Ergeignissen hantiert, bislang mit wenig Erfolg.
If Sheets(„Datenblatt“).Range(„Q50“) = „Ja“ Then
Sheets(„Umkehrspanne“).Visible = True
Else
Sheets(„Umkehrspanne“).Visible = False
End If
Wenn ich richtig verstehe gilt eigentlich immer (2 von 3 Fällen) .Visible = False, und nur bei „Ja“ gilt .Visible = True.
Also könntest Du in Dein Ereignis oder (siehe unten) eine Subroutine immer .Visble = False wählen und Dein If auf = „Ja“ beschränken.
Das Programm erkennt zwar, das in der Celle „Ja“ oder „Nein“
steht, springt nach der If-Funktion direkt auf das Else und
blendet das Blatt immer nur aus. und nicht ein.
Soweit ich das bisher gelesen habe, wird so eine Änderung immer über
If Target.Address = „$Q$50“ Then SubRoutineName
abgefragt.
Also Worksheet_Change eine Routine aufrufen lassen.
Ich hoffe hier Hilfe zu finden.
Bin mir fast sicher, dass das noch nicht die fertige Lösung ist, aber vielleicht war der Hinweis hilfreich.
Wenn Du 'ne Lösung hast, wäre ich ganz Ohr.
wahl=Sheets(„Datenblatt“).Range(„Q50“).value
msgbox(wahl)
If wahl = „Ja“ Then
Sheets(„Umkehrspanne“).Visible = True
Else
Sheets(„Umkehrspanne“).Visible = False
End If
und schau dir an welche werte „wahl“ annimmt, es scheint wohl nicht leer ja nein sonder eher eine Zahl zu sein. Ansonsten wird nach groß und kleinschrift unterschieden…
Woher weißt Du, daß das Programm „Ja“ erkennt, wenn immer nur der else-Zweig, also „nicht-Ja“ ausgeführt wird? Ich würde mal die „Ja“-Abfrage umkehren, mit blanks vor und hinter dem ja sowie mit Groß-/Kleinschreibung experimentieren, um zu sehen, was dann passiert.
hast Du mal geprüft, ob wirklich „Ja“ in Q50 steht und nicht „JA“ (also Großschrift) oder mit einem Leerzeichen („Ja " bzw. " Ja“)?
Ist Deine Zelle Q50 ggf. als Text formatiert?
Vielleicht greift er mit dem Vergleich .Range(„Q50“) = „Ja“ auch direkt auf das Objekt „ZelleQ50“ zu und dies ist natürlich keine Zeichenkette. Versuche:
If Sheets(„Datenblatt“).Range(„Q50“).VALUE = „Ja“ Then …