Kontrollkästchen bei Nichtbenutzung unsichtbar machen

  • #1
L

L.Faas

Guest
Hallo ihr da draußen.
Ich habe mal wieder eines dieser merkwürdigen Probleme:

Ich möchte in einem Word Dokument, in ein Formular Kontrollkästchen einbauen.
Soweit auch kein Problem.
Kann ich aber irgendeine Möglichkeit (z.B. mit einem Makro) die nicht benötigten Kontrollkästchen verschwinden lassen ?
So nach dem Motto Haken drin:Kontrollkästchen wird angezeigt,
kein Haken drin:Konttrollkästchen wird ausgeblendet.

Ich danke euch schon mal ganz heftig.

L. Faas
 
  • #2
Ok, mein Deutsch war auch schon mal besser :-\
Jetzt in einem besseren Deutsch!

Hallo ihr da draußen.
Ich habe mal wieder eines dieser merkwürdigen Probleme:

Ich möchte in einem Word Dokument, in ein Formular Kontrollkästchen einbauen.
Soweit auch kein Problem.
Aber:
Gibt es irgend eine Möglichkeit (z.B. mit einem Makro) die nicht benötigten Kontrollkästchen verschwinden lassen ?
So nach dem Motto Haken drin:Kontrollkästchen wird angezeigt,
kein Haken drin:Konttrollkästchen wird ausgeblendet.

Ich danke euch schon mal ganz heftig.

L. Faas
 
  • #3
Geile Idee! Und wie willst du bei einem ausgeblendeten Kontrollkästchen das Häkchen im Bedarfsfall wieder setzen? ::)
 
  • #4
Hallo L.Faas,

man könnte darüber nachdenken: Einer für alle - also mit einem Kontrollkästchen alle anderen sichtbar/unsichtbar machen. Wär das was ?

Gruß Matjes :)
 
  • #5
Guten Morgen Ach nee,
zur Erklärung: Die Kontrollkästchen werden immer beim Starten des Formulars aus der Vorlage mitgeladen.
Erst wenn kein Haken in ein Kästchen gemacht wird soll das betreffende Kontrollkästchen z.B. vor dem Druckvorgang unsichtbar gemacht werden.
Denn ein leeres Kontrollkästenchen sieht in einem Druck nicht besonders elegant aus.
Das die Kästchen irgendwann auch mal angezeigt werden, ist doch logisch.

Hallo Matjes,
ich will aber genau die Kästchen ansprechen, in denen kein Haken vorhanden ist.
Geht das irgendwie.

Danke
L.Faas
 
  • #6
Hallo L.Faas,

leider kann man die Kontrollkästchen nicht unsichtbar machen - nur löschen. Wenn das Löschen nicht gewünscht ist müßtest du die Vordergrund- und Hintergrundfarbe auf farblos oder weis setzen und den Schatten ausschalten.

Ich hab dir mal ein makro zusammengestellt, dass die leeren Kontrollkästchen löscht.

Gruß Matjes
Code:
Option Explicit

Sub TestLeereKontrollkaestchenUnsichtbarMachen()
 Dim doc As Document
 Dim oFeld() As InlineShape, oFeldCnt As Long, x As Long
 
->dieses Worddokument setzen, d.h. Makro muss im betreffenden dokument liegen.
 Set doc = ThisDocument
 
 Call LeereKontrollkaestchenSuchen(doc, oFeld(), oFeldCnt)
 If oFeldCnt = 0 Then
  MsgBox Keine leeren Checkboxen vorhanden.
  GoTo AUFRAEUMEN
 End If
 
 Call KontrollkaestchenLoeschen(oFeld(), oFeldCnt)
 
AUFRAEUMEN:
 Set doc = Nothing
 For x = 1 To oFeldCnt: Set oFeld(x) = Nothing: Next
End Sub
Private Function KontrollkaestchenLoeschen(oFeld() As InlineShape, oFeldCnt As Long)
'*** löscht die übergebenen Shapes (aufsteigende ShapeNummerierung vorausgesetzt)
 Dim o As InlineShape, x As Long
 If oFeldCnt > 0 Then
  For x = oFeldCnt To 1 Step -1
   Set o = oFeld(x)
  ->Messagebox kann entfernt werden :-)
   MsgBox _
    Checkbox ist leer ! & vbCrLf & _
    Name der Checkbox:  & o.OLEFormat.Object.Name & vbCrLf & _
    Aufschrift der Checkbox:  & o.OLEFormat.Object.Caption
  ->CheckBox entfernen
   o.Delete
  Next
 End If
End Function
Private Function LeereKontrollkaestchenSuchen(doc As Document, oFeld() As InlineShape, oFeldCnt As Long)
'*** gibt die Shapes der leeren Checkboxen zurück (aufsteigende ShapeNummerierung)
 
 Dim x As Long
 Dim o As InlineShape
 oFeldCnt = 0
 ReDim oFeld(1 To 10)
 
 For x = 1 To doc.InlineShapes.Count
  Set o = doc.InlineShapes(x)
  If o.Type = wdInlineShapeOLEControlObject Then   ->eingebetetes OLE-Element ?
   If o.OLEFormat.ClassType = Forms.CheckBox.1 Then->Checkbox
    If o.OLEFormat.Object.Value = False Then    ->kein Haken in der Checkbox ?
    ->Checkbox merken
     oFeldCnt = oFeldCnt + 1
    ->Merkfeld vergrössern, wenn nötig
     If UBound(oFeld()) < oFeldCnt Then ReDim Preserve oFeld(1 To oFeldCnt + 5)
     Set oFeld(oFeldCnt) = o
    End If
   End If
  End If
 Next
 
AUFRAEUMEN:
 Set o = Nothing
End Function
 
  • #7
Hallo Matjes,
vielen Dank. :1
Du hast mir sehr geholfen.
Wie immer! ;)

L.Faas
 
Thema:

Kontrollkästchen bei Nichtbenutzung unsichtbar machen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben