Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige