Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1632to1636
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

Makros auf verschieden Arbeitsblätter anwenden

Makros auf verschieden Arbeitsblätter anwenden
18.07.2018 15:27:12
ViZwi
Hallo Liebe Excel Freunde,
ich habe in Problem was meine Makros angeht (bzw. nur eines).
Ich habe eine Arbeitsmappe in welcher ich viele Daten in verschiedenen Arbeitsblättern habe. Ich möchte nun ein Makro einrichten, welches es mir ermöglicht alle Arbeitsblätter auf Knopfdruck auszuwerten und bestimmte Daten aus diesen Arbeitsblättern in ein "Sammelarbeitsblatt" zu speichern.
Die Arbeitsblätter sind alle gleich aufgebaut. Allerdings wächst meine Datenbank stetig und so würde ich gerne einen Button einrichten, welcher direkt gewünschte Daten in das Sammelblatt kopiert.
Ich bin bisher so weit gekommen:
Sub Auswertung()
' Auswertung Makro
Sheets("Auswertung Wohnen").Select
Columns("D:E").Select
Range("D3").Activate
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("F:G").Select
Range("F3").Activate
Selection.Copy Destination:=Columns("D:E")
Range("D1:E1").Select
ActiveCell.FormulaR1C1 = "=W_2!RC[-2]"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=W_2!R[8]C"
Range("D3").Select
Selection.AutoFill Destination:=Range("D3:D43"), Type:=xlFillValues
Range("D3:D43").Select
Range("B3").Select
ActiveCell.FormulaR1C1 = _
"=AVERAGE(RC[2],RC[4],RC[6],RC[8],RC[10],RC[12],RC[14],RC[16])"
Range("B3").Select
Selection.AutoFill Destination:=Range("B3:B43"), Type:=xlFillValues
Range("B3:B43").Select
End Sub
Mein Problem ist jetzt nur, dass wenn ich dieses Makro auf ein weiteres Arbeitsblatt anwende nur die werte aus der Liste W_2 bekomme und nicht aus dem neuen.
Es wäre mir eine Riesen Hilfe wenn jemand wüsste wie ich das Problem lösen könnte.
Vielen Dank
Vinc

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros auf verschieden Arbeitsblätter anwenden
18.07.2018 20:51:28
Barbaraa
Hi Vinc,
zu Deinen Code habe ich neue Zeilen hinzugefügt, die das selbe machen wie Deine Zeilen.
Deine Zeilen habe ich auskommentiert, also ausser Kraft gesetzt. Du kannst sie löschen.

Sub Auswertung_0718()
' Auswertung Makro
With Worksheets("Auswertung Wohnen")
.Columns("D:E").Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
'        Sheets("Auswertung Wohnen").Select
'        Columns("D:E").Select
'        Range("D3").Activate
'        Selection.Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Columns("F:G").Copy Destination:=Columns("D:E")
'        Range("F3").Activate
'        Selection.Copy Destination:=Columns("D:E")
.Range("D1:E1").FormulaR1C1 = "=W_2!RC[-2]"
'        Range("D1:E1").Select
'        ActiveCell.FormulaR1C1 = "=W_2!RC[-2]"
.Range("D3").FormulaR1C1 = "=W_2!R[8]C"
'        Range("D3").Select
'        ActiveCell.FormulaR1C1 = "=W_2!R[8]C"
.Range("D3").AutoFill Destination:=Range("D3:D43"), Type:=xlFillValues
'        Range("D3").Select
'        Selection.AutoFill Destination:=Range("D3:D43"), Type:=xlFillValues
'        Range("D3:D43").Select
.Range("B3:B43").FormulaR1C1 = _
"=AVERAGE(RC[2],RC[4],RC[6],RC[8],RC[10],RC[12],RC[14],RC[16])"
'        Range("B3").Select
'        ActiveCell.FormulaR1C1 = _
'            "=AVERAGE(RC[2],RC[4],RC[6],RC[8],RC[10],RC[12],RC[14],RC[16])"
'        .Range("B3").AutoFill Destination:=Range("B3:B43"), Type:=xlFillValues
'        Range("B3").Select
'        Selection.AutoFill Destination:=Range("B3:B43"), Type:=xlFillValues
.Range("B3:B43").Select
'        Range("B3:B43").Select
End With
End Sub
Setze für jedes gewünschte Arbeitsblatt oben den entsprechenden Namen ein.
Oder:
Du stellst das Makro in ein neues (also nicht in ein Arbeitsblatt-) Modul, das Du aber erst anlegen musst, und schreibst oben statt With Worksheets("Auswertung Wohnen") einfach With ActiveSheet
Dann wird das Makro auf das eben aktive Arbeitsblatt angewendet.
Klappt es?
LGB
Anzeige
AW: Makros auf verschieden Arbeitsblätter anwenden
20.07.2018 08:05:21
fcs
Hallo Vinc,
hier eine Beispiel-Datei mit 2 Varianten:
A) Es werden die Formeln für alle Blätter in der Auswertung neu eingefügt
B) Für das aktive Blatt werden die Formeln in der Auswertung ergänzt.
https://www.herber.de/bbs/user/122804.xlsm
In dem Vorschlag von Barbaraa muss der Blattname noch in die Formeln eingebaut werden.
Die Mittelwerts-Berechnung ist auf 8 Blätter begrenzt. Bei mehr Blättern musst du hier anpassen.
Gruß
Franz
Vorschlag Brabaraa-modifiziert
Sub Auswertung_0718()
' Auswertung Makro
Dim strSheet As String
strSheet = ActiveSheet.name
With Worksheets("Auswertung Wohnen")
.Columns("D:E").Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Columns("F:G").Copy Destination:=Columns("D:E")
.Range("D1:E1").FormulaR1C1 = "='" & strSheet & "'!RC[-2]"
.Range("D3").FormulaR1C1 = "='" & strSheet & "'!R[8]C"
.Range("D3").AutoFill Destination:=Range("D3:D43"), Type:=xlFillValues
.Range("B3:B43").FormulaR1C1 = _
"=AVERAGE(RC[2],RC[4],RC[6],RC[8],RC[10],RC[12],RC[14],RC[16])"
.Range("B3:B43").Select
End With
End Sub

Anzeige
AW: Makros auf verschieden Arbeitsblätter anwenden
22.07.2018 11:38:07
ViZwi
Hallo Barbaraa,
hallo fcs,
vielen Dank euch für eure Hilfe! Barbaraa ich habe das selbe festgestellt wie fcs und hab es versucht zu lösen. Ich denke aber dass ich nicht genug über VBS weiss um das zu machen.
Fsc es hat sehr gut geklappt! Tut genau dass was es soll.
Vielen Dank euch beiden.
LG
Vinc

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige