Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife in VBA für Massenauszug

Schleife in VBA für Massenauszug
21.03.2018 09:14:21
roger
Hallo Zusammen
Ich habe folgendes Problem:
In einem Excel wird via Makro einen Massenauszug von verschiedenen Artikeln mit Preisen, Rabatten und Stückzahlen zusammengezogen. Dies funktioniert auch soweit. In einem DropDown Menu kann man zum Beispiel den Artikel 1 auswählen und das Gebäude 1 --> Daraus wird eine Nummer geniert Zum Bsp. S.1.1 und wird in die Zelle (6,5) geschrieben
In jedem Gebäude gibt es acht Artikeltypen. Für das Gebäude 1 folgende: S.1.1(Artikeltyp 1), K.1.1(Artikeltyp 2), V.1.1(Artikeltyp 3), B.1.1(Artikeltyp 4), FU.1.1(Artikeltyp 5), T.1.1(Artikeltyp 6), ST.1.1(Artikeltyp 7), D.1.1(Artikeltyp 8).
Wählt man nun das Gebäude 2 aus, soll folgende Ausgabe zu jedem Artikel kommen und in die Zelle (6,5) schreiben:
S.1.2(Artikeltyp 1), K.1.2(Artikeltyp 2), V.1.2(Artikeltyp 3), B.1.2(Artikeltyp 4), FU.1.2(Artikeltyp 5), T.1.2(Artikeltyp 6), ST.1.2(Artikeltyp 7), D.1.2(Artikeltyp 8).
Mein Code den ich bis jetzt habe funktioniert soweit, jedoch habe ich total 14 verschiedene Gebäude und mit meinem Code würde dies sehr viele Zeilen in Anspruch nehmen. Ich habe mir überlegt wie ich das mit zwei Schleife lösen kann. Eine für den Artikel und eine für die Gebäude. Jedoch weis ich da nicht weiter. Hier meinen Code. Wäre Dankbar um eine Hilfe:
Private Sub Verweis()
If Cells(6, 3).Value = "Aritkeltyp 1" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "S.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 2" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "K.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 3" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "V.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 4" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "B.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 5" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "FU.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 6" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "T.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 7" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "ST.1.1"
ElseIf Cells(6, 3).Value = "Aritkeltyp 8" And Cells(7, 3).Value = "Gebäude 1" Then
Cells(6, 5).Value = "D.1.1"
End If
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife in VBA für Massenauszug
21.03.2018 10:30:13
s
Warum keine Beispieldatei hochgeladen ?
AW: Schleife in VBA für Massenauszug
21.03.2018 10:54:08
roger
Kann ich leider nicht hochladen, da es eine geschäftliche Datei ist. Aber den wesentlichen Code ist ja publiziert.
AW: Schleife in VBA für Massenauszug
21.03.2018 12:26:14
UweD
Hallo
unabhängig davon, dass Artikeltyp falsch geschrieben ist...
so?
Private Sub Verweis()
    Dim Geb As Integer, Art As Integer
    Dim ARR, FEH As Boolean
     
    
    ARR = Array("S", "K", "V", "B", "FU", "T", "ST", "D")
    
    If InStr(Cells(6, 3), "Artikeltyp ") > 0 Then
        Art = Mid(Cells(6, 3), 12)
        If Art > Ubound(ARR) + 1 Then
            MsgBox "Artikeltyp '" & Art & "' nicht vorhanden!"
            Exit Sub
        End If
    Else
        FEH = True
    End If
        
    If InStr(Cells(7, 3), "Gebäude ") > 0 Then
        Geb = Mid(Cells(7, 3), 8)
    Else
        FEH = True
    End If
       
    If FEH Then
        MsgBox "Datenfehler"
        Cells(6, 5).ClearContents
        Exit Sub
    End If
    
    
    Cells(6, 5) = ARR(Art) & ".1." & Geb
 End Sub

LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige