Erst ein mal möchte ich betonen, dass ich seit Tagen nach einer Lösung suche und schon sehr viele Foreneinträge und Tips durchprobiert habe.
Da ich nur sehr selten in SQL und Tabellen programmiere (oder besser, versuche zu programmieren), sind einige Schritte ohne Posting nicht so leicht zu lösen. Übung macht den Meister und Bücher helfen auch nur dann, wenn man genügend Zeit zum Üben hat.
Zum Problem, ich nutze Calc, um für meinen Prestashop einige Artikelvarianten zu generieren und dann per CSV in Prestashop zu importieren.
Da es bis auf die Artikelnummer doch fast immer die gleichen Variantenkombis sind, habe ich es mit einem Makro versucht.
Hier stoße ich schon bei der Formattierung der fortlaufenden Nummern an meine Grenzen.
Generiert werden sollen nach Eingabe der Artikelnummer per "inputbox" die fortlaufenden Artikelnummern für die Variantenkombis.
Beispiel: ABC-001 ABC-002 ABC-003 ...
Laut Googlesuchergebnissen sollte dies an Hand von "art = format(art,"000")" funktionieren.
Es wird aber die Fehlermeldung angezeigt, dass art schon definiert wurde.
Ein weiteren Problem habe ich beim Verketten von Werten.
Hier versuche ich folgendes Ergebnis zu bekommen (Breite 25 cm:0)
Breite wird per "" "Breite" generiert, "25 cm" wird aus array Breite gezogen, ":0" auch aus "".
Ich hänge den Code ein mal an, auch wenn hier noch einiges fehlt, um den Export komplett generieren zu können.
Aber ohne die Lösung kann man den Rest nicht realisieren.
Code: Alles auswählen
Sub Heckscheibe
'Schreibt alle Kombinationsmöglichkeiten der folgenden Arrayeinträge
'in eine Tabelle
DIM art as integer
DIM sku as string
Breite = array("25 cm","30 cm","40 cm","50 cm","60 cm","70 cm","80 cm","100 cm")
Farbe = array("Weiß","Rot","Gelb","Grün","Magenta","Ocean","Hellgrau","Gold","Schwarz")
sku = inputbox ("Bitte Artikelnummer eingeben")
Attr = "Breite:select:0"
Value = "Farbe:select:1"
'k = ermittelt die Anzahl der Kombinationen
k = (ubound(Breite())+1)*(ubound(Farbe())+1)
for n = 1 to k
' = "Breite"+Breite+":0"
ArtNr = sku +"-"+art
' Es werden Werte für den Prestasho Import generiert
thisComponent.sheets(1).getcellbyposition(1,n).setstring(Attr(b))
thisComponent.sheets(1).getcellbyposition(2,n).setstring(Value(c))
thisComponent.sheets(1).getcellbyposition(3,n).setstring("Breite "+Breite+":0"(a))
thisComponent.sheets(0).getcellbyposition(1,n).setstring(Farbe(b))
thisComponent.sheets(0).getcellbyposition(2,n).setstring(ArtNr(c))
b = b + 1
art = art + 1
if b > ubound(Farbe()) then : a = a + 1 : b = 0 : end if
next n
End Sub
Domenico