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 ziehen
19.07.2023 08:12:07
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 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ügen. 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
AW: Daten aus Liste in Formular ziehen
19.07.2023 09:47:19
Rudi Maintaire
Hallo,
zur weiteren Bearbeitung:
    With Worksheets("Daten")
         With .Cells(Application.Match(shtEingabemaske.Range("A1"), .Columns(2), 0), "C").Offset(-1)
            rngStandort = Application.Transpose(.Offset(1, 0).Resize(rngStandort.Columns.Count, rngStandort.Rows.Count))
            rngMRN = .Offset(1, 2).Resize(rngMRN.Rows.Count, rngMRN.Columns.Count)
            rngKopfdaten = Application.Transpose(.Offset(1, 3).Resize(rngKopfdaten.Columns.Count, rngKopfdaten.Rows.Count))
Gruß
Rudi

AW: Daten aus Liste in Formular ziehen
20.07.2023 13:51:39
Sven
Bei der Zeile
With .Cells(Application.Match(shtEingabemaske.Range("A4"), .Columns(2), 0), "C").Offset(-1)

bekomme ich die Meldung: "Objekt erforderilch"

Anzeige
AW: Daten aus Liste in Formular ziehen
24.07.2023 13:15:49
Sven
Ein kleiner Schubs: Die Fehlermeldung habe ich immer noch und verstehe nicht ganz, was ich machen muss

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige