1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo alle Miteinander,

um ein Projekt zu verwirklichen, brauche ich Eure Hilfe, wobei das mit Sicherheit nicht einfach ist.
Folgendes Projekt. Ich habe zwei Tabellenblätter. Tabellenblatt1 ( Artikellliste ) besteht aus 3 Spalten. A B und C. Spalte A5 - A1000 beinhalten Zahlen. Spalte B5 - B1000 beinhalten die Artikel. Spalte C5 - C1000 beinhalten die Artikelnummern.
Tabellenblatt2 ( Bestellformular ) besteht aus 4 Spalten. A B C D. Spalte A4 - A30 ist die Zahlenspalte. Spalte B4 - B30 ist die Mengenspalte. Spalte C4 - C30 ist die Artikelspalte. Spalte D ist die Artikelnummern Spalte.
Mein Wunsch wäre folgender. Wenn ich in der Artikelliste auf eine Zahl in der Spalte A klicke, dann soll die Zahl in das Bestellformular nach Spalte A4, der Artikel nach C4 und die Artikelnummer nach D4 kopiert werden. Klicke ich in der Artikelliste eine zweite Zahl in Spalte A an, dann müssen die Werte im Bestellformular nach A5, C5 und D5 kopiert werden usw. Das heißt, die vorhanden Werte dürfen nicht überschrieben sondern müssen angehängt werden. Die Spalte B4 - B30 wird manuell eingetragen. Soviel zum Projekt. Vielleicht hat ja jemand eine Idee. Ich bedanke mich schon mal im vorraus für eventuelle Bemühungen.

Viele Grüße und ein schönes Wochende

Fränki

3 Antworten

0 Punkte
Beantwortet von nostalgiker6 Experte (7.1k Punkte)
Üblicherweise geht man umgekehrt vior: Man hat das Bestellformular, gibt dort eine Artikelnummer ein (kann sie i.a. auch aus einer Liste auswählen), und dann werden die Daten zur AN in die gewünschten Felder kopiert. Dann das gleiche Spiel in der nächsten Zeile des Bestellformulars etc. Damit entfällt das Problem, dass das Programm sich die richrtige Zeile selbst suchen müsste, komplett.
Das Übertragen dürfte mit SVERWEIS funktionieren. Für die Auswahlliste habe ich keinen Weg zur Hand, aber dazu weiss sicher jemand anderes etwas.
0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Das koennte man erledigen wie folgt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngLRow
If Not Intersect(Target, Me.Range("A5:A1000")) Is Nothing Then 'Doppelklick in A5:A1000?
With Worksheets(2)
lngLRow = IIf(IsEmpty(.Range("A" & 30)), _
.Range("A" & 30).End(xlUp).Row, 30) 'letzte Zeile ermitteln Range
If lngLRow <= 3 Then lngLRow = 3 'letzte Zeile im Zweifel auf 3 setzen
If lngLRow = 30 Then MsgBox "EingabeBereich voll": End 'Wenn letzte Zeile=30 Meldung und raus
.Range("A" & lngLRow + 1).Value = Target 'A nach Tabelle2 A
.Range("C" & lngLRow + 1).Value = Target.Offset(, 1) 'B nach Tabelle2 C
.Range("D" & lngLRow + 1).Value = Target.Offset(, 2) 'C nach Tabelle2 D
End With
End If
End Sub


Dieser Code gehoert ins CodeModul der Tabelle "Artikelliste". (Rechtsklick auf den "Reiter" der Tabelle-> "Code anzeigen").
Die ZielTabelle ist in diesem CodeBeispiel die ZWEITE Tabelle der Arbeitsmappe.

Cu
TheBlackBird ®
0 Punkte
Beantwortet von
Hi TheBlackbird,

ich kann nur sagen: GENIAL !!!

Mein Problem ist gelöst.

Vielen Herzlichen Dank für Deine Bemühungen und ein schönes Wochenende!

Gruß

Fränki
...