08.06.2017, 17:03
Hallo Excelfreunde,
kurze Frage zum unten stehenden VBA Code. Er dient dazu, ein das Blatt "Auswertung" mit Werten aus anderen Blättern zu aktualisieren. Der Button zum aktivieren liegt allerdings wieder auf einem anderen Blatt. Ich schaffe es leider nicht den Code so umzuschreiben, dass sich das Blatt nicht mehr aktiviert. Wie könnte ich den Code umschreiben?
Danke im Voraus!
Viele Grüße
Jonas
kurze Frage zum unten stehenden VBA Code. Er dient dazu, ein das Blatt "Auswertung" mit Werten aus anderen Blättern zu aktualisieren. Der Button zum aktivieren liegt allerdings wieder auf einem anderen Blatt. Ich schaffe es leider nicht den Code so umzuschreiben, dass sich das Blatt nicht mehr aktiviert. Wie könnte ich den Code umschreiben?
Danke im Voraus!
Viele Grüße
Jonas
Code:
Private Sub CommandButton2_Click()
Auswertung.Rows("2:65536").ClearContents
'Kopieren von Schlüssel, Projekt, MA und Anteil, wenn MA ausgefüllt'
n = 2
m = 2
Do
If Projektbeteiligte.Cells(n, 3) <> "" And Projektbeteiligte.Cells(n, 4) <> 0 Then
Projektbeteiligte.Range("A" & n & ":D" & n).Copy
Auswertung.Range("A" & m & ":D" & m).PasteSpecial xlPasteValues
If Auswertung.Cells(m, 1) <> "" Then
m = 1 + m
End If
End If
n = 1 + n
Loop Until Projektbeteiligte.Cells(n, 1) = ""
'Übereinsimmenden Schlüssel in Anlehnung an Zeitachse einfügen'
i = 2
Do
n = 2
Do
If Auswertung.Cells(n, 1) = Projektstunden.Cells(i, 1) Then
Projektstunden.Range("G" & i & ":CS" & i).Copy
Auswertung.Range("E" & n & ":CQ" & n).PasteSpecial xlPasteValues
' MA Anteilig Auswerten'
Dim MyRange As Range
Dim Cell As Range
Set MyRange = Auswertung.Range("E" & n & ":CQ" & n)
For Each Cell In MyRange
If Cell.Value <> 0 Then
Cell.Value = (Cell.Value) * (Auswertung.Cells(n, 4).Value)
Cell.Value = Round(Cell.Value, 2)
End If
Next Cell
End If
n = 1 + n
Loop Until Auswertung.Cells(n, 1) = ""
i = 1 + i
Loop Until Projektstunden.Cells(i, 1) = ""
Sheets("Tabelle2").PivotTables("PivotTable2").RefreshTable
MsgBox "Berechnung abgeschlossen!"
End Sub