Registriert seit: 09.12.2014
Version(en): 2013
Hallo zusammen,
ich habe eine Urlaubsdateidatei wo ich über eine Userform Daten eingeben möchte. Die Daten sollen in das Tabellenblatt Mitarbeiter geschrieben werden.
(Spalte B (ab Zeile 8)=Name, Spalte C=Team, Spate D=Resturlaub und Spalte E aktueller Urlaub)
Diese Eintrage solle wenn möglich alphabetisch in die Spalte B eingetragen werden.
Nun möchte ich diese Einträge falls der Mitarbeiter nicht mehr im Unternehmen ist auch wieder löschen können. Wenn möglich auf allen Tabellenblättern Mitarbeiter, Januar....Dezember.
Könnt ihr mir hier eventuell helfen?
Danke und VG Mario
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mario,
könntest Du die Datei hier hochladen?
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• Mario
Registriert seit: 09.12.2014
Version(en): 2013
Hallo Stefan,
gerne, aber wie mache ich das hier?
VG Mario
Registriert seit: 11.04.2014
Version(en): Office 2007
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• Mario
Registriert seit: 09.12.2014
Version(en): 2013
Hallo Stefan,
musste erst einmal diverses löschen, da die Datei zu groß war :26:
VG Mario
Registriert seit: 09.12.2014
Version(en): 2013
18.12.2014, 23:29
(Dieser Beitrag wurde zuletzt bearbeitet: 19.12.2014, 13:19 von Rabe.)
Hallo zusammen,
mein Code sieht bis jetzt so aus:
Code: Option Explicit
Dim Bol As Boolean
Private Sub ComboBox1_Click()
If ComboBox1.ListIndex <> 0 Then
TextBox1 = Cells(ComboBox1.ListIndex + 2, 2)
TextBox2 = Cells(ComboBox1.ListIndex + 2, 3)
TextBox3 = Cells(ComboBox1.ListIndex + 2, 4)
TextBox4 = Cells(ComboBox1.ListIndex + 2, 5)
Else
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
End If
End Sub
Private Sub CommandButton1_Click()
Dim arr As Variant
Dim zeile As Long
Dim letzte As Long
If ComboBox1.ListIndex > 0 Then
zeile = ComboBox1.ListIndex + 2
letzte = Cells(Rows.Count, 2).End(xlUp).Row
arr = Range("B" & zeile + 1 & ":E" & letzte)
Range("B" & zeile & ":E" & letzte).ClearContents
Range("B" & zeile & ":E" & letzte - 1) = arr
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
UserForm_Initialize
End If
End Sub
Private Sub CommandButton2_Click()
Dim xZeile As Long
If TextBox1 = "" Then Exit Sub
If ComboBox1.ListIndex = 0 Then
xZeile = [B65536].End(xlUp).Row + 2
Else
xZeile = ComboBox1.ListIndex + 2
End If
Cells(xZeile, 2) = TextBox1
Cells(xZeile, 3) = TextBox2
Cells(xZeile, 4) = TextBox3
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
ActiveSheet.Unprotect Password:="9010ml"
ActiveSheet.Range("B3:E200").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveSheet.Protect Password:="9010ml"
Range("A1").Select
UserForm_Initialize
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
'Datum und Uhrzeit anzeigen
Label9.Caption = Date
Bol = True
Do Until Bol = False
DoEvents
Label10.Caption = Time
Loop
End Sub
Private Sub UserForm_Initialize()
Dim aRow, i As Long
Application.EnableEvents = False
ComboBox1.Clear
aRow = [B65536].End(xlUp).Row
ComboBox1.AddItem "Person hinzufügen, ändern oder entfernen!"
For i = 3 To aRow
ComboBox1.AddItem Cells(i, 2) & ", " & Cells(i, 3) & ", " & Cells(i, 4) & ", " & Cells(i, 5)
Next i
ComboBox1.ListIndex = 0
Application.EnableEvents = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Bol = False
End Sub
]
Leider bekomme ich in der folgenden Zeile immer eine Fehlermeldung.
ActiveSheet.Range("B3:E200").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Eventuell könnt ihr mir ja helfen.
Vielen Dank und Gruß Mario
Code Tags korrigiert (Du solltest nicht an den Code-Tags rumspielen)
[Bild: smilie.php?smile_ID=1810]
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
19.12.2014, 00:38
(Dieser Beitrag wurde zuletzt bearbeitet: 19.12.2014, 01:01 von Käpt'n Blaubär.)
[ctiveSheet.Range("B3:E200").Sheet.Range("B3:E200").
Leider bekomme ich in der folgenden Zeile immer eine Fehlermeldung.
Ich habe zunächst nach Syntaxfehlern geschaut.Der hier strahlte mich geradezu an
[ctiveSheet ... versuche es mal mit ActiveSheet
und Option Explicit hast Du meiner Meinung nach auch vergewaltigt:. . . . . . . . . [ /Option Explicit
Und wenn das schon so ist, dann gibt es sehr wahrscheinlich auch noch jede Menge andere Aufhänger
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
Grüße aus Norderstedt, Peter
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
ich gehe davon aus, dass die von Peter beschriebenen Dinge beim hinein kopieren hier ins Forum passiert sind.
Ich erkenne an der Stelle keinen Fehler, der Code müsste funktionieren.
Welcher Fehler wird denn angezeigt, was steht in der Fehlermeldung?
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• Mario
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo Mario, (17.12.2014, 17:02)Mario schrieb: ...diverses löschen, da die Datei zu groß war... das war nicht nötig
An der richtigen Stelle angepackt, siehe Screenshot
photo Marios_Urlaubsplan_zps125eaa5b.jpg
- einfach nur die Zeilen/Spaltenausblenden-Sache in den Normalmodus bringen
Registriert seit: 09.12.2014
Version(en): 2013
Hallo Attila,
sorry, dass ich mich jetzt erst melde. Hatte gestern Weihnachtsfeier :30:.
Ich habe die Datei nochmal hochgeladen. Auf dem Blatt Mitarbeiter ist der Button "neu MA" hier öffnet sich die UF. hier kann ich schon neue Mitarbeiter anlegen und sie werde automatisch sortiert. Aber leider funktioniert das löschen noch nicht. Und ich habe es noch nicht hinbekommen, dass die MA auf allen Blättern angelegt werden.
Eventuell hast du ja eine Idee.
VG Mario
|