PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem: Ausfüllblatt/Formular/Bogen



Balu
10.09.2010, 09:24
Hi zusammen

Ich sollte in Formular mit folgenden Eigenschaften erstellen. Habt ihr irgendwelche Ideen, wie das in Excel am besten geht?

Formularform in Excel
- In Bereiche Eingeteilt
- Weitere Zeilen werden eingefügt, soferen die „letzte“ Zeile im Bereich angekreuzt wird
- Kreuzel, Name, Nummer Spalte
- Übertrag auf neue Tabelle
- Zeile soll wieder verschwinden, wenn Kreuz weggenommen wird (dynamisch/vor und rück)

Gibt es so ein Sondertool im Excel um solche Formulare zu erstellen oder muss das alleine mit Makros gelöst werden.

Wenn dies eurer Meinung nach nur mit einem Makro geschehen soll, wie kann ich dann Zeilen und Kontrollkästchehn durch Makro einfügen/einbleden und ebenfalls wieder ausblednen, sofern das Kreuzchen weggenommen wird?

ch habe ein sogenanntes Formular erstellt. Dies sieht folgendermassen aus: In Einer Userform sind auf einer Zeile ein Kontrollkästchen und 2 Textkasten. Die ersten drei Zeilen sind gegeben.
Wenn ich nun das Kontrollkästchen anclicke, erscheint eine neue Zeile welche genau wie die oberen aussehen. Soweit ist dies ja gut.
Hier das Makro dazu:



__________________________________________________ ______
Klassenmodul:

Option Explicit

Public WithEvents objCB As MSForms.CheckBox
Public WithEvents objTB As MSForms.TextBox

Private Sub objCB_Change()
Dim CB
If objCB = True Then
MsgBox objCB.Name
Call addcontrols
__________________________________________________ _______



__________________________________________________ _______
Modul 1 zur Userform:

Option Explicit

Dim myClass() As cls_EVENT

Public A As Integer
Public I As Integer
Public UF_Height As Long
Public dieErsten(1 To 3) As MSForms.Control 'CheckBox1, TextBox1, TextBox2


Public Sub machs()
Dim CT As MSForms.Control
Set CT = Nothing
Erase myClass()
I = 0
With UserForm1
Set dieErsten(1) = .CheckBox1
Set dieErsten(2) = .TextBox1
Set dieErsten(3) = .TextBox2
For Each CT In .Controls
If TypeOf CT Is MSForms.CheckBox Then
I = I + 1
ReDim Preserve myClass(1 To I)
Set myClass(I) = New cls_EVENT
Set myClass(I).objCB = CT
End If
Next
End With
End Sub

Public Sub addcontrols()
Dim ctTmp As MSForms.Control
With UserForm1
I = I + 1
Set ctTmp = .Controls.Add("Forms.CheckBox.1", "CB" & I, True)
With ctTmp
.Width = dieErsten(1).Width
.Left = dieErsten(1).Left
.Height = dieErsten(1).Height
.Top = (I - 1) * 30 + 18
ReDim Preserve myClass(1 To I)
Set myClass(I) = New cls_EVENT
Set myClass(I).objCB = ctTmp
End With
A = A + 1
Set ctTmp = .Controls.Add("Forms.TextBox.1", "TB" & A, True)
With ctTmp
.Width = dieErsten(2).Width
.Left = dieErsten(2).Left
.Height = dieErsten(2).Height
.Top = (I - 1) * 30 + 18
End With
A = A + 1
Set ctTmp = .Controls.Add("Forms.TextBox.1", "TB" & A, True)
With ctTmp
.Width = dieErsten(3).Width
.Left = dieErsten(3).Left
.Height = dieErsten(3).Height
.Top = (I - 1) * 30 + 18
End With
.Height = Application.Max((I - 1) * 30 + 60, UF_Height)
End With
End Sub

End If
End Sub

__________________________________________________ _______


Ich habe nun das Problem, dass ich, wenn ich im Formular die ersten zwei Häcklein anklicke noch keine neue Zeile eingefügt haben möchte. Erst beim Dritten Feld möchte ich, dass es mir die 4te Zeile infügt.
Kann mir da jemand helfen.

Zudem müsste ich dann auch noch die Textfelder (auch die die neu eingefügt werden) mit bestimmten Zeilen in meinem Excelsheet verknüpfen.

Ich hoffe dies alles ist irgendwie möglich. Ich weiss, das ich mir da eine ziemlich grosse Aufgabe aufgebrummt habe.


Gerne würde ich mein gesamte Excel-Datei Posten, was sehr viel verständlicher wäre. Wenn also jemand denkt mir helfen zu können, kann ich das Excelsheet gerne auch per e-mail senden.



Vielen Dank schon im Voraus.

Liebe Grüsse aus der Schweiz