Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
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
Mit Checkbox ein x in eine Zelle eintragen
10.07.2017 12:19:53
Doll
Hallo alle zusammen. Ich habe eine Tabelle in der ich ein Formular zum ein und ausgeben von Daten erstellt habe. Nun möchte ich das gewisse Spalten in denen nur ein x eingetragen wird über eine Checkbox eintragen lassen und wenn in der Zelle ein x ist in der Checkbox ein Harken erscheint wenn man den entsprechenden Datensatz aufruft.
Kann mir da jemand weiterhelfen?
Die Checkbox ins Formular einfügen kann ich aber das Programmieren ist für mich das Problem.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Checkbox ein x in eine Zelle eintragen
10.07.2017 13:11:08
fcs
Hallo Doll,
hier als Beispiel der Code für ein Userform mit 3 Textboxen (Text, Zahl, Datum) und einer Checkbox.
Gruß
Franz
Option Explicit
Private ZeileDaten As Long      'Zeile mit dem zu ändernden Datensatz
Private wksData As Worksheet    'Tabellenblatt mit den Daten
Private Sub DatenEinlesen(Zeile As Long)
With wksData
Me.TextBox1 = .Cells(Zeile, 1).Text
Me.TextBox2 = .Cells(Zeile, 2).Text
Me.TextBox3 = .Cells(Zeile, 3).Text
Me.CheckBox1 = LCase(.Cells(Zeile, 4).Text) = "x"
End With
End Sub
Private Sub Daten_in_Tabelle_schreiben(Zeile As Long)
With wksData
.Cells(Zeile, 1).Value = Me.TextBox1 'bei Text
With Me.TextBox2            'bei Zahlenwerten
If .Value = "" Then
wksData.Cells(Zeile, 2).ClearContents
ElseIf IsNumeric(.Value) Then
wksData.Cells(Zeile, 2).Value = CDbl(.Value)
Else
wksData.Cells(Zeile, 2).Value = .Value
End If
End With
With Me.TextBox3            'bei Datumswerten
If .Value = "" Then
wksData.Cells(Zeile, 3).ClearContents
ElseIf IsDate(.Value) Then
wksData.Cells(Zeile, 3).Value = CDate(.Value)
Else
wksData.Cells(Zeile, 3).Value = .Value
End If
End With
If Me.CheckBox1 = True Then
.Cells(Zeile, 4).Value = "X"
Else
.Cells(Zeile, 4).ClearContents
End If
End With
End Sub
Private Sub CommandButton_Abbrechen_Click()
Unload Me
End Sub
Private Sub CommandButton_Eintragen_Click()
Call Daten_in_Tabelle_schreiben(Zeile:=ZeileDaten)
Unload Me
End Sub
Private Sub UserForm_Activate()
Set wksData = ActiveSheet
ZeileDaten = ActiveCell.Row
Call DatenEinlesen(Zeile:=ZeileDaten)
End Sub

Anzeige
AW: Mit Checkbox ein x in eine Zelle eintragen
10.07.2017 14:00:30
Doll
Hallo Franz erst mal vielen Dank für das Beispiel aber wie kann ich nun diesen Code in meinen einfügen?
Ich brauche nur den Code für eine Checkbox die dann für eine Spalte zuständig ist, so das ich ihn dann in mein Formular einfügen kann. Ich habe schon 69 Textboxen und die fuktionieren alle.
Leider bin ich in VBA nicht so gut das ich schon einen Code einfach für mich umschreiben könnte!
Leider Uff
Guß
Michael
AW: Mit Checkbox ein x in eine Zelle eintragen
10.07.2017 14:37:34
fcs
Hallo Doll,
ich kann dir kaum weiterhelfen, ja weder deine Datei kenne noch den Code wie du die Textboxen füllst bzw. die Inhalte aus dem Userform in ein Tabellenblatt zurückschreibst.
In meinem Beispiel ist für das Einlesen in die Userform-Checkbox folgende Zeile zuständig
        Me.CheckBox1 = LCase(.Cells(Zeile, 4).Text) = "x"

für das zurückschreiben in das Tabellenblatt der Block
        If Me.CheckBox1 = True Then
.Cells(Zeile, 4).Value = "X"
Else
.Cells(Zeile, 4).ClearContents
End If

Me steht als Vertreter für das Userform - Der Code muss dann im Userform-Codemodul stehen. Ansonsten musst du Me durch den Namen des Userforms ersetzen.
vor .Cells musst du das Tabellenblatt einfügen, Zeile ist die Variable für die Zeilennummer aus der eingelesen bzw. in die geschrieben wird, 4 ist entsprechend die Nummer der Spalte.
Könnte dann so aussehen:
        Me.CheckBox1 = LCase(WorkSheets("MeineTabelle").Cells(MeineZeile,_
MeineSpalte).Text) = "x"

bzw.
        If Me.CheckBox1 = True Then
WorkSheets("MeineTabelle").Cells(MeineZeile, MeineSpalte).Value = "X"
Else
WorkSheets("MeineTabelle").Cells(MeineZeile, MeineSpalte).ClearContents
End If

"MeineTabelle", MeineZeile und MeineSpalte musst du dann entssprechend ersetzen.
Statt WorkSheets("MeineTabelle") könntest du ggf. auch ActiveSheet verwenden, analog dazu, wie du es bei den Textboxen umgesetzt hast.
Gruß
Franz
Anzeige
AW: Mit Checkbox ein x in eine Zelle eintragen
11.07.2017 13:23:34
Doll
Hallo Franz
Danke ich habe es hinbekommen
Guß
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige