Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Fehler in Formel?
18.06.2015 12:11:38
Michael
Hallo Forum,
ich möchte CheckBoxen ausgehend von D3 bis ans Ende der Tabelle einfügen. Mit folgendem gefundenen Code funktioniert es für einen fest vorgegebenen Bereich. Wie muss ich die Formel anpassen wenn ich bis ans Ende der Tabelle definieren will?
Call Checkboxen_Einfuegen(Bereich:=Worksheets("ALL-REST").Range("D3:D30"), _
bDrucken:=True, bLinkedCell:=True)
Gruß
Michael

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler in Formel?
18.06.2015 12:15:35
Rudi
Hallo,
Call Checkboxen_Einfuegen(Bereich:=Worksheets("ALL-REST").Range(Worksheets("ALL-REST").Cells(3,4),Worksheets("ALL-REST").cells(Rows.count,4).end(xlup)), _
bDrucken:=True, bLinkedCell:=True)
Gruß
Rudi

AW: VBA Fehler in Formel?
18.06.2015 12:40:32
Michael
Danke Rudi für deine Hilfe!
Angenommen ich will das Aufrufen der Prozedur mit Call übergehen und den Code direkt in eine andere Prozedur einbauen. Sprich:
Call Checkboxen_Einfuegen(Bereich:=Worksheets("ALL-REST").Range(Worksheets("ALL-REST").Cells(3,4),Worksheets("ALL-REST").cells(Rows.count,4).end(xlup)), _
bDrucken:=True, bLinkedCell:=True)
fällt weg und der nachfolgende Code wird direkt in die Prozedur eingebaut:
Private Sub Checkboxen_Einfuegen(Bereich As Range, _
Optional bDrucken As Boolean = True, _
Optional bLinkedCell As Boolean = False)
Dim Zelle As Range, wks As Worksheet, oShape As Shape
For Each Zelle In Bereich
Set oShape = Bereich.Parent.Shapes.AddFormControl(Type:=xlCheckBox, _
Left:=Zelle.Left + 1, Top:=Zelle.Top + 1, Width:=10, Height:=10)
oShape.TextFrame.Characters.Text = ""
oShape.ControlFormat.PrintObject = bDrucken
wie muss ich den Range definieren damit die gewünschten Zellen, also von D3 bis Tabellenende, mit Checkboxen gefüllt werden.
Ich will es so einfach wie möglich halten,d.h. die Range angeben und diese Range soll mit den Boxen gefüllt werden. Vielleicht gibt es dazu einen einfacheren Code.
Würde dieser Code Sinn machen:
For Each Zelle
With Worksheets("ALL-REST").Range(Worksheets("ALL-REST").Cells(3,4),Worksheets("ALL-REST").cells(Rows.count,4).end(xlup)), _
bDrucken:=True, bLinkedCell:=True)
Set oShape = Bereich.Parent.Shapes.AddFormControl(Type:=xlCheckBox, _
Left:=Zelle.Left + 1, Top:=Zelle.Top + 1, Width:=10, Height:=10)
oShape.TextFrame.Characters.Text = ""
oShape.ControlFormat.PrintObject = bDrucken
Anstatt Worksheets würde auch ActiveWorksheet vielleicht gehen?
Hast Du vielleicht eine Idee?
Gruß
Michael

Anzeige
AW: VBA Fehler in Formel?
18.06.2015 12:54:51
Rudi
Hallo,
so?
Sub aaa()
Dim Zelle As Range
Dim bDrucken As Boolean, bLinkedCell As Boolean
Dim oShape As Object
bDrucken = True
bLinkedCell = True
With Worksheets("ALL-REST")
For Each Zelle In .Range(.Cells(3, 4), .Cells(Rows.Count, 4).End(xlUp))
Set oShape = .Shapes.AddFormControl(xlCheckBox, 0, 0, 0, 0)
With oShape
.Left = Zelle.Left + 1
.Top = Zelle.Top + 1
.Width = 10
.Height = 10
.TextFrame.Characters.Text = ""
.ControlFormat.PrintObject = bDrucken
End With
Next Zelle
End With
End Sub

Gruß
Rudi

AW: VBA Fehler in Formel?
18.06.2015 13:09:27
Michael
Ganz genau. Super und Danke!
Gruß
Michael

Anzeige
AW: VBA Fehler in Formel?
18.06.2015 15:27:59
Michael
Hallo Rudi,
vielleicht kannst Du mir nochmal kurz helfen?
Wenn ich nun eine dieser CheckBoxen anklicke würde ich gerne das in der Spalte AF entweder Wahr oder Falsch erscheint. Der Hintergedanke ist, dass ich damit dann für weitere Berechnungen weiter arbeiten könnte. Worauf ich letztendlich hinaus will ist, dass ich mir später einen Code zusammen bastle der mir alle Werte einer bestimmten Spalte errechnet, ausgenommen da wo ein Häckchen in der Spalte D ist.
Ich hab irgendwo gelesen, dass man dieses Wahr oder Falsch mit hilfe einer LinkedCell erreicht. Stimmt das?
Gruß
Michael

Anzeige
LinkedCell
18.06.2015 16:31:58
Rudi
Hallo,
das stimmt.
Sub aaa()
Dim Zelle As Range
Dim bDrucken As Boolean, bLinkedCell As Boolean
Dim oShape As Object
bDrucken = True
bLinkedCell = True
With Worksheets("ALL-REST")
For Each Zelle In .Range(.Cells(3, 4), .Cells(Rows.Count, 4).End(xlUp))
Set oShape = .Shapes.AddFormControl(xlCheckBox, 0, 0, 0, 0)
With oShape
.Left = Zelle.Left + 1
.Top = Zelle.Top + 1
.Width = 10
.Height = 10
.TextFrame.Characters.Text = ""
With .ControlFormat
.PrintObject = bDrucken
.LinkedCell = "AF" & Zelle.Row
.Value = False
End With
End With
Range("AF" & Zelle.Row) = False
Next Zelle
End With
End Sub
Gruß
Rudi
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige