habe folgende Ausgangssituation:
Über eine Datenbank wird mittels Exportieren ein Arbeitsblatt befüllt. Mittels VBA wird eine Userform generiert die genau soviele Checkboxen hat, wie Zellen in der Überschriftenzeile befüllt sind. Das funktioniert. Werden die "dynamisch generierten" Checkboxen auf .Value = True gestetzt wird die entsprechende Spalte gelöscht. >> auch das funktioniert
Nun das Problem
Ich möchte mit einer weiteren Checkbox namens "Standard" automatisch nach bestimmten Kriterien die "dynamsich" erstellten Checkboxen auf .Value = True stellen. Also wenn Standard.Value = True dann soll bei Checkboxen die die .Capiton = Sparte Or Spartenbezeichnung Or .... Or .... dann soll der WErt auf True gesetzt werden. Die Manuelle Auswahl bleibt unberührt davon.
Anbei der gesamte Code ! Fehlerstellen sind gekennzeichnet! (Ich erhalte die Laufzeitfehlermeldung 13!)
Option Explicit
Public y
Private Sub UserForm_Initialize()
Dim i As Long
Dim j As Integer
Dim w As Long
Dim y As Integer
Dim x As String
Dim CB As MSForms.CheckBox
Dim z As Long
Sheets("Anschrift").Activate
Rows("7:7").Select
y = Application.WorksheetFunction.CountA _
(Rows(ActiveCell.Row))
Me.Height = y * 12 + 75
i = 1
For i = 1 To y
Set CB = Me.Controls.Add("Forms.Checkbox.1")
With CB
.Name = "chk_" & i
.Caption = Cells(7, i).Text
.Left = 24
.Top = w
.Width = 200
.Height = 16
.Tag = i
.Value = False
End With
w = w + 12
Next i
With Standard
.Top = y * 12
.Left = 132
.Caption = "EDINGER Sdandardspalten!"
.Font.Bold = True
.ForeColor = RGB(0, 91, 148)
.BackColor = RGB(255, 253, 7)
.Width = 125
.Value = True
End With
With Abbrechen
.Top = y * 12 + 22
.Caption = ">"
.Font.Bold = True
.ForeColor = RGB(255, 253, 7)
.Left = 132
.Height = 22
.BackColor = RGB(73, 165, 238)
End With
' ACHTUNG unfertiger Code Beginn (fehlerhaft..................!)
If Standard.Value = True Then
For z = 1 To y
With Me.Controls("chk_" & z)
If .Caption = "Sparte" Or "Spartenbezeichnung" Or "Vertrag" Then
.Value = True
End If
End With
Next z
End If
' ACHTUNG unfertiger Coder Ende (fehlerhaft..................!)
End Sub
Sub Weiter_Click()
Dim i As Long
Dim y As Integer
Dim z As Integer
Dim a As Long
y = Application.WorksheetFunction.CountA _
(Rows(ActiveCell.Row))
For i = y To 1 Step -1
Application.ScreenUpdating = False
With Me.Controls("chk_" & i)
If .Value = True Then
Sheets("Anschrift").Columns(CLng(.Tag)).Delete
End If
End With
Next i
' Das funktioniert auch nicht, lässt jedoch Makro laufen (Beginn)
For z = 256 To y + 1 Step -1
Sheets("Anschrift").Cells(7, z).ClearFormats
Next z
' Das funktioniert auch nicht, lässt jedoch Makro laufen (Ende)
Application.ScreenUpdating = True
End Sub
Wäre nett wenn mir jemand helfen kann, ich probiere auch gerne manches aus. Viele herzlichen Dank vorab für die Hilfestellung....
cia
thowe