Userform soll nur geänderte Zellen übergeben
Hallo zusammen,
Ich würde Euch gerne bitten, mir zu helfen.
habe eine umfangreiche Userfform erstellt in der ich Datensätze ändern bzw. neu erstellen kann.
Im Moment überschreibt die Userform den ganzen Datensatz. Es sollen aber nur die Datenfelder übergeben werden, die tatsächlich geändert oder neu angelegt wurden. Ansonten werden mit die Formeln zerschossen
Hat jemand vielleicht eine Idee wie ich das realisieren kann.
Herzlichen Dank vorab und viele Grüße, meikel
Antwort schreiben
Antwort 1 von coros vom 15.06.2019, 12:27 Options
HAllo Meikel,
eigentlich sollte man Dir nocht mehr helfen. Grund: Mir ist bei Deinen letzten Fragen aufgefallen, dass Du immer eine Lösung erhalten hast, aber nicht in der Lage bist, Dich dafür zu bedanken. Son Verhalten ist nicht nett.
Zu Deiner Frage, Du müsstest schon mal etwas mehr über den Aufbau der UserForm verraten und den Bereich, um den ee geht. Ansonsten musst Du nur über eine Abfrage den Inhalt des Feldes mit der Zelle über z.B.
[b]If TextBox1.Text <> Cells(1,1) then Cells(1,1) = TextBox1.Text[/b]
vergleichen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Meikel vom 15.06.2019, 12:35 Options
Hallo Oliver,
besten Dank für Deine prompte Antwort.
Mir war nicht bewußt, das ich mich vergessen habe zu bedanken. Ich hatte gedacht, ich hätte dies in jedem Fall getan.
Sorry, war nicht absichtlich und ich bemühe mich zu bessern.
Zum Thema:
In meiner Userform gibt es 25 Spalten, die zum einen Text, zum anderen Zahlen, Prozente und Formel enthalten.
Das Problem, wenn ich den gesamten Datensatz übergebe,
werden mir die Prozente und Formeln zerschossen.
Ich hab' eine kleine Beispieldatei erstellt.
Wenn Du es möchtest, kann ich Dir diese zukommen lassen.
Vielen herzlichen Dank und viele Grüße, Michael
Antwort 3 von coros vom 15.06.2019, 12:37 Options
HAllo Meikel,
hast Du denn meinen Ansatz mal versucht? Damit sollte der Wert aus einem Textfeld nur übergeben werden, wenn er anders ist als der Wert aus der Zelle.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von Meikel vom 15.06.2019, 12:44 Options
Hi Oliver,
hab ich, aber wahrscheinlich hab ich diesen an der falsche Stelle eingebaut.
Private Sub CommandButton2_Click()
' Datensatz ändern
With Worksheets("Calculation")
.Cells(rngFind.Row, 1) = TextBox1.Text '
.Cells(rngFind.Row, 2) = TextBox2.Text '
End With
Clear all
End Sub
Vielleich könnest Du mir sagen, wie ich diesen hier einbauen muss.
Danke vielmals, Michael
Antwort 5 von coros vom 15.06.2019, 12:55 Options
Hallo Michael,
sollte folgendermaßen funktionieren:
[b]With Worksheets("Calculation")
If TextBox1.Text <> .Cells(rngFind.Row, 1) Then .Cells(rngFind.Row, 1) = TextBox1.Text '
If TextBox2.Text <> .Cells(rngFind.Row, 2) Then .Cells(rngFind.Row, 2) = TextBox2.Text '
End With
Clear all
End Sub[/b]
Wenn nicht, melde Dich. Aber ich werde Dir heute nicht mehr antworten können, da ich jetzt zu einem Kunden muss.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 6 von Meikel vom 15.06.2019, 13:12 Options
Hi Oliver,
hab's gemacht, klappt prima.
Besten Dank dafür und ein schönes Wochenende,
Gruß, Michael
Antwort 7 von Meikel vom 15.06.2019, 14:00 Options
Hi Oliver
ich bin es leider doch nochmal. Es gibt widererwartend ein kleines Problem.
1. ComboBox 3 referiert auf TextBox17 (Wenn; dann Formel)
2. TextBox 11 referiert auf TextBox16 (Wenn; dann Formel)
Dies bedeutet, änder ich in 1. oder 2. etwas, werden die Formeln zerschossen.
Ich müßte das also in der Userfom so hinterlegen, prüfe ob etwas geändert ist oder nicht, wenn "ja" dann übergebe Daten, aus ComboBox 3 oder Textbox 11aber laß die Formel in TextBox 16 und TextBox 17 unberührt.
Wenn es Deine Zeit erlaubt, wäre ich Dir sehr dankbar wenn Du mir vielleicht noch einen Tipp geben könntest.
Besten Dank vorab und viele Grüße,
Michael