Thema Datum  Von Nutzer Rating
Antwort
05.03.2019 08:22:19 Emre
NotSolved
05.03.2019 09:08:33 Gast40369
NotSolved
05.03.2019 09:55:14 Emre
NotSolved
05.03.2019 14:45:34 Emre
Solved
05.03.2019 16:13:21 Ulrich
NotSolved
Blau Select nicht nötig
06.03.2019 07:02:27 Emre
NotSolved
06.03.2019 09:01:56 Ulrich
NotSolved

Ansicht des Beitrags:
Von:
Emre
Datum:
06.03.2019 07:02:27
Views:
666
Rating: Antwort:
  Ja
Thema:
Select nicht nötig

Hallo Ulrich,

 

kann ich alle Selects weglassen?

Vllt hast du Zeit und Lust mal über das Makro zu schauen und mir zu sagen was ich noch weglassen kann (Selects).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Sub Differenzprotokollbearbeiten()
 
Dim letzteZeile As Long
 
    letzteZeile = Cells(Rows.Count, 2).End(xlUp).Row
'
' Differenzprotokollbearbeiten Makro
'
 
' 1. Zeile 1 mit Filter versehen
' 2. Alle Zeilen entfernen, wenn in Spalte AF eine 1 drinsteht
Application.ScreenUpdating = False
    Application.DisplayAlerts = False
With ActiveSheet
.Range("A1").AutoFilter Field:=30, Criteria1:="1"
.Rows(1).Hidden = True
.UsedRange.SpecialCells(xlCellTypeVisible).Delete
.Rows(1).Hidden = False
.AutoFilterMode = False
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
 
' 3. Spalte A markieren und eine Spalte hinzufügen und mit Überschrift Kennzahl versehen
Columns("A:A").Insert Shift:=xlToRight
    Range("A1") = "Kennzahl"
 
' 4. Pivottabelle erstellen ("Zellenbeschriftungen = Filiale / Summe von VK diff ges.")
        Cells.Select
        Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Daten1!A1:AE" & letzteZeile, Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Tabelle1!R3C1", TableName:="PivotTable", _
        DefaultVersion:=xlPivotTableVersion14
    Sheets("Tabelle1").Select
    With ActiveSheet.PivotTables("PivotTable").PivotFields("Filiale")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable").AddDataField ActiveSheet.PivotTables( _
        "PivotTable").PivotFields("VK diff ges."), "Summe von VK diff ges.", xlSum
    ActiveCell.Columns("A:B").EntireColumn.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveCell.Rows("1:2").EntireRow.Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
    ActiveCell.Rows("1:1").EntireRow.Select
' 5. Aufsteigend sortieren in Spalte "Summe von VK diff ges."
    Selection.AutoFilter
    ActiveCell.Offset(4, 1).Range("A1").Select
    ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Add Key:= _
        ActiveCell.Offset(-1, 0).Range("A1"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
     
Worksheets("Tabelle1").Rows(2).Delete
 
' 6. In Spalte C zu jeder Filiale eine Kennzahl hinzufügen.
Dim Ende As Long
 
With ActiveSheet
   
  .Range("C2") = "1"
  .Range("C3") = "2"
    
  Ende = Cells(Rows.Count, 2).End(xlUp).Row
   
  .Range("C2:C3").AutoFill Destination:=Range("C2:C" & Ende), Type:=xlFillDefault
   
End With
      Sheets("Daten1").Select
Dim z As Long
Dim lz As Long
Dim s As Integer
   
lz = Cells(Rows.Count, 2).End(xlUp).Row
If Cells(Rows.Count, 2) <> "" Then lz = Rows.Count
  
On Error Resume Next
For z = 2 To lz
For s = 3 To 3
        Cells(z, 1).Value = WorksheetFunction.VLookup(Cells(z, 6).Value, Range("Tabelle1!A:C"), s, False)
        If Err.Number > 0 Then
            Cells(z, 1).Value = 0
            Err.Clear
        End If
    Next s
Next z
 
' 8. Aufsteigend sortieren in Spalte A ("Kennzahl")
    Selection.AutoFilter
    ActiveWorkbook.Worksheets("Daten1").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Daten1").AutoFilter.Sort.SortFields.Add Key:=Range _
        ("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Daten1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
' 10.  Teilergebnisse in Spalten N (14) (VK diff ges.) und Z (26) (Diff nach Verbuchung) einfügen. Gruppieren nach: "Filiale" / Unter Verwendung von: "Summe"
    Cells.Select
    Application.CutCopyMode = False
    Selection.Subtotal GroupBy:=6, Function:=xlSum, TotalList:=Array(14, 26), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True
' 11. Gruppierungen entfernen
    Selection.ClearOutline
' 12. Spalte G markieren und eine Spalte einfügen.
    Columns("G:G").Insert Shift:=xlToRight
' 13. Mit der Formel Links nur die 8 Stelligen Filialnummern anzeigen lassen. Dann werden die Filialnummern kopiert und als Werte in Spalte F (6) eingefügt.
'     Dies soll dazu dienen, das Wort "Ergebnis" in den Ergebniszeilen (Teilergebnis) zu entfernen.
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "=+LEFT(RC[-1],8)"
    Range("G2").AutoFill Destination:=Range("G2:G" & letzteZeile)
    Range("G2:G" & letzteZeile).Copy
    Range("F2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
' 14. Spalte G wieder entfernen
    Columns("G:G").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
' 15. Nach Ergebniszeilen Filtern (in Spalte D (4) nach Leere Filtern)
' 16. Per Sverweis die Kennzahlen den Filialen in den Ergebniszeilen zuordnen.
   
lz = Cells(Rows.Count, 2).End(xlUp).Row
If Cells(Rows.Count, 2) <> "" Then lz = Rows.Count
  
On Error Resume Next
For z = 2 To lz
For s = 3 To 3
        Cells(z, 1).Value = WorksheetFunction.VLookup(Cells(z, 6).Value, Range("Tabelle1!A:C"), s, False)
        If Err.Number > 0 Then
            Cells(z, 1).Value = 0
            Err.Clear
        End If
    Next s
Next z
 
' 19. Spalten N/V/Z als Währung formatieren
    Range("N:N,V:V,Z:Z").Select
    Range("Z1").Activate
    Selection.NumberFormat = "#,##0.00 $"
' 20. Unnötige Spalten entfernen
    Columns("AB:AG").Delete Shift:=xlToLeft
    Range("A1").Select
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
05.03.2019 08:22:19 Emre
NotSolved
05.03.2019 09:08:33 Gast40369
NotSolved
05.03.2019 09:55:14 Emre
NotSolved
05.03.2019 14:45:34 Emre
Solved
05.03.2019 16:13:21 Ulrich
NotSolved
Blau Select nicht nötig
06.03.2019 07:02:27 Emre
NotSolved
06.03.2019 09:01:56 Ulrich
NotSolved