10.06.2016, 20:11
(Dieser Beitrag wurde zuletzt bearbeitet: 10.06.2016, 20:22 von sandormiles.)
Hallo,
ich bin jetzt dabei mein Projekt einfach nochmal aufzusetzen und hoffe, dass das ganze übersichtlicher wird. In der Anlage gleich mal meine Datei. Wenn was auffällt, was man anders machen könnte oder zwingend sollte, dann bin ich für jeden Hinweis dankbar.
Eine kurze Beschreibung will ich noch geben, wo das ganze mal hin soll. In meiner Dienststelle gibt es kein wirkliches Programme, um bestimmte Akten zu erfassen. Klingt komisch, ist aber so. Es gibt mehrere Arbeitsgruppen. In der Gruppe, wo die Akte zuerst bearbeitet wird, dort gibt es ein Programm, aber nicht für die Rechtsbehelfs-Gruppe. Das soll nun dieses Tool ändern. Es wird also im Ergebnis darum gehen, dass mit dem Tool Daten angelegt, geändert und natürlich auch gesucht werden können.
Anfangen möchte ich mit der Suchfunktion. Die Suche funktioniert soweit. Derzeit kann ich über die Eingabe in das Textfeld "Az. 6er-Block", "Name" und "Straße" mit nur noch einem Button entsprechende Datensätze suchen. Hierfür nutze ich folgenden Code:
Das er funktioniert, hab ich ja geschrieben. Lässt sich da noch was optimieren?
EDIT: Hab die Datei korrigiert. Starte nun nicht mehr direkt mit der UserForm!
ich bin jetzt dabei mein Projekt einfach nochmal aufzusetzen und hoffe, dass das ganze übersichtlicher wird. In der Anlage gleich mal meine Datei. Wenn was auffällt, was man anders machen könnte oder zwingend sollte, dann bin ich für jeden Hinweis dankbar.
Eine kurze Beschreibung will ich noch geben, wo das ganze mal hin soll. In meiner Dienststelle gibt es kein wirkliches Programme, um bestimmte Akten zu erfassen. Klingt komisch, ist aber so. Es gibt mehrere Arbeitsgruppen. In der Gruppe, wo die Akte zuerst bearbeitet wird, dort gibt es ein Programm, aber nicht für die Rechtsbehelfs-Gruppe. Das soll nun dieses Tool ändern. Es wird also im Ergebnis darum gehen, dass mit dem Tool Daten angelegt, geändert und natürlich auch gesucht werden können.
Anfangen möchte ich mit der Suchfunktion. Die Suche funktioniert soweit. Derzeit kann ich über die Eingabe in das Textfeld "Az. 6er-Block", "Name" und "Straße" mit nur noch einem Button entsprechende Datensätze suchen. Hierfür nutze ich folgenden Code:
Code:
Private Sub Suchen_Click()
On Error GoTo EERR
Dim Suche As String
Dim firstAddress
Dim i As Integer
' Datensatz suchen#####
' Wenn kein Suchbegriff, dann Messagebox#####
If TextBox2.Text = "" And TextBox3.Text = "" And TextBox48.Text = "" Then
MsgBox "Geben Sie bitte einen Suchbegriff ein!"
Exit Sub
If TextBox2.Value <> "" Then TextBox3.Locked = True
' '#####
Else
' Wenn Suchbegriff 'Az. 6er-Block'#####
If TextBox2.Value <> "" Then
Suche = TextBox2.Text
Set rngFind = Columns("B:B").Find(what:=Suche, lookat:=xlWhole, LookIn:=xlValues)
If rngFind Is Nothing Then
If MsgBox("Dieser Name existiert noch nicht!" & vbCrLf & vbCrLf & "Möchten Sie einen neuen Datensatz anlegen?", vbQuestion + vbYesNo, "Nachfragen") = vbYes Then
Unload Me
UserForm21.Show
Else:
Unload Me
UserForm2.Show
Exit Sub
End If
Else
i = 0
firstAddress = rngFind.Address
Do
ListBox1.AddItem
ListBox1.List(i, 0) = rngFind.Offset(0, -1).Value
ListBox1.List(i, 1) = rngFind
ListBox1.List(i, 2) = rngFind.Offset(0, 1).Value
ListBox1.List(i, 3) = rngFind.Offset(0, 2).Value
ListBox1.List(i, 4) = rngFind.Offset(0, 16).Value
ListBox1.List(i, 5) = rngFind.Offset(0, 17).Value
Set rngFind = Columns("B:B").FindNext(rngFind)
i = i + 1
Loop While Not rngFind Is Nothing And rngFind.Address <> firstAddress
End If
End If
If ListBox1.ListCount = 1 Then
TextBox1.Text = rngFind.Offset(0, -1).Value
TextBox2.Text = rngFind.Offset(0, 0).Value
TextBox3.Text = rngFind.Offset(0, 1).Value
TextBox4.Text = rngFind.Offset(0, 2).Value
TextBox6.Text = rngFind.Offset(0, 3).Value
ComboBox5.Text = rngFind.Offset(0, 4).Value
ComboBox2.Text = rngFind.Offset(0, 5).Value
CheckBox1 = rngFind.Offset(0, 6) = "X"
ComboBox3.Text = rngFind.Offset(0, 7).Value
TextBox10.Text = rngFind.Offset(0, 8).Value
TextBox11.Text = rngFind.Offset(0, 9).Value
TextBox12.Text = rngFind.Offset(0, 10).Value
TextBox13.Text = rngFind.Offset(0, 11).Value
ComboBox1.Text = rngFind.Offset(0, 12).Value
ComboBox4.Text = rngFind.Offset(0, 13).Value
TextBox44.Text = rngFind.Offset(0, 14).Value
TextBox16.Text = rngFind.Offset(0, 15).Value
TextBox48.Text = rngFind.Offset(0, 16).Value
TextBox49.Text = rngFind.Offset(0, 17).Value
ListBox1.Clear
End If
' '#####
' Wenn Suchbegriff 'Name / Firma'#####
If TextBox3.Value <> "" Then
Suche = TextBox3.Text
Set rngFind = Columns("C:C").Find(what:=Suche, lookat:=xlWhole, LookIn:=xlValues)
If rngFind Is Nothing Then
If MsgBox("Dieser Name existiert noch nicht!" & vbCrLf & vbCrLf & "Möchten Sie einen neuen Datensatz anlegen?", vbQuestion + vbYesNo, "Nachfragen") = vbYes Then
Unload Me
UserForm21.Show
Else:
Unload Me
UserForm2.Show
Exit Sub
End If
Else
i = 0
firstAddress = rngFind.Address
Do
ListBox1.AddItem
ListBox1.List(i, 0) = rngFind.Offset(0, -2).Value
ListBox1.List(i, 1) = rngFind.Offset(0, -1).Value
ListBox1.List(i, 2) = rngFind
ListBox1.List(i, 3) = rngFind.Offset(0, 1).Value
ListBox1.List(i, 4) = rngFind.Offset(0, 15).Value
ListBox1.List(i, 5) = rngFind.Offset(0, 16).Value
Set rngFind = Columns("C:C").FindNext(rngFind)
i = i + 1
Loop While Not rngFind Is Nothing And rngFind.Address <> firstAddress
End If
End If
If ListBox1.ListCount = 1 Then
TextBox1.Text = rngFind.Offset(0, -2).Value
TextBox2.Text = rngFind.Offset(0, -1).Value
TextBox3.Text = rngFind.Offset(0, 0).Value
TextBox4.Text = rngFind.Offset(0, 1).Value
TextBox6.Text = rngFind.Offset(0, 2).Value
ComboBox5.Text = rngFind.Offset(0, 3).Value
ComboBox2.Text = rngFind.Offset(0, 4).Value
CheckBox1 = rngFind.Offset(0, 5) = "X"
ComboBox3.Text = rngFind.Offset(0, 6).Value
TextBox10.Text = rngFind.Offset(0, 7).Value
TextBox11.Text = rngFind.Offset(0, 8).Value
TextBox12.Text = rngFind.Offset(0, 9).Value
TextBox13.Text = rngFind.Offset(0, 10).Value
ComboBox1.Text = rngFind.Offset(0, 11).Value
ComboBox4.Text = rngFind.Offset(0, 12).Value
TextBox44.Text = rngFind.Offset(0, 13).Value
TextBox16.Text = rngFind.Offset(0, 14).Value
TextBox48.Text = rngFind.Offset(0, 15).Value
TextBox49.Text = rngFind.Offset(0, 16).Value
ListBox1.Clear
End If
'#####
' Wenn Suchbegriff 'Straße'#####
If TextBox48.Value <> "" Then
Suche = TextBox48.Text
Set rngFind = Columns("R:R").Find(what:=Suche, lookat:=xlWhole, LookIn:=xlValues)
If rngFind Is Nothing Then
If MsgBox("Dieser Name existiert noch nicht!" & vbCrLf & vbCrLf & "Möchten Sie einen neuen Datensatz anlegen?", vbQuestion + vbYesNo, "Nachfragen") = vbYes Then
Unload Me
UserForm21.Show
Else:
Unload Me
UserForm2.Show
Exit Sub
End If
Else
i = 0
firstAddress = rngFind.Address
Do
ListBox1.AddItem
ListBox1.List(i, 0) = rngFind.Offset(0, -17).Value
ListBox1.List(i, 1) = rngFind.Offset(0, -16).Value
ListBox1.List(i, 2) = rngFind.Offset(0, -15).Value
ListBox1.List(i, 3) = rngFind.Offset(0, -15).Value
ListBox1.List(i, 4) = rngFind
ListBox1.List(i, 5) = rngFind.Offset(0, 1).Value
Set rngFind = Columns("R:R").FindNext(rngFind)
i = i + 1
Loop While Not rngFind Is Nothing And rngFind.Address <> firstAddress
End If
End If
If ListBox1.ListCount = 1 Then
TextBox1.Text = rngFind.Offset(0, -17).Value
TextBox2.Text = rngFind.Offset(0, -16).Value
TextBox3.Text = rngFind.Offset(0, -15).Value
TextBox4.Text = rngFind.Offset(0, -14).Value
TextBox6.Text = rngFind.Offset(0, -13).Value
ComboBox5.Text = rngFind.Offset(0, -12).Value
ComboBox2.Text = rngFind.Offset(0, -11).Value
CheckBox1 = rngFind.Offset(0, -10) = "X"
ComboBox3.Text = rngFind.Offset(0, -9).Value
TextBox10.Text = rngFind.Offset(0, -8).Value
TextBox11.Text = rngFind.Offset(0, -7).Value
TextBox12.Text = rngFind.Offset(0, -6).Value
TextBox13.Text = rngFind.Offset(0, -5).Value
ComboBox1.Text = rngFind.Offset(0, -4).Value
ComboBox4.Text = rngFind.Offset(0, -3).Value
TextBox44.Text = rngFind.Offset(0, -2).Value
TextBox16.Text = rngFind.Offset(0, -1).Value
TextBox48.Text = rngFind.Offset(0, 0).Value
TextBox49.Text = rngFind.Offset(0, 1).Value
ListBox1.Clear
End If
End If
Exit Sub
EERR:
End Sub
Das er funktioniert, hab ich ja geschrieben. Lässt sich da noch was optimieren?
EDIT: Hab die Datei korrigiert. Starte nun nicht mehr direkt mit der UserForm!