Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Was habe ich den HIER Falsch?

Was habe ich den HIER Falsch?
20.09.2006 16:48:07
WalterMB
Hallo,
habe folgende Testzeile als Makro, welches ich später ersetzen möchte.
Aber zuerst möchte ich gern die Datei:
"1_VF-Alter.XLS" ob diese schon geöffnet ist,
damit ich kopieren kann. Wenn nicht geöffnet ist, soll Sie aus dem
Verzeichnis "C:\VF-Übersicht" geholt werden.

Sub VF_Kopieren()
Dim wsVFAlter As Workbook
Set wsVFAlter = Worksheets("1_VF-Alter.XLS")
'--- Kopieren von Muster in 00 der Datei 1_VF-Alter.XLS ------------
wsVFAlter.Sheets("00").Range("D10") = Sheets("Matrix-DCVD").Range("CD39")
End Sub

gruß WalterMB

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Was habe ich den HIER Falsch?
20.09.2006 16:53:38
Norbert
Vielleicht nicht die eleganteste Lösung, aber funktioniert:
offen = "Nein"
For Each j In Workbooks
If j.Name = "1_VF-Alter.XLS" Then
offen = "Ja"
End If
Next j
If offen = "Nein" Then
Workbooks.Open FileName:= _
"C:\VF-Übersicht\1_VF-Alter.XLS"
End If
Bin erst später
20.09.2006 17:11:11
WalterMB
Hallo Norbert,
bin erst später wieder da und werde testen,
Danke vorerst.
mfg WalterMB
AW: Was habe ich den HIER Falsch?
20.09.2006 16:56:17
Dan
Hi,
Dim wsVFAlter As Workbook
Set wsVFAlter = Worksheets("1_VF-Alter.XLS") : wsVFAlter ist als Workbook deklariert, es sollte warscheinlich Workbooks("1_VF-Alter.XLS") heissen.
Gruss Dan
Anzeige
Noch nicht...
20.09.2006 17:10:06
WalterMB
Hallo Dan,
Ich kopiere von der Mappe: "Ergebnis" aus der Sheet:
Sheets("Matrix-DCVD").Range("CD39")
in die Mappe: ("1_VF-Alter.XLS")Sheets("00").Range("D10"
gruß WalterMB
AW: Was habe ich den HIER Falsch?
20.09.2006 17:18:16
Dan
Wenn Du wissen wils, ob eine bestimmte Datei geoeffnet worden ist (d.h. befindet sich in der 'Workbooks-Collection), kanns Du es z.B. so machen:
dim Datei as workbook
err.clear
set Datei = workbooks("Deine_datei.xls")
if (err.number = 0) then
' datei ist geoeffnet
else
set datei = workbooks.open("Deine_datei.xls")
end if
AW: Was habe ich den HIER Falsch?
20.09.2006 17:20:32
Dan
Eh nicht,
on error resume next.... das habe ich vergessen :-)
dim Datei as workbook
err.clear
set Datei = workbooks("Deine_datei.xls")
if (err.number = 0) then
' datei ist geoeffnet
else
set datei = workbooks.open("Deine_datei.xls")
end if
Anzeige
AW: Was habe ich den HIER Falsch?
20.09.2006 17:08:03
fcs
Hallo Walter,
überprüfen und ggf. öffnen schaut etwa so aus:

Sub VF_Kopieren()
Dim wbVFAlter As Workbook, wb As Workbook, wbAktiv
Set wbAktiv = ActiveWorkbook
For Each wb In Workbooks
If wb.Name = "1_VF-Alter.XLS" Then
Set wbVFAlter = Workbooks("1_VF-Alter.XLS")
Exit For
End If
Next wb
If wbVFAlter Is Nothing Then
Set wbVFAlter = Workbooks.Open("C:\VF-Übersicht\1_VF-Alter.XLS")
End If
'--- Kopieren von Muster in 00 der Datei 1_VF-Alter.XLS ------------
wbVFAlter.Sheets("00").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
End Sub

Gruß
Franz
Anzeige
Das sieht ja..
20.09.2006 17:19:03
WalterMB
Hallo Franz,
das sieht Profimäßig aus.
Kann man noch eine Frage stellen:?
Wenn ich die Daten aus der Sheets("Matrix-DCVD").Range("CD39") kopiere, sollen
die Daten erst kopiert werden wenn in Sheets("Matrix-DCVD").Range("CD31")="1" steht sollen die Daten in die wsVFAlter.Sheets 00 kopiert werden, steht in CD31 "0" steht in der wsVFAlter.Sheets 01 kopiert werden. Wenn "3" sollen die Daten in "03", "4" in 04 und "5" in die wsVFAlter.Sheets 05 kopiert werden.
mfg Walter MB
AW: Das sieht ja..
20.09.2006 22:09:19
fcs
Hallo Walter,
ergänze das Makro wie folgt, um entsprechend dem Zellwert in verschiedene Blätter zu kopieren:

Sub VF_Kopieren()
Dim wbVFAlter As Workbook, wb As Workbook, wbAktiv
Set wbAktiv = ActiveWorkbook
For Each wb In Workbooks
If wb.Name = "1_VF-Alter.XLS" Then
Set wbVFAlter = Workbooks("1_VF-Alter.XLS")
Exit For
End If
Next wb
If wbVFAlter Is Nothing Then
Set wbVFAlter = Workbooks.Open("C:\VF-Übersicht\1_VF-Alter.XLS")
End If
'--- Kopieren von Muster in 00 der Datei 1_VF-Alter.XLS ------------
Select Case wbAktiv.Sheets("Matrix-DCVD").Range("CD31").Value
Case 0
wbVFAlter.Sheets("01").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
Case 1
wbVFAlter.Sheets("00").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
Case 3
wbVFAlter.Sheets("03").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
Case 4
wbVFAlter.Sheets("04").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
Case 5
wbVFAlter.Sheets("05").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
Case Else
'do nothing
End Select
End Sub

Gruss
Franz
Anzeige
Ja bitte noch einmal
21.09.2006 09:03:21
WalterMB
Guten Morgen Franz,
herzlichen Dank für die bisheriger Unterstützung.
Ich habe jetzt gerade festgesetllt das ich wohl falsche Information gegeben habe.
Es sind ca. 200 ! Zeilen die dann in die entsprechende Sheet kopiert werden sollen
und das jedesmal bei ==, 01, 03, 04 und 05 !
Jetzt müßte ich ja 200 mal 5 ! ca. 1000 Makro Zeilen Schreiben.
Frage:
Kann man das nicht irgendwie hinkriegen das, wenn die:
Select Case wbAktiv.Sheets("Matrix-DCVD").Range("CD31").Value
00, 01, 03 04 oder 05 steht, Automatisch die Sheet entsprechend 00, 01, 03 04 oder 05
"angesprochen" wird ?
mfg WalterMB
Anzeige
Info
21.09.2006 09:29:29
WalterMB
Hallo Franz,
habe gerade getestet, funktioniert soweit, allerdings, wenn die Datei geöffnet ist,
kommt ein Hinweis "wenn wieder geöffnet wird gehen Daten verloren etc."
gruß WalterMB
AW: Info
21.09.2006 12:45:56
fcs
Hallo Walter,
mit der Fehlermeldung komme ich nicht ganz klar. Starte das Makro im Schritt-Modus, dann mit Taste F8 zeilenweise das Makro abarbeiten und beschreibe genau in welcher Zeile der Fehler auftritt und beobachte ob die if-Bedingungen korrekt abgearbeitet wird.
Ggf im Makro in der Zeile

If wb.Name = "1_VF-Alter.XLS" Then

den Dateinamen so schreiben, wie er in Excel im Titelfenster bzw. im Menü "Fenster" angezeigt wird oder die Alternative im Makro verwenden.
Das Makro kannst du so anpassen, dass die Übertragung der Werte in einer Subroutine abgearbeitet wird. Das Hauptmakro übergibt dabei die Sheet-Namen als Variablen an die Subroutine. So muss du die Zeilen nur einmal schreiben. Du muss auch nicht jede Zelle einzeln übertragen. Du kannst z.B. auch zusammenhängende Zellen immer in einer Anweisung übertragen oder die Zellen in einer Schleife übertragen. Ich hab dir ein paar Beispiele eingebaut.
Gruß
Franz

Sub VF_Kopieren()
Dim wbVFAlter As Workbook, wb As Workbook, wbAktiv
Set wbAktiv = ActiveWorkbook
For Each wb In Workbooks
If wb.Name = "1_VF-Alter.XLS" Then ' hier ggf. Dateinamen anders schreiben z.B. "1_VF-Alter.xls"
'oder nachfolgende Zeile als Alternative verwenden
'    If UCase(wb.Name) = "1_VF-ALTER.XLS" Then
Set wbVFAlter = Workbooks("1_VF-Alter.XLS")
Exit For
End If
Next wb
If wbVFAlter Is Nothing Then
Set wbVFAlter = Workbooks.Open("C:\VF-Übersicht\1_VF-Alter.XLS")
End If
'--- Kopieren von Muster in 00 der Datei 1_VF-Alter.XLS ------------
Select Case wbAktiv.Sheets("Matrix-DCVD").Range("CD31").Value
Case 0
Call WerteUebertragen(wbVFAlter.Sheets("01"), wbAktiv.Sheets("Matrix-DCVD"))
Case 1
Call WerteUebertragen(wbVFAlter.Sheets("00"), wbAktiv.Sheets("Matrix-DCVD"))
Case 3
Call WerteUebertragen(wbVFAlter.Sheets("03"), wbAktiv.Sheets("Matrix-DCVD"))
Case 4
Call WerteUebertragen(wbVFAlter.Sheets("04"), wbAktiv.Sheets("Matrix-DCVD"))
Case 5
Call WerteUebertragen(wbVFAlter.Sheets("05"), wbAktiv.Sheets("Matrix-DCVD"))
Case Else
'do nothing
End Select
End Sub
Private Sub WerteUebertragen(wksVFAlterNr As Worksheet, wksMatrix As Worksheet)
'Wert einer einzelnen Zelle übertragen
wksVFAlterNr.Range("D10") = wksMatrix.Range("CD39")
'Wert eines Zellbereiches übertragen, beide Bereiche müssen die gleiche Anzahl Zeilen und Spalten haben!
wksVFAlterNr.Range("D11:J20") = wksMatrix.Range("CD40:CJ49")
'Werte aus einem Zellbereich mit einer Schleife übertragen, aber nur jede 2. Zeile
For Zeile = 50 To 60 Step 2
For Spalte = 4 To 10
wksVFAlterNr.Cells(Zeile, Spalte) = wksMatrix.Cells(Zeile + 29, Spalte + 52)
Next Spalte
Next Zeile
End Sub

Anzeige
Hallo Fehlermeldung weg
21.09.2006 13:56:26
WalterMB
Hallo FRanz,
mußte tatsächlich war wohl der Name Falsch, habe entsprechend meiner entgültigen "Verfassung" umbenannt, da war wohl mein Fehler.
2. Ich versuche jetzt die Daten Gesamt zu kopieren, habe das irgendwie noch nicht verstanden,
mfg WalterMB
Bitte dringen mal schauen
21.09.2006 14:49:04
WalterMB
Hallo Franz,
habe mal das Makro fertig gemacht, funktioniert bei natürlich nicht.
Das Thema Fehlermeldung ist ja erledigt.
Kannst Du mal schauen was ich hier entsprechend ändern muß ?
Habe jetzt die entsprechenden Zeilen/Spalten etc. die kopiert werden sollen reingesetzt.

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") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
wbVFAlter.Sheets("Center 00").Range("D10:D46") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75")
wbVFAlter.Sheets("Center 00").Range("G10:G46") = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75")
wbVFAlter.Sheets("Center 00").Range("J10:J46") = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75")
wbVFAlter.Sheets("Center 00").Range("M10:M46") = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75")
wbVFAlter.Sheets("Center 00").Range("P10:P46") = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75")
Case 1
'wbVFAlter.Sheets("Center 01").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
wbVFAlter.Sheets("Center 01").Range("D10:D46") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75")
wbVFAlter.Sheets("Center 01").Range("G10:G46") = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75")
wbVFAlter.Sheets("Center 01").Range("J10:J46") = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75")
wbVFAlter.Sheets("Center 01").Range("M10:M46") = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75")
wbVFAlter.Sheets("Center 01").Range("P10:P46") = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75")
Case 3
'     wbVFAlter.Sheets("Center 03").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
wbVFAlter.Sheets("Center 03").Range("D10:D46") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75")
wbVFAlter.Sheets("Center 03").Range("G10:G46") = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75")
wbVFAlter.Sheets("Center 03").Range("J10:J46") = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75")
wbVFAlter.Sheets("Center 03").Range("M10:M46") = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75")
wbVFAlter.Sheets("Center 03").Range("P10:P46") = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75")
Case 4
'     wbVFAlter.Sheets("Center 04").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
wbVFAlter.Sheets("Center 04").Range("D10:D46") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75")
wbVFAlter.Sheets("Center 04").Range("G10:G46") = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75")
wbVFAlter.Sheets("Center 04").Range("J10:J46") = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75")
wbVFAlter.Sheets("Center 04").Range("M10:M46") = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75")
wbVFAlter.Sheets("Center 04").Range("P10:P46") = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75")
Case 5
'     wbVFAlter.Sheets("Center 05").Range("D10") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39")
wbVFAlter.Sheets("Center 05").Range("D10:D46") = wbAktiv.Sheets("Matrix-DCVD").Range("CD39:CD75")
wbVFAlter.Sheets("Center 05").Range("G10:G46") = wbAktiv.Sheets("Matrix-DCVD").Range("CG39:CG75")
wbVFAlter.Sheets("Center 05").Range("J10:J46") = wbAktiv.Sheets("Matrix-DCVD").Range("CJ39:CJ75")
wbVFAlter.Sheets("Center 05").Range("M10:M46") = wbAktiv.Sheets("Matrix-DCVD").Range("CM39:CM75")
wbVFAlter.Sheets("Center 05").Range("P10:P46") = wbAktiv.Sheets("Matrix-DCVD").Range("CP39:CP75")
Case Else
'do nothing
End Select
Application.ScreenUpdating = True
End Sub

Danke im voraus,
mfg WalterMB
Anzeige
Habe die Lösung !!!!!!!!!!!!!!!!!!!!!!!!!!
21.09.2006 21:24:15
WalterMB
Guten Abend Franz,
ich habe die Lösung:wbVFAlter.Sheets("Center 00").Range("D10:D46").Value =
wbAktiv.Sheets("Matrix-DCVD").Range("CD39:cd75").Value
habe gerade getestet, funktioniert.
Herzlichen Dank für die Unterstützung !
mfg WalterMB
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

Anzeige
Danke o.t.
22.09.2006 08:55:52
WalterMB
Guten Morgen Franz,
habe ja gestern Abend geschrieben, mal probiert etc. und entsprechend auch das
"Value" gefunden.
Werde deine andere "kürzere" Lösung ebenfalls testen !
Danke für ALLES
mfg WalterMB

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige