Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

suchen Dateneingabe und löschen über Userform
#11
Sorry der Button ist auf dem Tabellenblatt Mitarbeiter (Butten 18)
Antworten Top
#12
Hallo Mario,

es ging doch anfänglich um einen Fehler der an der von Dir im beschriebenen Stelle auftauchen sollte.

Ich habe geschrieben, dass es nicht am Code liegen kann.
Und so wie ich es sehe, hast Du selber festgestellt, wo der Fehler lag und es eliminiert.
Es lag wohl daran, dass Du einen Bereich zum Sortieren genommen hast, in dem Verbundene Zellen sind.

Das mit dem Löschen ist jetzt eine ganz neue Frage.
Wann soll gelöscht werden, müssen bestimmte Dinge beachtet werden, müssen danach Berechnung geführt werden, kann ohne Vorwarnung gelöscht werden etc..?

Im Grunde wäre das wieder ein neues Thema.

Was mir noch aufgefallen ist, Du schreibst beim Betätigen des Schalters "Übernehmen" in die falschen Zeilen (6 Zeilen zu hoch).

Diese Zele im Code: xZeile = ComboBox1.ListIndex + 1 müsste so lauten: xZeile = ComboBox1.ListIndex + 7
Außerdem, was soll den Da übernommen werden. Man kann doch nur das Auswählen, was schon in der Tabelle steht. Und wenn der Code richtig arbeitet, dann wieder alles nur zurückschreiben.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Mario
Antworten Top
#13
Hallo Attila,

ja den Fehler hatte ich schon gefunden.
die Combobox liegt in der UF. Hier kann man über TextBoxen Name usw. eingeben und diese werden dann in die Tabellenblätter geschrieben (neuer Mitarbeiter wird angelegt).
Wenn der Mitarbeiter aber Kündigt, will ich ihn auch wieder aus der Datei löschen können. Und zwar auf dem Tabellenblatt Mitarbeiter und in den Monaten.
Eine Vorwarnung sollte natürlich erfolgen. Danach sollen die Tabellenblätter wieder nach Namen alphabetisch sortiert werden (im Bereich B8:AP200.

Das ist jedenfalls meine Vorstellung.
Antworten Top
#14
Hallo Mario,

wenn Du aus der Combobox1 einen Namen auswählst und auf "übernehmen" klickst, dann werden die Angaben in die falsche Zeile zurückgeschrieben.
Beispielsweise bei Auswahl des ersten Namen werden die Angaben für diesen in Zeile 2 geschrieben.
ComboBox1.ListIndex + 1 ist deswegen falsch.

Das Löschen ginge nach diesem Muster:

Code:
If MsgBox("Möchten sie den Mitarbeiter wirklich aus der Liste löschen?", vbYesNo, "Frage?") = vbYes Then
   Rows(ComboBox1.ListIndex + 7).Delete
End If
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Mario
Antworten Top
#15
Hallo Attilla,

das klappt wirklich super :19:.

Vielen Dank!

Hast du noch eine Idee wie ich alle Tabellenblätter (1-13) alphabetisch sortieren kann.
Momentan sortiert ich nur das aktuelle Tabellenblatt mit folgenden Code

[ActiveSheet.Range("B8:AP200").Sort Key1:=Range("B8"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B8").Select]

Dann ist die Spaltenzuordnung auf den anderen Blättern (Monaten) aber durcheinander, da dann der Urlaub nach einfügen eines neuen Mitarbeiters durcheinander gerät.

VG Mario
Antworten Top
#16
Hallo Mario,

sortier nur die Spalten B und C, dann bau die Formeln in den Monatsspalten so nach:

Arbeitsblatt mit dem Namen 'Mitarbeiter'
 IJ
6JanuarFebruar
7
8  

ZelleFormel
I8=INDEX(Januar!AN9:AN100;VERGLEICH(B8;März!B9:B100;0))
J8=INDEX(Februar!AN9:AN100;VERGLEICH(B8;März!B9:B100;0))
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Mario
Antworten Top
#17
Hallo Attila,

vielen Dank für deine wiederholte schnelle Hilfe :28:.

Aber hier ist es wirklich wichtig, dass die gesamten Zeilen neu sortiert werden. Der der Urlaub auf den einzelnen Tabellenblättern mit u eingetragen wird. Diese stehen nach dem einfügen und sortieren dann aber bei den falschen Mitarbeitern.

VG Mario
Antworten Top
#18
Hallo Mario,

Zitat:Aber hier ist es wirklich wichtig, dass die gesamten Zeilen neu sortiert werden.

nein, die Formel holt sich das aus den richtigen Zellen, anders geht es nicht wenn Formeln in den Monatsspalten stehen.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Mario
Antworten Top
#19
Hallo Mario,

sorry,
ich sehe gerade, dass Du in den Monatsblättern auch Zellverknüpfung zur Mitarbeiter Tabelle hast.

Das passt mein letzter Vorschlag natürlich nicht.

Eine Lösung habe ich leider auch nicht.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Mario
Antworten Top
#20
Hallo zusammen,

ich hätte zwar einen Ansatz wie man die Verknüpfungen entfernen und als Werte
zurück schreiben könnte, allerdings fehlt mir gerade die Inspiration wie man vorher
oder anschließend die entsprechende Formeln wieder zurück schreibt.

Code:
Sub VerknüpfungenAusAllenBlätternEntfernen()
Dim Blatt As Worksheet
Dim Zelle As Range

For Each Blatt In ActiveWorkbook.Sheets
    For Each Zelle In ActiveSheet.UsedRange
        If InStr(Zelle.Formula, "!") > 0 Then Zelle.Value = Zelle.Value
    Next Zelle
Next Blatt

End Sub

To be discussed...

Gruß
Max
[-] Folgende(r) 1 Nutzer sagt Danke an Max für diesen Beitrag:
  • Mario
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste