obwohl ich kaum Kenntnisse in VBA besitze, habe ich mich da an einen großen Brocken gewagt (unter anderem aus Zeitgründen). Sonst hätte ich den Lernprozess von den Basics aus gestartet, wie es sich gehört.
Bereits vorhanden:
Ich habe mir ein Programm erstellt, dass ein per Einlagern-Button ein UserForm aufruft, in dessen Felder ich Eingaben über eine Ware mache. Durch klick auf ein Übernehmen-Feld werden alle Eingaben in die nächstfreie Zeile in Excel geschrieben (inklusive Einlagerungsdatum).
Jetzt würde ich gerne zusätzlich in der letzten beschriebenen Zeile und deren letzten Spalte ein CommandButton für ein späteres Auslagern der Ware, erscheinen lassen.
noch zu programmieren:
Jetzt habe ich nach ewigem Herumprobieren geschafft, dass zumindest ein Button platziert wird, allerdings kommt an der Stelle "Set myBtn = ActiveSheet.Buttons.Add(Cells(intLetzteVolleZeile.......) immer wieder der Fehler: "Laufzeitfehler 13 Typen unverträglich" und ich habe absolut keine Ahnung weshalb. Vielleicht kann mir da jemand helfen? (siehe Skript unten)
Als weiterer Schritt ist angedacht, dass bei dem Click auf diesen Button sich ein UserForm öffnet, über welches man 1 Passwort und ein Datum eingeben muss.
Nach Eingabe des Passwortes und der Bestätigung des aktuellen Datums, soll sich das UserForm wieder schließen, das Auslagerungsdatum in die gleiche Excelzeile in eine neue Spalte übernommen werden und die komplette Zeile in der sich der Auslagern-Button befand, soll farblich hinterlegt sein. Optimaler wäre es noch, dass der angeklickte Auslagern-Button dieser Zeile wieder verschwindet (nicht mehr verwendbar ist).
Wie ich das umsetzen will? Weiss ich noch nicht, da werde ich mir wohl noch öfter den Kopf drüber zerbrechen müssen (habe schonmal ein Buch über VBA bestellt).
Hier das Script zu der ganzen Sache, ich hoffe Ihr könnt damit etwas anfangen:
Private Sub cmdEingabe_Click()
Dim intErsteLeereZeile As Long
With ActiveSheet
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(intErsteLeereZeile, 1).Value = Me.txtLagerplatz.Value
.Cells(intErsteLeereZeile, 2).Value = CDate(Me.txtDatum.Value)
.Cells(intErsteLeereZeile, 3).Value = Me.txtAuftragsNr.Value
.Cells(intErsteLeereZeile, 4).Value = Me.txtRezepturNr.Text
.Cells(intErsteLeereZeile, 5).Value = Me.txtalteMaterialNr.Value
.Cells(intErsteLeereZeile, 6).Value = Me.txtneueMaterialNr.Value
End With
Dim myBtn As CommandButton
Dim intLetzteVolleZeile As Long
intLetzteVolleZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set myBtn = ActiveSheet.Buttons.Add(Cells(intLetzteVolleZeile, 7).Left, Cells( _
intLetzteVolleZeile, 7).Top, Cells(intLetzteVolleZeile, 7).Width, Cells(intLetzteVolleZeile, 7).Height)
With myBtn
.Name = "cmdAuslagern"
.Caption = "Auslagern"
.OnAction = "ProgrammAuslagerung"
End With
Unload frmDatenabfrage
End Sub
p.s. sorry für soviel Text ;)