Hey everyone, ,
I have the following problem: I use a macro to fill cells. When I filter the cells and then run the macro, the cells are filled.
I need the code when I filter a few rows, after running the macro, the formulas will apply only to the filtered rows.
can you please help me where do i need to change it?
a small part of the macro is like this:
[
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
'Dictionary mit Columnsname
Set dt_col = getSpaltenDict() 'Public Function in Modul 'Funktionen'
'Ermitteln des Namen der aktiven Datei und Tabellenblatt
file = ActiveWorkbook.Name
sheet = "Ordersheet"
'Ermitteln zeilenübergreifende Variablen
kat = ThisWorkbook.Worksheets(sheet).Cells(2, 3) 'Kategorie 1 für Splittregel
With ThisWorkbook.Worksheets(sheet)
If .FilterMode Then .ShowAllData 'Autofilter entfernen
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row 'Anzahl Einträge ermitteln
anzahlGrößen = getAnzahlGrößen 'Länge des Größenlaufs ermitteln
ReDim arr1(anzahlGrößen)
stopSub = False 'Ausgang falls aufgerufenen Funktionen nicht funktionieren
nextRow = False
'All column unhide
Range(Columns(dt_col("Mengenverteilung")), Columns(dt_col("Gesamtsumme NETTO (BLOCK)") + 2)).Hidden = False
ThisWorkbook.Worksheets(sheet).Cells(1, dt_col("Festes Sortiment/LOT")) = "unhide"
'Abbruch bei leerem Ordersheet
If lastrow < getHeaderRow() + 1 Then
MsgBox (" Ordersheet ist empty")
Exit Sub
End If
]
I want to fill MengeVerleitung(LT1) only for filtered row when running macro for MengenVerleitung:
I have the following problem: I use a macro to fill cells. When I filter the cells and then run the macro, the cells are filled.
I need the code when I filter a few rows, after running the macro, the formulas will apply only to the filtered rows.
can you please help me where do i need to change it?
a small part of the macro is like this:
[
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
'Dictionary mit Columnsname
Set dt_col = getSpaltenDict() 'Public Function in Modul 'Funktionen'
'Ermitteln des Namen der aktiven Datei und Tabellenblatt
file = ActiveWorkbook.Name
sheet = "Ordersheet"
'Ermitteln zeilenübergreifende Variablen
kat = ThisWorkbook.Worksheets(sheet).Cells(2, 3) 'Kategorie 1 für Splittregel
With ThisWorkbook.Worksheets(sheet)
If .FilterMode Then .ShowAllData 'Autofilter entfernen
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row 'Anzahl Einträge ermitteln
anzahlGrößen = getAnzahlGrößen 'Länge des Größenlaufs ermitteln
ReDim arr1(anzahlGrößen)
stopSub = False 'Ausgang falls aufgerufenen Funktionen nicht funktionieren
nextRow = False
'All column unhide
Range(Columns(dt_col("Mengenverteilung")), Columns(dt_col("Gesamtsumme NETTO (BLOCK)") + 2)).Hidden = False
ThisWorkbook.Worksheets(sheet).Cells(1, dt_col("Festes Sortiment/LOT")) = "unhide"
'Abbruch bei leerem Ordersheet
If lastrow < getHeaderRow() + 1 Then
MsgBox (" Ordersheet ist empty")
Exit Sub
End If
]
I want to fill MengeVerleitung(LT1) only for filtered row when running macro for MengenVerleitung:
Vorlage_Ordersheet_FS22_Marke_Kat1_v7.4.6.1.xlsm | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AP | AQ | AR | AS | AT | AU | AV | AW | AX | AY | AZ | BA | BB | BC | BD | BE | BF | CE | CF | CG | CH | CI | CJ | CK | CL | CM | CN | CO | CP | CQ | CR | CS | CT | CU | CV | |||||||||||||||||||||||||||||||||||||||||||||||||||
4 | Typ der Größenverteilung: | PT | C | C | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | D | D | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | E | E | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | F | F | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | G | 0 | € - | G | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | Erster LT | Menge | Festes Sortiment/LOT | Sortiment/LOT | Größenlauf | Anzahl | Mengenverteilung | Sortiments-/LOT-rechner | Stück | Gesamtsumme NETTO | LT min (LT1) | LT max (LT1) | Anzahl (LT1) | Mengenverteilung (LT1) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | 01.08.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | 19.08.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | 06.09.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | 24.09.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | 12.10.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | 30.10.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | 17.11.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | 05.12.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | 23.12.2022 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | 10.01.2023 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | 28.01.2023 | 100 | B | 1 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 5 | 5 | 100 | 100 | 775,00 € | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ordersheet |
Cell Formulas | ||
---|---|---|
Range | Formula | |
CF8 | CF8 | =SUMIFS(INDIRECT("Ordersheet!$BY$" & $AO$5 & ":$BY$" & $AO$8),INDIRECT("Ordersheet!$AH$" & $AO$5 & ":$AH$" & $AO$8),"<>BLOCK",INDIRECT("Ordersheet!$AJ$" & $AO$5 & ":$AJ$" & $AO$8),"<>Nein",INDIRECT("Ordersheet!$AH$" & $AO$5 & ":$AH$" & $AO$8), "<>STORNO") |
CG8 | CG8 | =SUMIFS(INDIRECT("Ordersheet!$BZ$" & $AO$5 & ":$BZ$" & $AO$8),INDIRECT("Ordersheet!$AH$" & $AO$5 & ":$AH$" & $AO$8),"<>BLOCK",INDIRECT("Ordersheet!$AJ$" & $AO$5 & ":$AJ$" & $AO$8),"<>Nein",INDIRECT("Ordersheet!$AH$" & $AO$5 & ":$AH$" & $AO$8), "<>STORNO") |
CE10:CE20 | CE10 | =IF($A10="","",IF(SUM(AV10:CD10)=0,"",SUM(AV10:CD10))) |
CF10:CF20 | CF10 | =IF($A10="","",IF(CE10="","",CE10*AU10)) |
CG10:CG20 | CG10 | =IF($A10="","",IF(CF10="","",CF10*(($S10*(1-$R$2))*(1-$R$3)))) |
Cells with Data Validation | ||
---|---|---|
Cell | Allow | Criteria |
AU4:AU7 | List | =GL |
AQ4 | List | =level |
AS10:AS381 | List | =Sortimente |
AT10:AT381 | List | =Größenlauf |