Ich habe von VBA leider keine Ahnung und bin bei meinem Problem noch zu keiner Lösung gekommen.
Die Situation gestaltet sich wie folgt:
Ich arbeite in meiner Mappe (genauer gesagt in Tabelle 2, falls Angabe wichtig) mit zwei Formularsteuerelementen (Optionsfeld 155 & Optionsfeld 156). Je nachdem welches dieser beiden Optionsfelder ich anklicke, bekomme ich in der Zelle „N2“ eine Zahl angezeigt (1 oder 2).
Nun zu meinem eigentlichen Problem…
Ich möchte gerne erreichen, dass beim Auswählen des Optionsfeldes 155 (wenn also in Zelle „N2“ eine 1 angezeigt wird) die kompletten Spalten Z-EA automatisch ausgeblendet werden.
Nach einiger Recherche habe ich folgenden - für mein Anliegen leider nur teilweise funktionierenden - Code gefunden, den ich aber mangels eigener VBA-Kenntnisse leider nicht entsprechend modifiziert bekomme:
If target = range(„D8“) Then
Select Case target.Value
Case Is = 1
Columns(„E:E“).Hidden = True
Case Is 1
Columns(„E:E“).Hidden = False
End Select
End If
End Sub
Dieser Code funktioniert leider nur dann, wenn ich in besagter Zelle die erforderliche Zahl manuell eintrage (also ohne Auto-Funktion nach „Optionsfeld-Klick“).
Ich habe von VBA leider keine Ahnung und bin bei meinem
Problem noch zu keiner Lösung gekommen.
Wo hast Du denn bisher nachgefragt?
Ich arbeite in meiner Mappe (genauer gesagt in Tabelle 2,
falls Angabe wichtig) mit zwei Formularsteuerelementen
(Optionsfeld 155 & Optionsfeld 156). Je nachdem welches dieser
beiden Optionsfelder ich anklicke, bekomme ich in der Zelle
„N2“ eine Zahl angezeigt (1 oder 2).
Wie genau kommt die Zahl denn in diese Zelle?
Was hast Du da unternommen?
Und woher stammt die Optionsfelder?
Nach einiger Recherche habe ich folgenden - für mein Anliegen
leider nur teilweise funktionierenden - Code gefunden, den ich
aber mangels eigener VBA-Kenntnisse leider nicht entsprechend
modifiziert bekomme:
Der Code ist leider unvollständig - es fehlt die Kopfzeile, die vermutlich ein Ereignis auf dem Tabellenblatt anspricht…
If target = range(„D8“) Then
Select Case target.Value
Case Is = 1
Columns(„E:E“).Hidden = True
Case Is 1
Columns(„E:E“).Hidden = False
End Select
End If
End Sub
Dieser Code funktioniert leider nur dann, wenn ich in besagter
Zelle die erforderliche Zahl manuell eintrage (also ohne
Auto-Funktion nach „Optionsfeld-Klick“).
Das klingt als ob es Optionsfelder aus der Steuerelemente-Toolbox sind und Du den Wert dann über das Click-Ereignis des Feldes in die Zelle schreibst?
Dann kannst Du doch ohne auf die Zelle Bezug zu nehmen, die Spalten gleich direkt im Click-Ereignis des Feldes ansprechen und aus- sowie einblenden - im einen Feld halt ein- und im andern ausblenden.
probiers hiermit ist ungetest, namen des formula und name des optionsfeld ausbessern.
if NameDesFormular.NameDesOptionsfeld155.value == 1 _
or NameDesFormular.NameDesOptionsfeld156.value == 1 then
Columns(„E:E“).Hidden = True
else
Columns(„E:E“).Hidden = False
end if
If target = range(„D8“) Then
Select Case target.Value
Case Is = 1
Columns(„E:E“).Hidden = True
Case Is 1
Columns(„E:E“).Hidden = False
Hallo,
diese Anfrage ist schwer zu beantworten, da nicht erkennbar ist, in welcher Sub der Code enthalten ist und wie er aktiviert wird. Normalerweise gibt es zu Objekten wie Optionsfeldern eine Reihe von Ereignisroutinen, z.B. _Click(), die beim Click auf das Optionsfeld aktiviert werden - da gehört der Code hin.
Viel Erfolg
Rainer
versuch mal den makrorekorder aus. den starten, dann die gewünschten zellen (spalten) ausblenden und anschliessend wieder stoppen.
ebenfalls so ein makro erstellen, dass das ganze wieder einblendet.
dann brauchst du noch was, das merkt, wenn sich der inhalt der zelle oder des optionsfeld entsprechend verändert, und dadurch das makro gestartet wird.
Erstmal wäre es toll die Excel Version zukennen, denn ab 2007 hat sich einiges geändert.
Was ich hier schreibe betrifft Excel 2007.
mit zwei Formularsteuerelementen
(Optionsfeld 155 & Optionsfeld 156). Je nachdem welches dieser
beiden Optionsfelder ich anklicke, bekomme ich in der Zelle
„N2“ eine Zahl angezeigt (1 oder 2)
Die Zelle Verknüpfung brauchst du nicht wirklich.
Ich möchte gerne erreichen, dass beim Auswählen des
Optionsfeldes 155 (wenn also in Zelle „N2“ eine 1 angezeigt
wird) die kompletten Spalten Z-EA automatisch ausgeblendet
werden.
Du hinter legst diese beiden Makros in einem Modul.
Sub Ausblenden_ZEA()
’
’ Ausblenden_ZEA Makro
’
’
Columns(„Z:EA“).Select
Selection.EntireColumn.Hidden = True
End Sub
Sub Einblenden_ZEA()
’
’ Einblenden_ZEA Makro
’
’
Columns(„Z:EA“).Select
Selection.EntireColumn.Hidden = False
End Sub
Und dann weißt du dem entsprechende Optionsfeld das richtige zu.
ich kann dir nur mit excel 2003 weiterhelfen, sollte aber auch mit 2010 funktionieren
Sub Aus_Einblenden()
Select Case Worksheets(„Tabelle2“).Range(„N2“).Value
Case Is = 1
Columns(„Z:EA“).Hidden = True
Case Is 1
Columns(„Z:EA“).Hidden = False
End Select
End Sub
____________________________________________
zusätzlich bei BEIDEN optionsfeldern die zellverknüpfung N2 zuteilen (rechtsklick auf optionsfeld -> steuerung)
zusätzlich bei beiden das makro aktivieren
Hallo zusammen!
Ich habe von VBA leider keine Ahnung und bin bei meinem
Problem noch zu keiner Lösung gekommen.
If target = Range(„D8“) Then
Select Case target.Value
Case Is = 1
Range(Cells(1, 26), Cells(1, 131)).Select
Selection.EntireColumn.Hidden = True
Case Is 1
Range(Cells(1, 26), Cells(1, 131)).Select
Selection.EntireColumn.Hidden = False
…
du kannst den Options-Seuerelemente auch das entsprechende Makro zuweisen, um die gewünschten Aktionen auszuführen.
Gruß
Franz
'Diesen Code in einem allgemeinen Modul einfügen
'Das Modul ggf. im VBA-Editor zunächst für die Datei einfügen.
'Anschliessend den beiden Optionbuttons dieses Makro zuweisen \_
(Rechte-Maustasten-Klick auf den Button, dann Makro auswählen)
'Den Namen des Makros kannst du nach deinen Vorstellungen anpassen.
Sub Spalten\_Ein\_Ausblenden()
Dim wks As Worksheet
Set wks = ActiveSheet
Select Case wks.Range("N2").Value
Case 1
wks.Columns("Z:EA").Hidden = True
Case 2
wks.Columns("Z:EA").Hidden = False
End Select
End Sub
leider kann ich jetzt erst antworten (war im Urlaub).
Hier mein Vorschlag für das Problem(habe nur Z- AR ausgeblendet):
Option Explicit
Private Sub OptionButton1_Click()
Range(„N2“).Value = 1
If Range(„n2“) = 1 Then
Columns(„Z:AR“).Select
Selection.EntireColumn.Hidden = True
End If
End Sub
Private Sub OptionButton2_Click()
Range(„N2“).Value = 2
If Range(„n2“) = 2 Then
Columns(„Z:AR“).Select
Selection.EntireColumn.Hidden = False
Range(„N2“).Select
End If
End Sub
Sub Optionsfeld155_BeiKlick()
Wert1 = Sheets(„Tabelle1“).Shapes(„Optionsfeld 1“).DrawingObject.Value
If Wert1 = 1 Then
Range(„N2“).Value = 1
End If
Call Spalten
End Sub
Sub Optionsfeld156_BeiKlick()
Wert2 = Sheets(„Tabelle1“).Shapes(„Optionsfeld 2“).DrawingObject.Value
If Wert2 = 1 Then
Range(„N2“).Value = 2
End If
Call Spalten
End Sub
Sub Spalten()
OptWert = Range(„N2“).Value
Select Case OptWert
Case Is = 1
Columns(„Z:EA“).Select
Selection.EntireColumn.Hidden = True
Case Is 1
Columns(„Z:EA“).Select
Selection.EntireColumn.Hidden = False
du hast ja ausreichend Antworten erhalten. Aber leider hast du auf keine geantwortet, so bin ich jetzt froh, dass ich nur die Zeit für diese Zeilen investiere.