Moin,
vielleicht hat jmd. eine charmante Idee für folgendes Problem: Mit einem Makro habe Registerkarten erstellt, die den Namen jedes Kunden tragen und will nun auf dieser Registerkarte seine Bestellmengen eintragen. Die stehen aber auf einem anderen Tabellenblatt. Dort müssen sie also identifiziert werden und an entsprechender Stelle eingefügt werden.
Tabelle mit den Kunden:
Name Artikel Anzahl
Frau Muster Stifte 5
Frau Muster Block 6
Frau Muster Radiergummi 1
Herr Kleber Block 4
Herr Kleber Uhu 1
Registerkarte mit dem Kundennamen (Bsp. Frau Muster):
Anzahl Artikel
5 Stifte
6 Block
1 Radiergummi
Wie schaffe ich es also die Werte aus der Tabelle mit allen Kunden Spalte 3 auszulesen und in der Registerkarte mit den Kundennamen zuzuordnen?
In der Registerkarte mit Kundennamen stehen die Artikel schon drin. Nach eingetragener Anzahl will ich dann nur nach den Artikeln filtern die nicht "0" sind. Letzteres bekomme ich bereits hin, nur den teil davor nicht ;)
Viele Grüße
snake-84
Hallo
dieses kleine Makro ist zwar sehr kurz, wird aber den gewünschten Zweck erfüllen. Als Universal Makro geschrieben!!
Mit fehlten die exakten Angaben zu Saplten und Zeilen in Bestellung und den Mitarbeiter Tabellen. Deshalb die Const Anweisungen im Kopf. Da bitte zuerst die pasenden Spalten und Zeilen entsprechend richtig angeben. Bei mir zum testen waren es Spalte A und Zeile 2. Die letzte Korrektur ist hier vorzunehmen:
Set Bst = Worksheets("Tabelle5")
Da muss noch der richtige Name deiner Bestellung Tabelle angegeben werden. "Tabelle5" war ja nur zum testen!
Nach diesen Korrekturen sollte das Makro einwandfrei laufen. Wurde in meiner Beispielmappe getestet.
mfg Gast 123
Code:
Option Explicit '21.12.2017 Gast 123 Clever Forum
Const BstSpalte1 = "A" '1. Spalte in Bestellung Tabelle
Const MtaSpalte1 = "A" '1. Spalte der Mitarbeiter Tabelle
Const BstZeile1 = 2 '1. Zeile Mitarbeiter Tabellen
Const MtaZeile1 = 2 '1. Zeile der Artikeldaten
Sub Daten_kopieren()
Dim lastTab As Long, k, j As Long
Dim Sht As String, Artikel, Anzahl
Dim Bst As Worksheet 'Bestllung Tabell
Dim MSht As Worksheet 'Mitarbeiter Tab.
'** Name der Bestellungs Tabelle
Set Bst = Worksheets("Tabelle5") '** Name ggf. aendern
'LastZell in Tabelle Bestellungen suchen, Spalte A
lastTab = Bst.Cells(Rows.Count, BstSpalte1).End(xlUp).Row
'Schleife für alle Artikel in Bestellung Tabelle
For k = BstZeile1 To lastTab
With Bst.Cells(k, BstSpalte1)
Sht = .Cells(1, 1).Value 'Mitarbeiter Tabelle
Set MSht = Worksheets(Sht) 'als Objekt setzen
Anzahl = .Cells(1, 3).Value
Artikel = .Cells(1, 2).Value
'Schleife für gesuchten Artikel in Mitarbeiter Tabelle
For j = MtaZeile1 To 10000
If MSht.Cells(j, MtaSpalte1) = Artikel Then
MSht.Cells(j, MtaSpalte1).Offset(0, 2) = Anzahl
End If
Next j
End With
Next k
End Sub
Nachtrag
ich sehe gerade der Kommentar im Makro ist falsch, und zwar hier:
Const BstZeile1 = 2 '1. Zeile Mitarbeiter Tabellen
Const MtaZeile1 = 2 '1. Zeile der Artikeldaten
der richtige Kooemtar ist
Const BstZeile1 = 2 '1. Zeile Bestellung Tabelle (1. Artikel)
Const MtaZeile1 = 2 '1. Zeile Mitarbeiter Tabelle (1. Artikel)
mfg
Moin,
vielen Dank erstmal für Mühe!!! Makro funktioniert bei mir allerdings nicht. Vielleicht hab ich es auch nicht gut genug erläutert oder verstehe deinen Vorschlag nicht. Hier nochmal detaillierter:
Hier die Registerkarte mit allen Kundendaten und Artikeln etc.
Registerkarten Name: "Tabelle2"
A B E
1 Name Artikel Anzahl
2 Frau Muster Stifte 5
3 Frau Muster Block 6
4 Frau Muster Radiergummi 1
5 Herr Kleber Block 4
6 Herr Kleber Uhu 1
Daraus macht mein bisherigen Makro automatisch Registerkarten mit den Namen der Kunden und kopiert eine Rechnungsvorlage (von Registerkarte 1) auf die jeweilige Registerkarte. das sieht dann so aus:
Registerkarten Name: "Name des Kunden" Frau Muster
A C
Anzahl Artikel
19 5 Stifte
20 6 Block
21 1 Radiergummi
Registerkarten Name: "Name des Kunden" z.B. Herr Kleber
A C
Anzahl Artikel
19 0 Stifte
20 4 Block
21 0 Radiergummi
22 1 Uhu
Die rot markierten Zahlen sollen aus der "Tabelle2" entsprechend Kunden und seiner Bestellung übernommen werden. Ist es das was dein Makro macht und ich habe es nur falsch umgesetzt?
Viele Grüße
snake-84
Hallo snake
anbei eine Beispieldatei mit neuem Makro zum Daten ausfüllen. Für die Frage zum Autofilter habe ich vier Beispiele mit eingefügt, nur als gedankliche Anregung wie man es machen könnte.
Zur Zeit bin ich für unbestimmte Zeit in Urlaub und habe kei Iternet. Schau nur mal ab und zu i s Forum rein.
mfg Gast 123