Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ausgefüllte Zellen mit Makro übertragen
#1
Hallo zusammen, :)

ich stehe vor der folgenden Herausforderung, bei der ich eure Hilfe brauchen könnte.

Ich habe die Tabelle "Sortiment". Die Anzahl von Zeilen und Spalten kann immer wieder variieren.
Hier trage ich für jeden Kunden die Preise und Mengen ein. Die gelben Zellen bei jedem Kunden bedeuten seine Bestellung. Diese sollten dann automatisch in die Tabelle "Bestellung" kopiert werden.
Die roten Produkte haben keine Mengen bekommen und sollten nicht rüber kopiert werden.
Die "sonstigen" Spalten werden einige Infos für mich enthalten, die aber in dieser Tabelle bleiben können und nicht rüber kopiert werden müssen.

In der Tabelle "Bestellung" habe ich einige Spalten (grau markiert), die schon vorgegeben sind.

Nun möchte ich mit einem Makro (am besten in einem Button), dass wenn ein Produkt mindestens einmal bestellt wurde, es dann in der Tabelle "Bestellung" in den Spalten Materialnr., Produkt und Farbe erscheint, mit entsprechenden Preisen und Mengen für entsprechenden Kunden.

Würde sowas überhaupt funktionieren oder ist die Sache zu kompliziert gedacht?

Hat hier jemand einen Ansatz, mit dem ich experimentieren könnte?
Für jede Hilfe wäre ich sehr dankbar.


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 13,35 KB / Downloads: 4)
Antworten Top
#2
(06.02.2017, 16:23)dimi.idgt schrieb: Würde sowas überhaupt funktionieren oder ist die Sache zu kompliziert gedacht?
Dein ganzer bisheriger Aufbau ist zu kompliziert gedacht.
Mit der richtigen Struktur reicht ein einfaches Filtern.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
(06.02.2017, 18:01)shift-del schrieb: Dein ganzer bisheriger Aufbau ist zu kompliziert gedacht.
Mit der richtigen Struktur reicht ein einfaches Filtern.

Das habe ich mir gedacht.
Jedoch habe ich zwei Tabellenblätter mit verschiedenen Spalten, die zum Einsatz kommen.
Filter geht dann nur in einem Tabellenblatt?
Antworten Top
#4
Die Spalten sind auf beiden Tabellenblättern identisch.
Filtern geht immer dort wo der Filter gesetzt ist.

Aber ich habe schon vermutet dass das noch nicht das ganze Ausmaß ist.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#5
(06.02.2017, 18:45)shift-del schrieb: Die Spalten sind auf beiden Tabellenblättern identisch.
Filtern geht immer dort wo der Filter gesetzt ist.

Aber ich habe schon vermutet dass das noch nicht das ganze Ausmaß ist.

Nun ja, die Datei ist ein Beispiel. Die Spalten heissen zwar identisch, werden aber verschiedene Inhalte haben.
Antworten Top
#6
So, ich habe langsam eine Lösung in Sicht. [Bild: smile.gif] 

Ich benutze eine Hilfspalte, in der bestimmt wird, ob eine Zeile eine Bestellmenge enthält:
=WENN(ODER(J3>0;N3>0;R3>0);MAX($A$4:A4)+1)
Die Spalte wird gefiltert.

Danach benutze ich diesen Code, um gefilterte Zeilen zu kopieren und in ein anderes Tabellenblatt einzufügen:

Code:
Code:

Option Explicit

Sub KopiereFilterZeile()

  ActiveSheet.Range("A3:C" & ActiveSheet.UsedRange.Rows.Count). _
  SpecialCells(xlCellTypeVisible).Copy
 
  Worksheets("BESTELLUNG").Range("A3").PasteSpecial


End Sub


Ich denke, ich wäre fast fertig. Nur eine Frage, wie bilde ich im Code folgendes ab?
Er soll mehrere einzelne Spalten kopieren. Also nicht nur A:C, sondern auch H, J, N usw. und sie dann entsprechend in I, L, O usw. einfügen.
Antworten Top
#7
Hallo,

so z.B.:


Code:
  Intersect(Range("A3:C" & UsedRange.Rows.Count). _
  SpecialCells(xlCellTypeVisible), Columns("H")).Copy
  Worksheets("BESTELLUNG").Range("I3").PasteSpecial


und das für jede Spalte. ActiveSheet kann man weglassen, da Du den Code aus der aktiven Tabelle heraus aufrufst.

Wenn AciveSheet sein müsste, dann besser so:



Code:
Sub KopiereFilterZeile()

 With ActiveSheet
   Intersect(.Range("H3:N" & .UsedRange.Rows.Count). _
   SpecialCells(xlCellTypeVisible), .Columns("H")).Copy
   Worksheets("BESTELLUNG").Range("I3").PasteSpecial
 
   Intersect(.Range("H3:N" & .UsedRange.Rows.Count). _
   SpecialCells(xlCellTypeVisible), .Columns("J")).Copy
   Worksheets("BESTELLUNG").Range("L3").PasteSpecial
 
   Intersect(Range("H3:N" & .UsedRange.Rows.Count). _
   SpecialCells(xlCellTypeVisible), .Columns("N")).Copy
   Worksheets("BESTELLUNG").Range("O3").PasteSpecial
 End With
 
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • dimi.idgt
Antworten Top
#8
Hallo Atilla,

vielen Dank für deine Antwort!
Die zweite Variante hat mir sehr geholfen. Jetzt funktioniert's!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste