AW: Bitte dringen mal schauen
21.09.2006 21:48:41
fcs
Hallo Walter,
da ist mir leider noch ein kleiner Lapsus passiert. Bei Angabe von Zellbereichen muß im Code jeweils noch ".Value" hinter der Range angegeben werden, damit die Werte übertragen werden.
Ich hab die Tabellen jetzt mal bei mir nachgebaut und es funktioniert. Wenn das Makro gestartet wird muss die Arbeitsmappe aktiv sein, in der sich das Sheet "Matrix-DCVD" befindet!!
Gruss
Franz
Makro schaut dann so aus:
Sub VF_Altersübersicht_Laufende_Kopieren()
'Application.ScreenUpdating = False
Dim wbVFAlter As Workbook, wb As Workbook, wbAktiv
Set wbAktiv = ActiveWorkbook
For Each wb In Workbooks
If wb.Name = "1_VF-Altersstruktur-RR.xls" Then
Set wbVFAlter = Workbooks("1_VF-Altersstruktur-RR.xls")
Exit For
End If
Next wb
If wbVFAlter Is Nothing Then
Set wbVFAlter = Workbooks.Open("C:\1_PKW_Verkauf_Verkäufer\1_VF-Altersstruktur-RR.xls")
End If
wbAktiv.Sheets("Matrix-DCVD").Unprotect (getStrPasswort)
'--- Kopieren von Muster in 00 der Datei 1_VF-Alter.XLS ------------
Select Case wbAktiv.Sheets("Matrix-DCVD").Range("CN31").Value
Case 0
'wbVFAlter.Sheets("Center 00").Range("D10").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39").Value
wbVFAlter.Sheets("Center 00").Range("D10:D46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75").Value
wbVFAlter.Sheets("Center 00").Range("G10:G46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75").Value
wbVFAlter.Sheets("Center 00").Range("J10:J46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75").Value
wbVFAlter.Sheets("Center 00").Range("M10:M46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75").Value
wbVFAlter.Sheets("Center 00").Range("P10:P46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75").Value
Case 1
'wbVFAlter.Sheets("Center 01").Range("D10").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39").Value
wbVFAlter.Sheets("Center 01").Range("D10:D46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75").Value
wbVFAlter.Sheets("Center 01").Range("G10:G46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75").Value
wbVFAlter.Sheets("Center 01").Range("J10:J46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75").Value
wbVFAlter.Sheets("Center 01").Range("M10:M46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75").Value
wbVFAlter.Sheets("Center 01").Range("P10:P46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75").Value
Case 3
'wbVFAlter.Sheets("Center 03").Range("D10").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39").Value
wbVFAlter.Sheets("Center 03").Range("D10:D46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75").Value
wbVFAlter.Sheets("Center 03").Range("G10:G46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75").Value
wbVFAlter.Sheets("Center 03").Range("J10:J46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75").Value
wbVFAlter.Sheets("Center 03").Range("M10:M46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75").Value
wbVFAlter.Sheets("Center 03").Range("P10:P46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75").Value
Case 4
'wbVFAlter.Sheets("Center 04").Range("D10").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39").Value
wbVFAlter.Sheets("Center 04").Range("D10:D46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75").Value
wbVFAlter.Sheets("Center 04").Range("G10:G46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75").Value
wbVFAlter.Sheets("Center 04").Range("J10:J46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75").Value
wbVFAlter.Sheets("Center 04").Range("M10:M46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75").Value
wbVFAlter.Sheets("Center 04").Range("P10:P46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75").Value
Case 5
' wbVFAlter.Sheets("Center 04").Range("D10").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39").Value
wbVFAlter.Sheets("Center 05").Range("D10:D46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75").Value
wbVFAlter.Sheets("Center 05").Range("G10:G46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75").Value
wbVFAlter.Sheets("Center 05").Range("J10:J46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75").Value
wbVFAlter.Sheets("Center 05").Range("M10:M46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75").Value
wbVFAlter.Sheets("Center 05").Range("P10:P46").Value = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75").Value
Case Else
'do nothing
End Select
Application.ScreenUpdating = True
End Sub
Die von mir bevorzugte Variante, wenn bei allen Case-Fällen die gleichen Zellen in die gleichen Zellen einer Zieltabelle übertragen werden sollen, sieht dann mit Subroutine so aus:
Sub Variante_VF_Altersübersicht_Laufende_Kopieren()
Application.ScreenUpdating = False
Dim wbVFAlter As Workbook, wb As Workbook, wbAktiv
Set wbAktiv = ActiveWorkbook
For Each wb In Workbooks
If wb.Name = "1_VF-Altersstruktur-RR.xls" Then
Set wbVFAlter = Workbooks("1_VF-Altersstruktur-RR.xls")
Exit For
End If
Next wb
If wbVFAlter Is Nothing Then
Set wbVFAlter = Workbooks.Open("C:\1_PKW_Verkauf_Verkäufer\1_VF-Altersstruktur-RR.xls")
End If
wbAktiv.Sheets("Matrix-DCVD").Unprotect (getStrPasswort)
'--- Kopieren von Muster in 00 der Datei 1_VF-Alter.XLS ------------
Select Case wbAktiv.Sheets("Matrix-DCVD").Range("CN31").Value
Case 0
Call WerteUebertragen(wbVFAlter.Sheets("Center 00"), wbAktiv.Sheets("Matrix-DCVD"))
Case 1
Call WerteUebertragen(wbVFAlter.Sheets("Center 01"), wbAktiv.Sheets("Matrix-DCVD"))
Case 3
Call WerteUebertragen(wbVFAlter.Sheets("Center 03"), wbAktiv.Sheets("Matrix-DCVD"))
Case 4
Call WerteUebertragen(wbVFAlter.Sheets("Center 04"), wbAktiv.Sheets("Matrix-DCVD"))
Case 5
Call WerteUebertragen(wbVFAlter.Sheets("Center 05"), wbAktiv.Sheets("Matrix-DCVD"))
Case Else
'do nothing
End Select
Application.ScreenUpdating = True
End Sub
Private Sub WerteUebertragen(wksVFAlterNr As Worksheet, wksMatrix As Worksheet)
' wksVFAlterNr.Range("D10") = wksMatrix.Range("CD39")
wksVFAlterNr.Range("D10:D46").Value = wksMatrix.Range("CD39:CD75").Value
wksVFAlterNr.Range("G10:G46").Value = wksMatrix.Range("CG39:CG75").Value
wksVFAlterNr.Range("J10:J46").Value = wksMatrix.Range("CJ39:CJ75").Value
wksVFAlterNr.Range("M10:M46").Value = wksMatrix.Range("CM39:CM75").Value
wksVFAlterNr.Range("P10:P46").Value = wksMatrix.Range("CP39:CP75").Value
End Sub