Clever-Excel-Forum

Normale Version: Modul vor Ausführen eines Makros/Formulars starten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich arbeite zur Zeit an folgendem Code (siehe unten)
Mithilfe dieses Codes kann ich in einer UserForm Spalten ein- und ausblenden (je nachdem ob die CheckBox den Wert true oder false enthält)
Allerdings ist es zum arbeiten ziemlich umständlich, zweimal den Haken zu setzen, damit die CheckBox "checkt", dass die Spalte ausgeblendet werden soll.


Ich möchte der UserForm gerne aus einem anderen Tabellenblatt mitteilen, dass bspw. CBValAY_Click() nicht eingeblendet werden soll, wenn in eben diesem Tabellenblatt
der Wert 0 steht. Wenn dort eine 1 steht, kann es eingeblendet werden.
Komme ich hier mit CBValAY_BeforeUpdate() weiter? Leider generiere ich nur Fehlermeldungen.


Für andere Lösungsvorschläge wäre ich sehr dankbar  :19:

Beste Grüße,

Thorben
Code:
Private Sub CBValAY_Click()
ValAY = FRM_Categories_dyn.CBValAY
If ValAY = False Then
 For i = 25 To 1000 Step 21

     Columns(i).Hidden = Not FRM_Categories.CBValAY
     
 Next i
 End If
If ValAY = True Then
For i = 25 To 1000 Step 21

     Columns(i).Hidden = False
     Next
     End If
End Sub
Hallo Thorben

ich verstehe diesen Teil nicht so ganz, das Ergebnis von Not müsste doch True sein?? Oder irre ich mich da.
Dann könnte man den Code vielleicht verkürzen und nur eine For Next Schleife nehmen.
  Columns(i).Hidden = Not FRM_Categories.CBValAY  müsste doch True sein, oder??


mfg  Gast 123


Code:
Private Sub CBValAY_Click()
ValAY = FRM_Categories_dyn.CBValAY
For i = 25 To 1000 Step 21

  If ValAY = True Then Columns(i).Hidden = False
  If ValAY = False Then Columns(i).Hidden = True
   
Next i
End Sub
Hallo,

das müsste reichen:


Code:
Private Sub CBValAY_Click()
For i = 25 To 1000 Step 21
    Columns(i).Hidden = Not FRM_Categories.CBValAY
Next i
End Sub
Hey Atilla,

du hast Recht, das verkleinert den Code nochmal erheblich.
Allerdings besteht weiterhin das Problem, dass ich zweimal den Haken setzen muss,
um Spalten auszublenden.

Besten Dank und Grüße,

Thorben
Hey zusammen,

ich habe folgendes ausprobiert:
Code:
Private Sub UserForm_Activate()

Sheets("Drop").Select
Range("AO16").Select
If activeselect = 0 Then
Sheets("Countries").Select
For i = 10 To 1000 Step 21
       Columns(i).Hidden = Not FRM_Categories_dyn.CBValAY
  Next i
End If

D.h. sobald die UserForm aktiviert wird, wird werden die Spalten ausgeblendet, die in der Lasche den Wert "0" enthalten.
Allerdings bekomme ich es nicht hin ihm zu sagen, dass wenn 
Code:
Sheets("Drop").Select
Range("AO16").Select
If ActiveSelect = 1 Then Sheets ("Countries").Select
For i = 10 To 1000 Step 21
      Columns(i).Hidden = False
 Next i

Was mache ich falsch?

LG
Hallo,

leider sind Deine Ausführungen nicht verständlich.
Es ist nicht klar, wo die Chekbox sich befindet, in einer Tabelle?, in welcher?, auf einer Userform?

Welche Spalten sollen ausgeblendet werden? in einer bestimmten Tabelle?

Am besten wäre es, Du stellst eine Beispieldatei ein.
Hey Atilla,

danke für deine Zeit, ich war wirklich unverständlich.
Allerdings habe ich es jetzt sogar hinbekommen.

LG,

Thorben