Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1936to1940
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Daten aus Liste in Formular-Felder einfügen
03.08.2023 10:34:06
Sven
Hallo,
ich suche nach einer Lösung, um Daten aus einer Liste in ein Formular zu ziehen.
Die Liste besteht aus 250 Zeilen und 174 Spalten

Was ich möchte:
Wenn ich im Arbeitsblatt A in Feld A4 eine Zahl eingebe, die einer fortlaufenden Nummer in Spalte B des Arbeitsblattes D entspricht, dann sollen die Werte aus der entsprechenden Zeile z.B. Nummer 7 eingeben, dann sollen die Werte, die in Arbeitsblatt D, wo in B9 die 7 steht, von B8 bis B174 in verschiedene Felder meiner Eingabemaske Übernommen werden.
Folgendes soll gemacht werden:

Blatt A Nummer eingeben
Blatt D Zeile wird angesprochen, in der sich in Spalte B diese Nummer befindet und die Daten aus D in A einfügen:
Blatt D Wert aus Spalte C in A Feld C5 einfügen
Blatt D Wert aus Spalte E in A Feld C6
Blatt D Wert aus Spalte F:I in A Feld C7:C10
Blatt D Wert aus Spalte Y:AH in A Feld C13:L13
Blatt D Wert aus Spalte AI:AR in A Feld C14:L14

Den umgekehrten Fall habe ich bereits in der Tabelle vorhanden:
In A werden die Daten manuell erfasst. Über einen Button wird dann ein Makro ausgeführt, dass die Daten in D einfügt. Ich kriege es aber irgendwie nicht hin, das Ganze umgekehrt zu machen. Hier der Code dafür:

Sub transfer_werte()


Dim shtEingabemaske As Excel.Worksheet
Dim rngStandort As Excel.Range
Dim rngKopfdaten As Excel.Range
Dim rngAdresse As Excel.Range
Dim rngLiefer As Excel.Range
Dim rngGewicht As Excel.Range
Dim rngColli1 As Excel.Range
Dim rngColli2 As Excel.Range
Dim rngColli3 As Excel.Range
Dim rngColli4 As Excel.Range
Dim rngColli5 As Excel.Range
Dim rngColli6 As Excel.Range
Dim rngColli7 As Excel.Range
Dim rngColli8 As Excel.Range
Dim rngColli9 As Excel.Range
Dim rngColli10 As Excel.Range
Dim rngColli11 As Excel.Range
Dim rngColli12 As Excel.Range
Dim rngColli13 As Excel.Range
Dim rngColli14 As Excel.Range
Dim rngColli15 As Excel.Range
Dim rngEmail As Excel.Range
Dim rngMRN As Excel.Range
Dim rngIncoterm As Excel.Range

Set shtEingabemaske = ThisWorkbook.Worksheets("Eingabemaske")
Set rngStandort = shtEingabemaske.Range("U28:U29")
Set rngMRN = shtEingabemaske.Range("C6")
Set rngKopfdaten = shtEingabemaske.Range("C7:C10")
Set rngAdresse = shtEingabemaske.Range("E5:E10")
Set rngLiefer = shtEingabemaske.Range("I5:I10")
Set rngGewicht = shtEingabemaske.Range("Q5:Q7")
Set rngColli1 = shtEingabemaske.Range("C13:L13")
Set rngColli2 = shtEingabemaske.Range("C14:L14")
Set rngColli3 = shtEingabemaske.Range("C15:L15")
Set rngColli4 = shtEingabemaske.Range("C16:L16")
Set rngColli5 = shtEingabemaske.Range("C17:L17")
Set rngColli6 = shtEingabemaske.Range("C18:L18")
Set rngColli7 = shtEingabemaske.Range("C19:L19")
Set rngColli8 = shtEingabemaske.Range("C20:L20")
Set rngColli9 = shtEingabemaske.Range("C21:L21")
Set rngColli10 = shtEingabemaske.Range("C22:L22")
Set rngColli11 = shtEingabemaske.Range("C23:L23")
Set rngColli12 = shtEingabemaske.Range("C24:L24")
Set rngColli13 = shtEingabemaske.Range("C25:L25")
Set rngColli14 = shtEingabemaske.Range("C26:L26")
Set rngColli15 = shtEingabemaske.Range("C27:L27")
Set rngEmail = shtEingabemaske.Range("Q8")


With Worksheets("Daten")
With .Cells(.Rows.Count, "C").End(xlUp)
.Offset(1, 0).Resize(rngStandort.Columns.Count, rngStandort.Rows.Count).Value = Application.Transpose(rngStandort.Value)
.Offset(1, 2).Resize(rngMRN.Rows.Count, rngMRN.Columns.Count).Value = rngMRN.Value
.Offset(1, 3).Resize(rngKopfdaten.Columns.Count, rngKopfdaten.Rows.Count).Value = Application.Transpose(rngKopfdaten.Value)
.Offset(1, 7).Resize(rngAdresse.Columns.Count, rngAdresse.Rows.Count).Value = Application.Transpose(rngAdresse.Value)
.Offset(1, 13).Resize(rngLiefer.Columns.Count, rngLiefer.Rows.Count).Value = Application.Transpose(rngLiefer.Value)
.Offset(1, 19).Resize(rngGewicht.Columns.Count, rngGewicht.Rows.Count).Value = Application.Transpose(rngGewicht.Value)
.Offset(1, 22).Resize(rngColli1.Rows.Count, rngColli1.Columns.Count).Value = rngColli1.Value
.Offset(1, 32).Resize(rngColli2.Rows.Count, rngColli2.Columns.Count).Value = rngColli2.Value
.Offset(1, 42).Resize(rngColli3.Rows.Count, rngColli3.Columns.Count).Value = rngColli3.Value
.Offset(1, 52).Resize(rngColli4.Rows.Count, rngColli4.Columns.Count).Value = rngColli4.Value
.Offset(1, 62).Resize(rngColli5.Rows.Count, rngColli5.Columns.Count).Value = rngColli5.Value
.Offset(1, 72).Resize(rngColli6.Rows.Count, rngColli6.Columns.Count).Value = rngColli6.Value
.Offset(1, 82).Resize(rngColli7.Rows.Count, rngColli7.Columns.Count).Value = rngColli7.Value
.Offset(1, 92).Resize(rngColli8.Rows.Count, rngColli8.Columns.Count).Value = rngColli8.Value
.Offset(1, 102).Resize(rngColli9.Rows.Count, rngColli9.Columns.Count).Value = rngColli9.Value
.Offset(1, 112).Resize(rngColli10.Rows.Count, rngColli10.Columns.Count).Value = rngColli10.Value
.Offset(1, 122).Resize(rngColli11.Rows.Count, rngColli11.Columns.Count).Value = rngColli11.Value
.Offset(1, 132).Resize(rngColli12.Rows.Count, rngColli12.Columns.Count).Value = rngColli12.Value
.Offset(1, 142).Resize(rngColli13.Rows.Count, rngColli13.Columns.Count).Value = rngColli13.Value
.Offset(1, 152).Resize(rngColli14.Rows.Count, rngColli14.Columns.Count).Value = rngColli14.Value
.Offset(1, 162).Resize(rngColli14.Rows.Count, rngColli15.Columns.Count).Value = rngColli15.Value
.Offset(1, 172).Resize(rngEmail.Columns.Count, rngEmail.Rows.Count).Value = Application.Transpose(rngEmail.Value)
End With
End Sub


P.S.: Eine Beispieldatei kann ich aktuell noch nicht anbieten, da die Datei sehr groß ist und die Uploadgröße übersteigt und sich darin Daten befinden. Ich bastel gerade eine abgespeckte Version zum Upload zusammen. Da ich die Datei nicht erstellt habe, bin ich noch nicht ganz dahintergestiegen, was wo wie zusammenspielt. Muss mich da noch durchwursten.
Aber ich frage schon mal, vielleicht ist es ja so einfach, dass direkt jemand weiß was ich will und es umsetzen kann. Schon mal vielen lieben Dank für eure Unterstützung.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Daten aus Liste in Formular-Felder einfügen
03.08.2023 18:10:10
Piet
Hallo

dann lade uns doch bitte mal eine Beispieldatei mit 15-20 Zeilen hoch, das wir den Tabellenaufbau erkennen können.
Zum Probieren kann man die Eingabemaske ja beschränken, und du setzt sie später auf die Grösse, die du brauchst.
Die Anzahl der Spalten sollte zum Testen aber stimmen, so das du nachher nur die echte Zeilenzahl korrigieren musst.

mfg Piet
AW: Daten aus Liste in Formular-Felder einfügen
03.08.2023 11:01:20
UweD
Hallo


reicht hier nicht ein Sverweis (oder Xverweis) aus?

LG Uwe
Daten aus Liste in Formular-Felder einfügen
03.08.2023 11:29:54
Sven
Nein, ein S-Verweis funktioniert nicht, da ich in das Feld keine Formel eintragen kann. Denn beim Speichern einer Eingabe überträgt das vorhandene Makro die entsprechende Nummer der neu erstellten Zeile der Liste in dieses Feld. Somit würde die Formel bei jeder Neueingabe überschrieben werden.

Sinn und Zweck der Liste ist vorrangig die Erfassung von Versanddaten. Es kommt aber immer mal vor, dass diese ergänzt oder geändert werden müssen.
Daher möchte ich, dass man die Daten nach der Übertragung aus der Eingabemaske in die Liste, wieder zurück in die Eingabemaske übertragen kann, um sie dort
zu bearbeiten.
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige