Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

@Denny zu Makro für WE Verteilung

@Denny zu Makro für WE Verteilung
15.03.2019 17:14:58
Rob
Hi Denny,
Dein Post ist leider zu alt und deshalb nicht mehr im Forum aufzufinden. Zu Deiner Rückfrage - _ mit

if isempty(Range) = False then
kannst Du abfangen, dass der Debugger erscheint, wenn es keine Einträge in Tabellle A oder C gibt:
PS: Ich habe den Code nochmal etwas angepasst (Variablen-Namen für Anzahl Artikel und Filialen z.B.)

Sub Zusammenfassen()
Dim i, x, lastRow, AnzahlArtikelB, AnzahlArtikelD, AnzahlFilialenA, AnzahlFilialenC As Integer
Dim FilialenA, FilialenC As Range
Dim TabA, TabB, TabC, TabD As Worksheet
Set TabA = Sheets("Tab A")
Set TabB = Sheets("Tab B")
Set TabC = Sheets("Tab C")
Set TabD = Sheets("Tab D")
AnzahlArtikelB = TabB.Cells(Rows.Count, 2).End(xlUp).Row
AnzahlArtikelD = TabD.Cells(Rows.Count, 2).End(xlUp).Row
AnzahlFilialenA = TabA.Cells(Rows.Count, 1).End(xlUp).Row - 1
AnzahlFilialenC = TabC.Cells(Rows.Count, 1).End(xlUp).Row - 1
Set FilialenA = TabA.Range("A2:A" & TabA.Range("A2").End(xlDown).Row)
Set FilialenC = TabC.Range("A2:A" & TabC.Range("A2").End(xlDown).Row)
With Sheets("Tab E")
If IsEmpty(TabA.Range("A2")) = False Then
'FÜR ALLE ARTIKEL AUS TAB B
FilialenA.Copy .Range("N6")
For x = 1 To AnzahlFilialenA
.Cells(x + 5, 15).Value = TabB.Cells(18, 2).Value
Next x
Call KopiereArtikel("Tab B", "Tab E", AnzahlFilialenA, AnzahlArtikelB, FilialenA)
End If
If IsEmpty(TabC.Range("A2")) = False Then
'FÜR ALLE ARTIKEL AUS TAB D
FilialenC.Copy .Range("N" & .Cells(Rows.Count, 14).End(xlUp).Row + 1)
lastRow = .Cells(Rows.Count, 15).End(xlUp).Row + 1
For x = lastRow To AnzahlFilialenC + lastRow - 1
.Cells(x, 15).Value = TabD.Cells(18, 2).Value
Next x
Call KopiereArtikel("Tab D", "Tab E", AnzahlFilialenC, AnzahlArtikelD, FilialenC)
End If
End With
End Sub
Private Function KopiereArtikel(TabelleQuelle, TabelleZiel As String, ByVal AnzahlFilialen,  _
ByVal AnzahlArtikel As Integer, ByVal Filialen As Range)
Dim x, i, lastRow As Integer
With Sheets(TabelleZiel)
For x = 19 To AnzahlArtikel
lastRow = .Cells(.Rows.Count, 14).End(xlUp).Row + 1
Filialen.Copy .Range("N" & lastRow)
For i = 1 To AnzahlFilialen
lastRow = .Cells(.Rows.Count, 15).End(xlUp).Row + 1
.Cells(lastRow, 15).Value = Sheets(TabelleQuelle).Range("B" & x).Value
Next i
Next x
End With
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: @Denny zu Makro für WE Verteilung
17.03.2019 18:57:28
Denny
Danke vielmals. Läuft perfekt.
AW: @Denny zu Makro für WE Verteilung
19.03.2019 11:10:06
Denny
Halo Rob,
sorry ich muss dich noch einmal nerven.
Ich habe gerade Festgestellt, das wenn das Makro durchläuft die Artikelnummer korrekt kopiert wird. Aber leider nicht bei allen die Filialen. Also Beispiel: Ich habe 5 Filialen und 6 Artikel. Dann sollte ja 6 Verschieden Artikel mit jeweils den gleichen Filialen auftauchen. Bei den ersten 3 Artikeln passt es. Ab den Fierten Artikel bleiben die Felder wo die Filialen stehen sohlten leer.
Das heißt der 4 Artikel wurde auch mit der richtigen Anzahl als 5mal untereinander geschrieben, aber die Filialen fehlt daneben. Bis jetzt hatte ich max. 3 Artikel dadurch ist es nicht aufgefallen.
Vielen Dank.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige