Clever-Excel-Forum

Normale Version: Bestellmengen aus anderem Tabellenblatt auslesen und einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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