ich komme seit Tagen einfach nicht mehr weiter. Habe das Forum nach einer Lösung schon mehrmals durchforstet aber komme mit den Lösungsansätzen einfach nicht weiter.
Folgendes Problem:
Ich habe eine UserForm (frm_Ressourcenliste) dort enthalten sind mehrere TextBoxen, ComboBoxen, CheckBoxen, Label, ListBox
Ich lese über einen CommandButton abhängig von Auswahl einer ComboBox in die ListBox dementsprechend Datensätze aus einem Tabellenblatt das als Datenbank dient ein.
Dies funktioniert auch bestens.
Wenn ich jetzt in der ListBox auf einen Datensatz klicke werden die entsprechenden TextBoxen in der UserForm mit dem ausgewählten Datensatz entsprechend gefüllt.
Das klappt auch bestens.
Wenn ich jetzt Änderungen in den TextBoxen vornehme werden diese über den CommandButton (Änderungen eintragen) auch dementsprechend wieder in das Tabellenblatt des entsprechenden Datensatzes an die richtige Stelle zurückgeschrieben.
Das klappt auch bestens.
Nun zu meinem Anliegen:
Ich möchte jetzt aber erreichen wenn ich in einer TextBox etwas ändere (und zwar nur die Textboxen in denen der Anwender wirklich gerade etwas geändert hat), das der geänderte Wert sofort wieder in das Tabellenblatt zurückgeschrieben wird ohne die Schaltfläche (Änderungen eintragen) zu betätigen.
Also so ähnlich wie Change oder Exit Ereignis
Grund dafür ist: wenn ich die Schaltfläche (Änderungen eintragen) betätige, werden die Inhalte aller TextBoxen (auch derer wo keine Änderung stattgefunden hat) wieder in das Tabellenblatt zurück geschrieben (also wie schon gesagt auch der Inhalt der Textboxen wo ich nichts verändert habe) das ist so nicht gewollt.
Es sollen wirklich nur die Daten aus den geänderten TextBoxen in das Tabellenblatt zurück geschrieben werden.
Ist so was möglich und wenn ja wie müsste der Code dafür aussehen und wo müsste ich den Code dafür plazieren.
Mein Makro für die Speicherung der geänderten TextBoxen (über Schaltfläche Änderung speichern sieht im Moment so aus
Der Code ist aber wesentlich länger weil noch mehr TextBoxen und Commandboxen sowie Checkboxen die bei Änderung auch in das Tabellenblatt zurück geschrieben werden.
Dieser Code funktioniert auch bei mir.
Eine Datei kann ich leider nicht hochladen weil diese bereits über 7MB Größe verfügt
'SpeicherMakro
'Schaltfläche "Änderung Eintragen"
'vor dem speichern wird nachgefragt, ob alles richtig eingetragen ist
mldg = "Alles richtig eingetragen ?"
stil = vbYesNo + vbCritical + vbDefaultButton2
titel = "Frage ?"
grc = MsgBox(mldg, stil, titel)
If grc = vbNo Then
Exit Sub
Else
End If
Set WkSh = ThisWorkbook.Worksheets("Erfassung_Bearbeitung")
If frmRessourcenliste.Tag "" Then
'Start
TextBox1.Text = .Cells(varTMP, 2).Value
WkSh.Cells(frmRessourcenliste.Tag, 306) = TextBox4.Value
WkSh.Cells(frmRessourcenliste.Tag, 347) = ComboBox161.Value
WkSh.Cells(frmRessourcenliste.Tag, 13) = TextBox47.Value
WkSh.Cells(frmRessourcenliste.Tag, 335) = TextBox533.Value
WkSh.Cells(frmRessourcenliste.Tag, 11) = TextBox46.Value
WkSh.Cells(frmRessourcenliste.Tag, 336) = TextBox534.Value
WkSh.Cells(frmRessourcenliste.Tag, 10) = TextBox17.Value
If WkSh.Cells(frmRessourcenliste.Tag, 10) Me("TextBox17") Then
WkSh.Cells(frmRessourcenliste.Tag, 10) = Me("TextBox17")
End If
WkSh.Cells(frmRessourcenliste.Tag, 58) = TextBox53.Value
WkSh.Cells(frmRessourcenliste.Tag, 57) = TextBox54.Value
If Me.CheckBox90 = True Then
WkSh.Cells(frmRessourcenliste.Tag, 61).Value = "ja"
Else
WkSh.Cells(frmRessourcenliste.Tag, 61).Value = "nein"
End If
End If
Call TextBox10_Change
End Sub
Brauche wirklich Hilfe
Die Datei soll auf SharePoint von ca.50 Leuten bearbeitet werden. Dabei können schon mal gleichzeitig um die 10 Leute gemeinsam die Datei bearbeiten
Es soll damit verhindert werden, das wenn ein Benutzer Änderungen an der Datei nicht über die Schaltfläche Änderungen speichern aktualisiert seine Daten verloren gehen.
Gäbe es vielleicht auch einen anderen Ansatz wie man das lösen könnte?
Obwohl man in SharePoint gleichzeitig an einer Datei arbeiten kann und Änderungen automatisch gespeichert und aktualisiert werden, gibt es beim speichern (wenn mehrere Benutzer gleichzeitig an der Datei arbeiten) Probleme mit der Datenspeichgerung (zb. Fehler beim Upload)
Kann mir dabei jemand helfen?
So einen Codeschnipsel habe ich auch gefunden.
Kann damit aber wenig anfangen weil ich nicht weiß wo und wie ich den hätte in meinem Makro platzieren können
For ti = 1 To 10
For ci = 0 To UserForm1.Controls.Count - 1
If UserForm1.Controls.Item(ci).Name = "TextBox" & ti Then
MsgBox UserForm1.Controls.Item(ci).Text
End If
Next ci
Next ti
Für eine Hilfe bedanke ich mich bereits jetzt schon im Vorraus
Liebe Grüße Andreas