Hallo! Ich arbeite im Shop mit einer einzigen Artikel-Eigenschaft, die die Größe angibt (sinngemäß wie bei T-Shirts S,M,L,XL). Hierzu gibt es bei mir 5 Größen sowie eine Größe "Passt für alle". Diese würde ich gerne über einen CSV-Import hochladen. Mein Problem dabei ist, dass der testweise Export eines (händisch erstellten) Artikels mit 5 Eigenschaften auch 5 Zeilen in Excel ergibt. Damit ist es sehr schwierig, das ganze halbwegs zu automatisieren, weil dieser 5-Zeiler beim Kopieren sich automatisch an die Preistabelle +5 anpasst. Ist also z.B. der erste Bezug in meiner Export CSV auf Zelle A1, dann beziehen sich die nächsten 4 Zeilen (gleicher Artikel, andere Eigenschaften) auch auf Zelle A1. Würde ich diesen 5er Block nun kopieren, ändert sich der Bezug von A1 dann zu A5 und nicht zum nächsten Artikel - also A2. Ich hoffe, ich konnte das verständlich rüberbringen ... Hat hier jemand eine Idee dazu? Es gab mal ein Tool Namens "EasyPopulate", aber der Ersteller ist leider nicht mehr unter den Lebenden ... Viele Gruesse Andreas Nothaft www.modellbahndecals.de
Du musst das in 2 Schritten machen: 1. kopiere den gewünschten Artikel und füge diesen 4x ein 2. trage die Eigenschaften ein, oder kopiere nur die Eigenschaften aus Artikel 1 und füge diese in Artikel 2 ein. Wenn du immer den ganzen Block kopierst, stimmen sonst auch die IDs nicht mehr P.S. hast Du wirklich noch einen GX2?
Hallo Barbara, danke für die schnelle Antwort - ups ja, falsches Forum ... ich stelle es nochmal neu bei GX3 ein ... Allerdings verstehe ich Deine Antwort nicht so ganz ... mein Problem ist eher auf der Excel-Seite zu suchen. Denn wenn es (meistens aber nicht immer) 5 Zeilen sind und ich diesen Block in Excel kopiere, ändern sich ja in dem Datenbblatt das als CSV exportiert wird die Bezüge auf +5. Was aber nicht passt zu meiner Preisliste, in der es jeden Artikel nur 1x gibt - also auch nur in einer Zeile - dafür dann eben in 5 Größen ... Viele Gruesse Andreas Nothaft www.modellbahndecals.de
Es gibt Artikel A also nur einmal, ich kann aber wählen, ob ich ihn in S oder L haben will? Oder gibt es den Artikel einmal in Grße S uind einmal in Größe L (das wäre dann 2x)? Generell sollte man nciht Excel nutzen, sondern besser liebreOffice, weil Exel doch eine Menge Eigenheiten hat. du musst aber auch nciht alle Spalten nutzen, sondern nur einige wichtige und das, was Du ändern / anlegen willst. Ändert sich der Preis z.B. nicht, kannst Du die Spalte (die ganze Spalte, nicht nur den Inhalt!) löschen. Ich kann Dich in den GX-3 Bereich schieben, dann musst du das da nicht neu anlegen - sonst kommt man nur mit den Antworten durcheinander.
Ja, bitte verschieben - Danke! Es gibt (fast) jeden Artikel in den genannten 5 Größen. Du kannst es Dir ja gerne mal in meinem Shop ansehen. Läuft aktuell noch alles über Attribute, nur Artikel 7868 habe ich händisch auf Eigenschaften umgestellt. Und genau diesen einen Artikel habe ich exportiert (inkl. der Eigenschaften) und das ergibt in der CSV dann 5 Zeilen. In meiner Preiliste ist das aber nur 1 Artikel - die verschiedenen Preise sind dann in den Spalten. Also müsste ich für einen CSV-Upload aus einer Zeile in der Preisliste 5 Zeilen in der CSV machen. Ja, ich gebe Dir Recht, Excel hat einige Spezialitäten. Aber hier bin ich in der Lager mit meinen VBA-Kenntnissen mir auch mal was anzupassen. Viele Gruesse Andreas
Hallo Andreas, ich hoffe, dass ich das Problem richtig verstanden habe. Wenn die Daten sehr gleichmäßig strukturiert sind, kann man sich bei sowas mit ZEILE() und INDIREKT() behelfen. Ist keine besonders charmante Lösung, kann aber funktionieren. Ich muss dazu sagen, mein Wissen basiert auch komplett auf LibreOffice, ich hab mit Excel das letzte mal ernsthaft vor 10 Jahren gearbeitet. Ich glaube aber, bei solchen Standardbefehlen macht das keinen großen Unterscheid. Also, deine Zeile 1 bis 5 in der neuen Datei verweisen auf Zeile 1 in der alten. Zeile 6-10 in der neuen verweisen auf Zeile 2 in der alten, und so weiter. ZEILE() gibt die aktuelle Zeilennummer aus. Wenn du diese durch 5 dividierst und aufrundest, gibt der Befehl solange "1" aus, bis du in Zeile 6 angekommen bist. Dann ergibt die Kalkulation ZEILE()/5 den Wert 1,2, den erste Wert über 1, der zu "2" aufgerundet wird. Mit INDIREKT() kannst du daraus einen Zellenbezug machen. Ich hätte dir eine Beispieldatei hochgeladen, .ods-Dateien sind als Anhänge aber wohl nicht erlaubt. Versuch mal in einem Dokument Zellen A1 bis A5 mit Zahlen zu fühlen, und füge den folgenden Befehl in Spalte B1 bis B25 ein: =INDIREKT("A"&AUFRUNDEN(ZEILE()/5)) Vielleicht liege ich aber auch daneben, und du meintest etwas völlig anderes.
Hallo zusammen! @barbara: Attribute lassen sich (korrigiert mich bitte, wenn ich falsch liege) nicht über einen CSV-Upload hochladen. Deshalb hatte ich ja in GX2 das EasyPopulate-Tool, das das konnte. @Til: Ja, Du hast es exakt erfasst - Danke! Mit INDIREKT habe ich es gestern auch schon probiert - funktioniert vom Prinzip her ganz gut, erscheint mir aber in der Praxis immer noch zu umständlich, weil ich in der CSV-Tabelle zumindest an einer Stelle den Bezug auf die Preisliste händisch eintragen muß. Aber vielleicht hast Du das ja schon gelöst? Kannst Du mir Dein Muster mal schicken? Adresse steht auf meiner Website im Impressum. Alternativ bin ich am Überlegen, ob ich alle Artikel (also quasi die 5 Zeilen) doch in eine Zeile hintereinander packe und mir eine eigene Export-Routine schreibe. Die könnte dann jeweils die ersten x Spalten in die Export-Datei schreiben, dann ein CRLF und dann die nächsten x Spalten. Viele Gruesse Andreas
Die Beispieldatei ist nur das einfache Beispiel, dass ich in dem Post oben beschrieben habe. Also Zellen A1 bis A5 mit Test-Inhalt und dann den Befehl oben in Zeile B1 und folgende. Ich persönlich arbeite sehr intensiv mit dem .csv import, lade dort mehrfach täglich ein Update in den Shop. Aber ich erzeuge ich die Datei komplett in python. Also damit habe ich eigentlich alles gelöst, was ich brauche, das wird dir aber vermutlich nicht helfen. Ich weiß nicht genau, wie du das mit dem Bezug auf die Preisliste meinst, vielleicht kannst du das noch einmal genauer erklären.
Hallo Til, ich habe das mal ausprobiert - und es klappt sehr gut. Setzt allerdings voraus, dass es immer(!) 5 Zeilen pro Artikel gibt. Da es jedoch auch z.B. Sonderangebote (Restverkäufe) gibt, können es auch mal 1-4 Zeilen sein ... Weisst Du (oder jemand hier), ob der Importer den Wert "XTSOL" immer als Beginn eines neuen Datensatzes sieht? Dann könnte ich nämlich die bisherige CSV_Tabelle (wie oben beschrieben) 5x hintereinander in eine Zeile kopieren und als ein Datensatz exportieren. Falls der Importer nach jedem Datensatz immer ein CRLF benötigt, müsste ich eben einen eigenen CSV-Export in VBA schreiben - stelle ich mir nicht sooo schwierig vor. Danke schon mal an Barabara und Til - vor allem für die Sonntagsarbeit Viele Gruesse Andreas Nothaft www.modellbahndecals.de
Also XTSOL muss am Anfang von jeder Zeile stehen. Ich weiß gerade nicht was passiert, wenn das dort nicht steht. Entweder überspringt der die Zeile, oder es gibt einen Fehler und er ganze Importvorgang funktioniert nicht. Müsste man mal in die Doku schauen oder es Anhand einer ganz kurzen Testdatei probieren. Wenn es nicht immer 5 Zeilen sind, brauchst du einen Eintrag, der in allen Zeilen eines Produktes gleich bleibt, zum Beispiel die Artikelnummer. Du brauchst einen Counter, der dann zählt, wenn sich die Artikelnummer ändert, also ein neuer Block angefangen hat. Das geht wenn man einfach die Zelle mit der darüber vergleicht, und eine "1" ausgibt, wenn sie sich geändert hat, und ansonsten "0". Sagen wir in Spalte A2 und folgende stehen Artikelnummer, dann wäre der Befehl für B2 und folgende WENN(A2<>A1;1;0) Diesen Befehl kann man einfach "herunterziehen" über beliebig viele Zeilen, und dann in einer dritten Spalte eine mitlaufende Summe machen, also zum Beispiel so: SUMME($B$2:B2). Dann hat man in der Spalte C eine Zahl, die der Nummer des aktuellen Blocks entspricht. Diese Nummer müsste dann die Zeile in deiner Quelldatei sein, auf die du dich dann wieder mit INDIREKT beziehen kannst.