vielen Dank schon einmal vorab für eure große Mühen, welche ihr für uns auf euch nehmt.
Ich bin ein Anfänger in VBA und versuche gerade für meine Kollegen eine kleine Datenbank aufzubauen, welche hoffentlich dazu beitragen kann, dass die Herren etwas strukturierter Arbeiten können. Dazu habe ich bereits 2 Userformen eingerichtet, welche gut laufen.
1. Frage: Eine Userform (SuchenPlan) enthält 2 OptionButton. Vorab wird mit einer Vorgangsnummer Daten abgespeichert. Im zweiten Schritt wird mit der Vorgangsnummer gesucht und die Daten eingelesen. Jetzt kommen die OptionButton ins Spiel. Wenn der erste Button "Vollständig" angeklickt wird, soll dieses Ergebnis in Spalte 19 mit "Ja" gespeichert werden. Was ich leider nicht hinbekomme. Der zweite Button "Unvollständig" macht die nächsten Textboxen sichtbar. Das funktioniert auch gut, jedoch möchte ich auch das Ergebnis des Buttons in Zeile 19 abspeichern.
OptionButton_Vollständig True - "Ja"
OptionButton_Unvollständig True - "Nein"
Hintergrund ist, dass wenn derselbe Auftrag wieder gesucht wird und vorher "Unvollständig" angeklickt worden ist, dass die Daten dahinter momentan nicht sichtbar sind.
Mein Code hierfür sieht wie folgt aus:
Private Sub Button_Eingabe_Click()
'Hier müsste ich das Ereignis der OptionButton abspeichern. OptionButton_Vollständig True Then _
WkSh.Cells(r.Zelle.Row,19) "Ja"... OptionButton_Unvollständig True Then "Nein"
'Daten in das Tabellenblatt spielen
Dim WkSh As Worksheet
Dim rZelle As Range
Set WkSh = ThisWorkbook.Worksheets("Planänderungen")
If TextBox_Auftrag.Value "" Then
With WkSh.Columns(1)
Set rZelle = .Find(TextBox_Auftrag.Value, LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
WkSh.Cells(rZelle.Row, 14).Value = TextBox_Datum.Value
WkSh.Cells(rZelle.Row, 17).Value = TextBox_Bemerkungen2.Value
WkSh.Cells(rZelle.Row, 23).Value = TextBox_DatumFrist.Value
WkSh.Cells(rZelle.Row, 30).Value = TextBox_Enddatum.Value
WkSh.Cells(rZelle.Row, 21).Value = TextBox_Fehlpläne.Value
WkSh.Cells(rZelle.Row, 24).Value = TextBox_FristZeitraum.Value
WkSh.Cells(rZelle.Row, 31).Value = TextBox_Fristtext.Value
WkSh.Cells(rZelle.Row, 32).Value = TextBox_AnzahlFehlpläne.Value
Else
MsgBox "Der gesuchte Begriff """ & TextBox_Auftrag.Value & _
""" wurde nicht gefunden.", _
48, " Hinweis für " & Application.UserName
TextBox_Auftrag.SetFocus
End If
End With
End If
Unload Me
'Zum Tabellenblatt Formular Dateneingabe wechseln
Sheets("Dateneingabe").Activate
End Sub
Für die Suche habe ich folgenden Code verwendet:Private Sub Button_Suchen_Click()
Dim WkSh As Worksheet
Dim rZelle As Range
'Soll die Daten mit der Vorgangsnummer suchen und dann in die entsprechenden Textboxen eingeben
'Hier müsste ich das "Ereignis" der OptionButton suchen. Ich wollte in die Tabelle Planänderung _
Spalte 19 ein JA, wenn das Ergebnis des OptionButton_Vollständig True ist _
Wenn der OptionButton_Unvollständig angeklickt wird, soll ein Nein als Ergebnis gespeichert _
werden. Bei einer neuen Suche mit derselben Vorgangsnummer soll für JA der OptionButton_Vollständig angeklickt sein. _
Sollte das Ergbnis Nein sein, dann soll der OptionButton_Unvollständig angeklickt sein.
Set WkSh = ThisWorkbook.Worksheets("Planänderungen")
If TextBox_Auftrag.Value "" Then
With WkSh.Columns(1)
Set rZelle = .Find(TextBox_Auftrag.Value, LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
TextBox_Firma.Value = WkSh.Cells(rZelle.Row, 4).Value 'Gibt den Wert aus der _
Tabelle Spalte 4 Firma zurück
TextBox_Leitung.Value = WkSh.Cells(rZelle.Row, 5).Value
TextBox_Plannummern.Value = WkSh.Cells(rZelle.Row, 10).Value
TextBox_Status.Value = WkSh.Cells(rZelle.Row, 13).Value
TextBox_Bearbeiter.Value = WkSh.Cells(rZelle.Row, 18).Value
TextBox_Bemerkungen.Value = WkSh.Cells(rZelle.Row, 16).Value
TextBox_Extern.Value = WkSh.Cells(rZelle.Row, 9).Value
TextBox_Kategorie1.Value = WkSh.Cells(rZelle.Row, 6).Value
TextBox_Kategorie2.Value = WkSh.Cells(rZelle.Row, 7).Value
TextBox_Kategorie3.Value = WkSh.Cells(rZelle.Row, 8).Value
TextBox_Gesamt.Value = WkSh.Cells(rZelle.Row, 20).Value
TextBox_StatusFrist.Value = WkSh.Cells(rZelle.Row, 27).Value
TextBox_AnzahlFehlpläne.Value = WkSh.Cells(rZelle.Row, 32).Value
TextBox_Fehlpläne.Value = WkSh.Cells(rZelle.Row, 21).Value
TextBox_Fristtext.Value = WkSh.Cells(rZelle.Row, 31).Value
TextBox_FristZeitraum.Value = WkSh.Cells(rZelle.Row, 24).Value
TextBox_Enddatum.Value = WkSh.Cells(rZelle.Row, 30).Value
Else
MsgBox "Der gesuchte Begriff """ & TextBox_Auftrag.Value & _
""" wurde nicht gefunden.", _
48, " Hinweis für " & Application.UserName
TextBox_Auftrag.SetFocus
End If
End With
Else
MsgBox "Sie müssen einen Suchbegriff eingeben - danke." & _
48, " Hinweis für " & Application.UserName
TextBox_Auftrag.SetFocus
End If
End Sub
2. ProblemEs soll die Möglichkeit geben, über Datenschnitte die Daten zu filtern (Tabellenblatt "Status Abfrage") und diese durch Drill Down entweder in ein vorhandenes Tabellenblatt "Status" oder wenn möglich in eine neue Datei zu kopieren. Hintergrund ist, dass diese an andere Firmen verschickt werden und diese die Möglichkeit haben sollen, sich über die verschiedenen Status einen Überblick zu verschaffen.
Zuvor hatte ich das über ein Makro mit Finden und ganze Zelle kopieren getestet, jedoch sind die Ladezeiten einfach viel zu lang. Ich habe schon einiges ausprobiert, jedoch ist mir bisher nicht einmal der Ansatz einer Lösung gelungen.
Ich freue mich auf eure Lösungen und wünsche euch einen schönen Abend.
Viele Grüße Madi