Hallo liebes Forum. Ich bin ganz neu hier und hoffe auf eure Hilfe!
Ich habe eine Excel Tabelle mit zwei Werten (eigentlich sind es mehr, aber ich brauche für meine Frage nur die zwei Werte). ItemId und WarehouseID. Die ItemId ist die Nummer, mit der ein Produkt bei uns im System hinterlegt ist (wir sind ein Paintballladen) und die WarehouseID die Lagernummer. (Tabelle 2 in der Beispieltabelle) Unser Warenwirtschaftssystem gibt leider nur die ItemID aber nicht den Namen des Produktes aus. Ich kann mir aber eine zweite Exceltabelle generieren lassen, die unter anderem die ItemID und den ItemNamen beinhalten.
Jetzt möchte ich es irgendwie schaffen, dass mir in der Ersten Tabelle (Tabelle2 in der Beispieltabelle) auch der ItemName angezeigt wird. Da wir über 700 Artikelhaben und ständig neue dazu kommen, ist dies händisch leider nicht zu stämmen. Ebenfalls würde ich mir gerne anzeigen lassen, wie das Lager heißt. In der Tabelle ist erstmal nur ein Lager angegeben (1), insgesamt haben wir aber mehr. Lager 1 heißt Sales bei uns.
Ich habe etwas gegooglt und bin auf zwei verschiedene Lösungmöglichkeiten gekommen. Entweder mit einem SVerweis oder einem VBA Makro. Da ich aber leider von beidem keine Ahnung habe, wollte ich doch einfach mal hier nachfragen ob mir jemand helfen kann.
anbei ein Makro Code mit dem man das ganze schnell erledigen kann. Die Zeilen spielen dabei keine Rollle, bis 1 Milliion. Einfach mit Taste Alt und F11 den VBA Editor Öffnen, mit rechter Maustaste ein Modul einfügen, Makro in das Modul kopieren und über den Makro Dialog starten. Ins Blatt kann man einen CommandButton einfügen. Am besten kein AktivStuerelement, sondern den ganz normalen Standard Button. Dem kann man problemlos das Makro zuweisen. Dannach startet es über den Button.
İm Makro siehst du die Anweisung "AC.Offset(0, 2) = rFind.Offset(0,1)" Damit wird der gefundene Wert jetzt in die Spalte C kopiert, weil du in B die "RowWarehouseID" stehen hast. Wenn du es in Spalte B haben willst must du es bitte so aendern: "AC.Offset(0, 1)" Offset heist, verschiebe es um x Spalten nach rechts. Die Zahl kannst du selbst waehlen. Probier es mal aıus, dann lernst du auch gleichzeitig die Funktion von Vba Makros kennen.
mit Formeln geht es auch, dafür gibt es andere Ratgeber. Ist nicht mein Ding. mfg Gast
Code:
Option Explicit '22.10.2016 Gast 123 Clever Forum
Dim rFind As Object, AC As Object
Sub ItemName_übertragen() Dim Tb3 As Worksheet, lz As Long Set Tb3 = Worksheets("Tabelle3")
With Worksheets("Tabelle2") 'letxte Zelle in Spalte A ermitteln lz = .Range("A1").End(xlDown).Row
'Schleife für alle RowItemId in Tabelle1 For Each AC In .Range("A2:A" & lz) 'ID Nummer Suchen mit Find in Tabelle2 Set rFind = Tb3.Columns(1).Find(What:=AC, After:=Range("A1"), _ LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext) 'wenn gefunden übernehmen If Not rFind Is Nothing Then AC.Offset(0, 2) = rFind.Offset(0, 1) End If Next AC End With End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • MedusaLeiche
Für die Lagerbezeichnung musst du eine separate Liste anlegen, die du eventuell gleichzeitig als Liste für DropDowns zum, bequemeren Eintragen benutzen kannst.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28 • MedusaLeiche
Ich bin gerade dabei die richtige Tabelle zu erstellen. Dabei habe ich festgestellt, dass ich nicht ein zusätzliches Blatt mit den Artikeln habe, sondern insgesamt 4 (da wir verschiedene Artikel in bisher insgesamt 4 verschiedenen Lagerns haben). Kann ich das Makro dementsprechend anpassen?
Zitat:[...] nicht ein zusätzliches Blatt mit den Artikeln habe, sondern insgesamt 4 (da wir verschiedene Artikel in bisher insgesamt 4 verschiedenen Lagerns haben).
und das ist zum Auswerten mehr als ungünstig. Schreibe alles in eine Liste und vergib für die verschiedenen Lager eindeutige IDs. Dann kannst du das ganz einfach mit Formeln (siehe mein Vorschlag) auswerten. VBA ist zwar nicht meine Welt, aber ich denke, dass auch Makros leichter zu schreiben sind, wenn die Auswertung von einem Tabellenblatt aus vorzunehmen ist.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
(23.10.2016, 00:47)WillWissen schrieb: Schreibe alles in eine Liste und vergib für die verschiedenen Lager eindeutige IDs.
Das geht leider nicht. Ich brauche die 4 verschiedenen Blätter, da wenn wir neue Artikel reinbekommen, ich die ja auch in die Liste einpflegen muss. Und das vereinfacht es natürlich extrem wenn ich verschiedene Blätter habe.
Also mit dem SVERWEIS funktioniert dies leider definitv nicht, da Excel so viele Funktionen in einem nicht möglich sind. Das hießt es muss wahrscheinlich echt in einem Macro erfüllt werden.
Zitat:Ich brauche die 4 verschiedenen Blätter, da wenn wir neue Artikel reinbekommen, ich die ja auch in die Liste einpflegen muss. Und das vereinfacht es natürlich extrem wenn ich verschiedene Blätter habe.
das halte ich für ein Gerücht. :32:
Zitat:Also mit dem SVERWEIS funktioniert dies leider definitv nicht, da Excel so viele Funktionen in einem nicht möglich sind.
Bei deinem jetzigen Aufbau würde es mMn vermutlich nur über eine Monsterformel funktionieren (wir haben ausgesprochene Formelspezialisten, die dir eine solche bauen könnten). Was über VBA machbar ist, kann ich dir mangels ausreichendem Wissen nicht sagen.
Lies dir doch bitte einmal zum Aufbau einer Tabelle diesen Artikel durch: http://www.online-excel.de/excel/singsel.php?f=52 oder gib mal bei Tante Gugl "andreas thehos listen und tabellen" ein. Wenn du das Ganze dann noch als Tabelle formatierst (STRG-L oder -T), steht einer einfachen und bequemen Auswertung nichts im Weg.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28 • MedusaLeiche
ich habe mir die Beispieldatei herunter geladen und angesehen. Werde das Makro umschreiben. Habe bitte etwas Geduld, heute ist Sonntag, muss mich um die Familie kümmern, brauche etwas Zeit. Schau einfach am Montag mal rein. Das klappt schon
mfg Gast 123
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • MedusaLeiche