Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

CheckBox [Anfänger]





Frage

Hallo, wenn ich ein Kontrollkästchen mit einem Makro verknüpfe ( Private Sub CheckBox1_Click() If CheckBox1.Value = True Then Rows(1).Select ...) dann bekomme ich die Fehlermeldung beim Ausführen, daß das Objekt nicht definiert ist. Was mache ich falsch? Warum findet das Makro CheckBox1.Value nicht? Gruß!

Antwort 1 von Hazgalad

Was markiert er dir den im Debugger? Vielleicht stimmt ein Objektname nicht überein?

Antwort 2 von JamesBrown

Ja, macht er. Woher weiß ich aber den Objektnamen von meinem Kontrollkästchen, auf das sich das Makro bezieht?

Antwort 3 von michel123

hi all :)

gruss michel

hier ein makroaufruf innerhalb eines kontrollkästchens ohne parameter

Private Sub CheckBox1_Click()
makro01
End Sub

und hier ein nettes makro um sie zu zaehlen :))

Sub makro01()
Dim zaehler1 As Integer
Dim zaehler2 As Variant
zaehler1 = 0
On Error Resume Next
For Each zaehler2 In ActiveSheet.Shapes
If zaehler2.OLEFormat.ProgId = "Forms.CheckBox.1" Then If zaehler2.OLEFormat.Object.Object Then zaehler1 = zaehler1 + 1
Next
Range("A1") = zaehler1
On Error GoTo 0
End Sub

Antwort 4 von michel123

hi james :)

dein beispiel waere dann so

gruss michel

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then
Rows(1).Select
End If

End Sub

Antwort 5 von JamesBrown

Richtig, aber dennoch.

Wenn ich das Kontrollkästchen auf True setze, dannmeldet sich der Debugger mit

Laufzeitfehler 424: Objekt erforderlich

in der Zeile: If CheckBox1.Value = True Then

Antwort 6 von michel123

hi james :)

in dem code des konntrollkästchens sollte nur true false abfrage mit aufruf des makros sein,kein weiterer code,sollte dies so sein so kann ich nimmer weiterhelfen :(

gruss michel

Antwort 7 von JamesBrown

Schau mal michel:

Private Sub CheckBox1_Click()
makro01
End Sub

Sub makro01()
If CheckBox1.Value = True Then
Rows(1).Select
Selection.Copy
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tabelle1").Select
End If
End Sub

wo ist der Fehler? Ich komm nicht klar *heul*

Antwort 8 von michel123

hi james :)

es gibt manchmal probs mit tabellenuebergreifenden befehlen,daher teste vielleicht ein konntrollkästchen mit makroaufruf wo sich das makro auf der selben tabelle bezieht wo sich das konntrollkästchen befindet

durch diese problematik eben ratsam nur ein makroaufruf

wenn es daran liegt :)) ??

gruss michel

Antwort 9 von michel123

hi james :)

fein :) ich teste mom :))

gruss michel

Antwort 10 von michel123

hi james :)

ich blindfisch hehe

die abfrage checkbox true false gehoert natuerlich nicht in das makro ,sie wurde doch in der checkbox aufgerufen :)))

gruss michel

achja deine naechste uebungaufgabe koennte sein das ganze ohne select und selectionen :)))

Sub makro01()
Rows(1).Select
Selection.Copy
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tabelle1").Select
End Sub

Antwort 11 von michel123

hi james :))

hier noch ein beispiel wie man ohne selectionen die ja arg das tempo mindern auskommt :)

gruss michel

beachte die with anweisung,die kannst du folgendermassen schön ausnutzen,ohne vorangestelten punkt bezieht sich auf die aktive tabelle und mit vorangestellten punkt auf die tabelle die hinter with angegeben ist aber nicht mit namen sondern dessen index nummer,hier wird von der tabelle1 die zeile 1 copiert und das zeilenende von tabelle2 erfasst und rangehangen

Sub makro01()
With Worksheets(1)
.Rows(1 & ":" & 1).Copy Sheets(2).Rows(Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell) _
.Row + 1 & ":" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
End With
End Sub

Antwort 12 von michel123

hi james :)

faellt mir noch so ein :)

du kannst von checkboxen in einem normalen makro true false nicht abfragen,doch tricksen kannst wenn es dennoch nötig ist,man koennte eine public boolean var parallel zu true false mitlaufen lassen ,die puplicvar dann in der checkbox true false schalten und da ja puplic ist vom makro abfragbar ist :))

gruss michel

Antwort 13 von JamesBrown

Hi michel,

du bist offensichtlich der profi von uns beiden *freu*

deine erklärungen und beispiele sind schon sehr hilfreich gewesen, um einiges besser zu verstehen.

ich habe das Makro
Sub makro01()
If CheckBox1.Value = True Then
Rows(1).Select
Selection.Copy
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tabelle1").Select
End If
End Sub
schon häufig hier gesehen in den beiträgen, aber warum, wenn es nicht funktioniert, da true und false nicht abgefragt werden können?

Ich möchte doch nur, daß wenn im Kästchen der Haken gesetzt wird, bestimmte area kopiert und an anderer stelle eingesetzt wird. kommt der haken wieder raus, sollen diese neuen zellen wieder geleert werden. wie kann man das nun mit den kästchen umsetzen?

herzlichen Dank, Sascha

Antwort 14 von michel123

hi james :)

versteh nicht falsch ,innerhalb der checkbox ist true false fuer die checkbox abfragbar,doch in einem allgemeinen makro ist true false der checkbox nicht abfragbar

fuer deine zwecke reicht ja denk ich der makroaufruf in der checkbox,die problematik stellt sich ja nur wenn du in einem makro true false der checkbox abfragen wolltest ,dann waere eine puplic var eine möglichkeit :))

also nimm in deinem obigen makro01 nur diese beiden zeilen weg,dann geht es ja :)

If CheckBox1.Value = True Then

End If

gruss michel

Antwort 15 von JamesBrown

aber dann würde immer das makro ausgeführt werden (kopieren...einfügen), jedesmal bei klick auf kontrkästchen. aber ich möchte nur das bei true so ausgeführt wird. bei false soll der kopiert bereich wieder gelöscht werden (delete kopierte bereich). das geht doch nur, wenn ich true und false der checkbox im makro abfragen kann.... aber wie?

Antwort 16 von michel123

hi james :)

oder so ,mit 2 makros,eines fuer true eines fuer false

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
makroEINS
End If
If CheckBox1.Value = False Then
makroZWEI
End If
End Sub

Sub makroEINS()
Rows(1).Select
Selection.Copy
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tabelle1").Select
End Sub

Sub makroZWEI()
rem ...
End Sub

oder noch die publicvariante

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
makro01
End If
End Sub

Public checkAnzahl As Boolean
Sub makro01()
If checkAnzahl = True Then
Rem haken gesetzt
Cells(1, 1) = "gesetzt"
End If
If checkAnzahl = False Then
Rem haken nicht gesetzt
Cells(1, 1) = "nicht gesetzt"
End If
End Sub


gruss michel

Antwort 17 von michel123

hi james :)

ups bei der puplic variante hatt ich falsch kopiert ,korrigiert

gruss michel

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
checkAnzahl = True
End If
If CheckBox1.Value = False Then
checkAnzahl = False
End If
End Sub

Public checkAnzahl As Boolean
Sub makro01()
If checkAnzahl = True Then
Rem haken gesetzt
Cells(1, 1) = "gesetzt"
End If
If checkAnzahl = False Then
Rem haken nicht gesetzt
Cells(1, 1) = "nicht gesetzt"
End If
End Sub

Antwort 18 von JamesBrown

nunja, aber da kommt doch trotzdem wieder mein altbewährtes problem, dass wenn das makro von zeile

Private Sub CheckBox1_Click()

in

If CheckBox1.Value = True Then

geht, der vbe mir sagt: "Laufzeitfehler: Objekt erforderlich."

muß das Private eigentlich sein?

Antwort 19 von michel123

hi james

die zeile muss doch raus, aus einem normalen makro,nimm sie weg,hatte ich oben doch gesagt das es daran lag,end if net vergessen auch wegzunehmen

gruss michel

Antwort 20 von JamesBrown

hast du telefon?

Antwort 21 von michel123

hi james :)

wenn haeckchen gesetzt ist ruf makro01 auf zum kopieren zum beispiel

wenn haekchen nicht gesetzt ist kein aufruf oder 2 makro fuer ...

oder eben die puplic variante die mit einem makro dann auskommt

mit etwas uebung schaffst du das auch,obige beispiele sollten reichen

gruss michel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: