Anzeige
Archiv - Navigation
1628to1632
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
Inhaltsverzeichnis

OLEObjekt

OLEObjekt
19.06.2018 13:54:03
Siegfried
Hallo zusammen.
ich habe in einem TabellenBlatt 3 Kontrollkästchen,
diese möchte ich beim Öffnen der Datei auf FALSCH setzen.
In der Hilfe finde ich den folgenden Code, der bei mir aber nicht funktioniert.
Wie muss ich es richtig anstellen?
Private Sub Workbook_Open()
Dim OLEObjects As Variant
Dim oOle As OLEObject
Worksheets(1).Activate
For Each oOle In ActiveSheet.OLEObjects
If TypeName(oOle.Object) = "CheckBox" Then
Debug.Print oOle.Name & ": " & oOle.Object.Value
End If
Next oOle
End Sub

Gruß
Siegfried

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Für Kontrollkästchen aus...
19.06.2018 14:02:50
Case
Hallo, :-)
... Formular so: ;-)
Option Explicit
Private Sub Workbook_Open()
Dim shpBox As Shape
With ThisWorkbook.Worksheets(1)
For Each shpBox In .Shapes
With shpBox
If .FormControlType = xlCheckBox Then
.ControlFormat.Value = xlOff
End If
End With
Next shpBox
End With
End Sub
Servus
Case

Und für CheckBoxen...
19.06.2018 14:07:45
Case
Hallo, :-)
... aus ActiveX folgendes unter "DieseArbeitsmappe" - bezogen auf das erste Tabellenblatt: ;-)
Option Explicit
Private Sub Workbook_Open()
Dim OLEObjects As Variant
Dim oOle As OLEObject
With ThisWorkbook.Worksheets(1)
For Each oOle In ActiveSheet.OLEObjects
If TypeName(oOle.Object) = "CheckBox" Then
oOle.Object.Value = False
End If
Next oOle
End With
End Sub
Servus
Case

Anzeige
AW: Und für CheckBoxen...
19.06.2018 14:29:56
Siegfried
Hi Case,
Danke für Deine Antwort, aber
Dein Code für Kontrollkästchen meckert mich an
und Dein Code für CheckBox funktioniert bei mir nicht.
Gruß
Siegfried
AW: Für Kontrollkästchen aus...
19.06.2018 14:47:49
Siegfried
Hi Case,
für den Fall, dass Dich das interessiert.
Ich habe jetzt eine Lösung, bei der ich
die entsprechenden Verknüpfungszellen auswähle
und darin den Value-Wert auf FALSE setze.
Private Sub Workbook_Open()
Worksheets(1).Activate
Range("Kontr.Zelle1").Select
ActiveCell.FormulaR1C1 = "FALSE"
Range("Kontr.Zelle2").Select
ActiveCell.FormulaR1C1 = "FALSE"
Range("Kontr.Zelle3").Select
ActiveCell.FormulaR1C1 = "FALSE"
End Sub
Gruß
Siegfried
Anzeige
AW: Für Kontrollkästchen aus...
19.06.2018 14:52:39
Nepumuk
Hallo Siegfried,
das geht auch einfacher:
Private Sub Workbook_Open()
    With Worksheets(1)
        .Range("Kontr.Zelle1").Value = False
        .Range("Kontr.Zelle2").Value = False
        .Range("Kontr.Zelle3").Value = False
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: OLEObjekt
19.06.2018 14:06:39
Nepumuk
Hallo Siegfried,
teste mal:
Private Sub Workbook_Open()
    Dim objOLEObject As OLEObject
    For Each objOLEObject In Tabelle1.OLEObjects
        If TypeOf objOLEObject.Object Is MSForms.CheckBox Then objOLEObject.Object.Value = False
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: OLEObjekt
19.06.2018 14:31:55
Siegfried
Hi Nepumuk,
auch Dir Danke für die Antwort, aber
auch Dein Code funktioniert bei mir nicht.
Gruß
Siegfried
AW: OLEObjekt
19.06.2018 14:43:33
Nepumuk
Hallo Siegfried,
dann wirst du wohl oder Übel eine Mustermappe hochladen müssen. Die enthaltenen Daten kannst du alle löschen, mich interessieren nur die Checkboxen.
Gruß
Nepumuk
AW: OLEObjekt
19.06.2018 14:52:14
Siegfried
Hi Nepumuk,
ich löse mein Ansinnen jetzt wie folgt:
Private Sub Workbook_Open()
Worksheets(1).Activate
Range("Kontr.Zelle1").Select
ActiveCell.FormulaR1C1 = "FALSE"
Range("Kontr.Zelle2").Select
ActiveCell.FormulaR1C1 = "FALSE"
Range("Kontr.Zelle3").Select
ActiveCell.FormulaR1C1 = "FALSE"
End Sub

Gruß
Siegfried
Anzeige
AW: OLEObjekt
19.06.2018 21:10:40
Luschi
Hallo Siegfried,
warum diese Eigensinnigkeiten, Nepumuk hatte Dir doch schon gezeigt, wie es geht:

Private Sub Workbook_Open()
With Worksheets(1)
.Range("Kontr.Zelle1").Value = False
.Range("Kontr.Zelle2").Value = False
.Range("Kontr.Zelle3").Value = False
End With
End Sub

Einfach 'Worksheets(1)' austauschen gegen die gewünschte Tabelle 'Worksheets("meine Spezialtabelle")' und alles ist in Butter.
Die Selektiererei bringt aber auch Seiteneffekte, wenn in dieser Tabelle das Worksheet_SelectionChange()-Ereignis definiert ist.
Und diese Zeile: ActiveCell.FormulaR1C1 = "FALSE" zwingt den Interpreter zur Laufzeit zu einer Aktion, die man in VB.Net/C#/Java 'automatisches Casting' nennt - hier: Umrechnung eines Strings in einen Wahrheitswert; und solche versteckten Aktionen kosten nun mal Rechenzeit und sind unnötig - besonders dann, wenn sie in Schleifen eingebunden sind (deshalb Fingerweg davon).
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige