Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: Werte von Tabelle1 in frie Zeile Tabelle2 speichern





Frage

Hallo alle zusammen, folgendes Problem: Ich habe eine Arbeitsmappe mit 3 Tabellen: Tabelle1: Eingabemaske Tabelle2: Datenliste Tabelle3: Maske zum auslesen der Daten Tabelle1 ist eine Eingabemaske für Daten, diese werden dann in Tabelle2 mit diesem Makro in einer Liste fortlaufend gespeichert: Private Sub SpeicherButton1_Click() Worksheets("Tabelle2").Rows("3:3").Insert Shift:=x1Down Range("A5,B5,C5,D5").Copy Worksheets("Tabelle2").Range("A3") End Sub Tabelle3 ist die Abfragemaske mit der ich die Daten aus der Liste(Tabelle2) wieder auslese. Zum Datensatz auswählen benutze ich ein Kombinationsfeld. Unter Eigenschaften "ListFillRange" habe ich eingegeben: Tabelle2!A5:A100 unter "LinkedCell" z.B. C10. Nun folgendes Problem: Daten eingeben(Tabelle1)und speichern (in Tabelle2) funktioniert super. Daten auslesen eingentlich auch, aber wenn ich z.B. 5 neue Datensätze gespeichert habe tauchen diese 5 nicht mehr im Kombinationsfeld von tabelle3 auf !?!?! Ich habe selber rausgefunden das sich im Kombinationsfeld in Tabelle3 (zum Daten auslesen) unter Eigenschaften sich das Feld "ListFillRange" selbstständig verändert hat. Jetzt: Tabelle2!A10:A110 statt A5:A100 !!!!!! Kennt jemand eine Lösung für das Problem oder hat ein besseres Makro für meine Zwecke? Ich bin selbst absoluter Anfänger und weiß nicht mehr weiter. Vielen Dank schon mal in voraus. Gruss sportmattis

Antwort 1 von fürLau

Hallo

Versuch´s ´mal mit dieser kleinen Änderung:

Private Sub SpeicherButton1_Click()
Worksheets("Tabelle2").Rows("3:3").Insert Shift:=xlDown
Range("A5,B5,C5,D5").Copy Worksheets("Tabelle2").Range("A3")
Sheets("Tabelle3").ComboBox1.ListFillRange = "Tabelle2!A3:A" & _
CStr(Sheets("Tabelle2").Range("A65535").End(xlUp).Row)
End Sub


Hier wird immer wenn der SpeicherButton gedrückt wird auch der ListFillRange dynamisch angepaßt.
Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.

Antwort 2 von sportmattis

Hallo fürLau

Vielen Dank für die schnelle Anwort!!
Funktioniert prima!
Aber....
Ein kleines Problem bleibt noch...
Die Werte der Combobox1 werden immer aktualisiert.i.O.
Und der Wert aus Tabelle2 in das Feld C10 (Tabelle3)geschrieben,
wie gewollt. Nun habe ich in Tabelle2 aber mehrere Werte in einer Zeile gespeichert. Die möchte ich nun mit der Funktion SVerweis auch in Tabelle3 einfügen.
Dort habe ich das selbe Problem wie mit der Combobox.
Wert vor dem speichern: Tabelle2!A3:D50
Nach dem speichern: Tabelle2!A4:D50 usw.
??????????
Die neu gespeicherten Werte aus Tabelle2 werden nicht
mehr in Tabelle3 angezeigt.
(Nur der Wert aus der Combobox1 ist i.O. (C10)

Hast Du vielleicht auch dafür eine Lösung, so das die SVerweise aus Tabelle3 auch dynamisch angepasst werden??

Gruss
sportmattis

Antwort 3 von fürLau

Hallo Sportmattis,

Das sollte nach dem selben Prinzip wie mit ListFillRange zu realisieren sein.
Nach dem Strickmuster:

Sheets("Tabelle3").Range("Zelladresse").LocalFormula = _  "=SVERWEIS(Suchkriterium;Tabelle2!A3:D"& _ Cstr(Tabelle2.Range("D65535").End(xlup).row  & _ 
";Spaltenindex)"

Allerdings ohne nähere Kenntnis Deiner Date(ie)n schwer zu realisieren.
Alternativ könntest Du in Tabelle2 mit benannten Bereichen ebenfalls eine von eingefügten Spalten/Zeilen unabhängigen Ausgangswert schaffen.

Gruß

Anmerkung an die Admins:
Fettes war schwer (wegen der [h1]&[/h1] ) einzeilig durch den Parser zu bringen