Artikeldaten aus versch. Tabellen kombinieren
#1
Hallo liebe Exel-Gemeinde :)

Ich dachte ich google mir meine Lösung zusammen, stehe nun aber doch auf dem Schlauch und brauche Hilfe von geübten Exel-Experten :)

Ich möchte eine Artikelstammdatenliste erzeugen.

Hier am Beispiel von Fahrrädern...

Jedes Fahrrad gibt es mit mehreren Ausprägungen:

- Rücktritt oder Freilauf
- Rahmenform (H,D,T,W)
- Farben (Rot,Grau,Schwarz,Blau)
- Rahmengrößen (48,53,57,61,64cm)

Ich möchte daraus zwei Verkettungen entstehen lassen:

Spalte 1: Modellname (z.b. Comfort 7.0) + Rücktritt und Freilauf + Rahmenform (H,D,T,W) + Rahmenhöhe (48,53,47,61,64) + Farbe (Rot,Weiss,Grau, Schwarz, Blau)
               -->Comfort 7.0 Rücktritt H 48 rot -glanz
                    usw...

Spalte 2: Artikelnummer: G1H4805
                                        usw...

Da ich langsam verrückt werde, wenn ich ständig die Verketten Formel anpassen, habe ich mich gefragt ob es dafür nicht eine Formel/SVerweis oder der gleichen gibt?!?

Außerdem wird das wohl eine Liste mit mehreren tausend Einträgen.

Bin gespannt ob es dafür eine einfache Lösung gibt...und wäre um die Stunden an gesparter stupider Arbeit dankbar.

MfG Adrian


Angehängte Dateien Thumbnail(s)
   
Top
#2
Hallo Adrian,

kannst Du bitte eine Beispieldatei statt eines Screenshots einstellen.
Keiner wird Lust haben das alles abzutippen :32:

Gruß
Ich
Top
#3
Ahh sorry hab ich gar nicht dran gedacht :)


Angehängte Dateien
.xlsx   Fahrrad Exel.xlsx (Größe: 10,81 KB / Downloads: 10)
Top
#4
Ich habe da eine Idee.
Mal schauen ob Du damit leben könntest.

Gruß
Ich
Top
#5
Ich könnte mit jedem Tipp leben, alleine komme ich nämlich nicht weiter :)

An Was genau hast du denn gedacht? Dann kann ich auch mal in die Richtung basteln...

Gruß Adrian
Top
#6
Hallo Adrian

Zitat:Ich habe da eine Idee.  Mal schauen ob Du damit leben könntest.
Hääää, führt da jemand Selbstgespräche ???   

zur Sache:   ich habe mir die Beispieldatei angeschaut, bin aber noch nicht schlau geworden was du eigentlich willst?? Du erstellt mit einer Formel den Text:  Comfort 7.0 Rücktritt H 48 rot -glanz?? aber wozu dient das ganze. Da habe ich noch keinen blassen Schimmer was die eigentliche Aufgabe ist ???

mfg  Gast 123
Top
#7
Hallöchen,

es gibt verschiedene Ausführungen. Ziel ist es, eine Liste aller Ausführungen und deren Kurzbezeichnungen zu erstellen. Also es gibt wohl z.B. Herren, Damen, und zwei andere Räder, also 4 Ausführungen (H-W) in 5 Farben (05-13) und 5 Rahmengrößen (48-64), das wären die Daten aus dem rechten Bereich.
Die verschiedenen Modelle stehen in A1 bis A26.
Die ersten 4 gibt es mit Rücktritt und Freilauf, alle anderen nur mit Freilauf.

Das wären dann (26+4)*4*5*5 Kombinationen, also gut 3000 Einträge Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Hallo Adrian,

schau Dir einmal das Ergebnis für die "Artikelbezeichnungen" in Tabelle 2 nach einem Klick auf "Artikelbezeichnungen erzeugen" an.
Entschuldige die etwas verspätete Antwort. Neben dem Forum hier haben wir alle noch ein "Real Life" :32:. Hinzu kommt, dass mich
die Programmierung von Arrays regelmäßig an meine Grenzen führt. Da habe ich noch einiges zu lernen Undecided .

Zu den "Artikelnummern" habe ich noch ein Frage:
Wenn ich Deiner Logik folge, erhältst Du wesentlich weniger Artikelnummern als Du Modelle hast. Ist das so gewollt?
Nach meinem Dafürhalten solltest Du ebenfalls eine/n "Kurzbezeichnung/Code" für die Modelle einfügen, um eine eindeutige Artikelnummer
zu erzeugen. Oder Du hast eine andere Systematik, welche mir momentan noch nicht einleuchtet.
Aus diesem Grund habe ich die Artikelnummern bisher unberücksichtigt gelassen.

Sub KombinationArtikelbezeichnungen()
Dim a, b, c, d, e, S, az, zm As Long
Dim i As Integer
Dim Ausgabe
Dim Z
Z = 1

With Tabelle1
    S = .Range("A1").CurrentRegion.Columns.Count
    Redim spalten(1 To S) As Range
    For i = 1 To S
        Set spalten(i) = .Range(Cells(Rows.Count, i).End(xlUp), .Cells(1, i))
        Z = Z * spalten(i).Count
    Next
   
  
    Redim Ausgabe(1 To Z, 1 To 5)
    For a = 2 To spalten(1).Count
        For b = 2 To spalten(2).Count
            For c = 2 To spalten(3).Count
                For d = 2 To spalten(4).Count
                    For e = 2 To spalten(5).Count
                        az = az + 1
                        Ausgabe(az, 1) = spalten(1)(a)
                        Ausgabe(az, 2) = spalten(2)(b)
                        Ausgabe(az, 3) = spalten(3
                        Ausgabe(az, 4) = spalten(4)(d)
                        Ausgabe(az, 5) = spalten(5)(e)
                    Next e
                Next d
            Next c
        Next b
    Next a
End With

Z = 0

With Tabelle2
    .Range("A1").Resize(Ubound(Ausgabe), Ubound(Ausgabe, 2)) = Ausgabe
    zm = .Cells(Rows.Count, 1).End(xlUp).Row

    For Z = 1 To zm
        .Cells(Z, 6).Value = .Range("A" & Z) & " " & .Range("B" & Z) & " " & .Range("C" & Z) & " " & .Range("D" & Z) & " " & .Range("E" & Z)
    Next Z
End With

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0



Gruß
Ich

@ Gast123:
Selbstgespräche führe ich seit viel Jahren nicht mehr. Das wurde mir zu monoton :21: .


Angehängte Dateien
.xlsm   Fahrrad Exel_Ich_2.xlsm (Größe: 175,34 KB / Downloads: 5)
Top
#9
Hallo Ich

ich hoffe du verstehst Spass, war so ein spontaner Gedanke von mir.   Zu deiner Arbeit - alle Achtung, eine saubere Arbeit, gefällt mir! 
Hut ab ...  von dir kann man noch was lernen.  Mit Array arbeite ich bisher nicht. Ist vielleicht ein Nachteil. 

mfg  Gast 123
Top
#10
Hallo Gast,

alles gut  :100:.
Das hat mich ein paar Stündchen gekostet. Mit recherchieren, verschiedenen Ansätzen, wie das direkte
Verketten im Array, usw. Es ist also durchaus nicht so, dass mir das mal eben so von den Fingern geht.
Ich muss da selbst noch viel lernen.

Gruß 
Ich
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste