Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
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

Zellbereich in neue Arbeismappe

Zellbereich in neue Arbeismappe
27.10.2008 17:35:07
Karl
Hallo VBA Götter,
ich suche einen VBA Code, der beim Klick auf einen CommandButton, einen Zellbereich aus Arbeitsblatt 1, in eine andere, bereits bestehende Arbeitsmappe, in ein neues Arbeitsblatt, kopiert (ich hoffe, das ist verständlich). Allerdings sollen nur die Zellenformatierung und Werte, nicht die Formeln kopiert werden. Außerdem soll das neue Arbeitsblatt, die aktuelle Kalenderwoche als Namen haben.
Um den Bereich mal zu konkretisieren: B1 : BR54
Welche von meinen Ansprüchen sind möglich, welche nicht?
Ich habe bereits hier im Forum und im Archiv gesucht, aber leider nichts brauchbares gefunden bzw. weiß ich nicht wie ich die verschiedenen Bausteine, die ich gefunden habe z.B. Zellbereich kopieren, Arbeitsblatt bennenen etc., zusammenbauen kann.
Vielen Dank
Karl

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

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich in andere Mappe, neues Blatt
27.10.2008 18:47:00
Erich
Hallo Karl,
erst einmal ein paar Fragen:
Hat das Arbeitsblatt 1 den Namen "1" oder den Namen "Tabelle1"?
Oder soll das Makro immer aus dem ersten Tabellenblatt - unabhängig von dessen Namen - kopieren?
Ist die "andere, bereits bestehende Arbeitsmappe" offen oder muss sie erst noch geöffnet werden?
Wie heißt diese Mappe? Wenn sie noch geöffnet werden muss, sollte auch das Verzeichnis klar sein.
Wenn wir z. B. Kalenderwoche 5 haben: Soll das neue Blatt "5" oder "05" oder vielleicht "KW05" heißen?
(Zahlen als Blattnamen können leicht zu Fehlern führen, da muss man etwas besser aufpassen.)
Wohin im neuen Blatt soll kopiert werden? In den Bereich B1:BR54 oder woanders hin?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zellbereich in andere Mappe, neues Blatt
29.10.2008 16:42:08
Karl
Hallo Erich,
hier sind die Antworten auf deine Fragen:
-Die Tabelle heißt "Ressourcenplan"
-Nein, da die Mappe mehrere Arbeitsblätter hat. Es soll nur aus der Tabelle "Ressourcenplan" kopiert werden.
-Die Mappe muss geöffnet werden und heißt "Auswertungen" und der Pfad ist noch ungewiss. Nehmen wir mal für ein Beispiel: C:\Test\Auswertungen\
-Wenn es geht, dass dort "KW05" steht wäre das super.
-nach A1:BQ54... wenn es nicht geht, ist es auch nicht schlimm, wenn es B1:BR54 ist
Gruß Karl
AW: Zellbereich in andere Mappe
29.10.2008 19:52:51
Erich
Hi Karl,
der folgende Code kommt in ein normales Modul. Dann kannst du das Makro "KopieInAuswertungen"
leicht mit einer Schaltfläche aus der Formular-Symbolleiste verknüpfen:

Option Explicit
Sub KopieInAuswertungen()
Dim rngB As Range, strKW As String
'Hier stehen die Vorgaben - evtl. anpassen:
Const strVz As String = "F:\Exc\w-w-w\tmp\" '"C:\Test\Auswertungen\" ' "F:\Exc\w-w-w\tmp\"
Const strMN As String = "Auswertungen.xls"
Set rngB = ThisWorkbook.Worksheets("Ressourcenplan").Range("B1:BR54")
strKW = "KW" & Format(DIN_KW(Date), "00")
Workbooks.Open Filename:="F:\Exc\w-w-w\tmp\Auswertungen.xls"
If WorksheetEx(strKW) Then
If MsgBox("Das Blatt '" & strKW & "' bibt es bereits." & vbLf & vbLf & _
"Soll es überschrieben werden?", vbCritical + vbYesNo) = vbNo Then
Exit Sub
Else
Application.DisplayAlerts = False
Worksheets(strKW).Delete                        ' lösche altes Blatt
Application.DisplayAlerts = True
End If
End If
Worksheets.Add.Name = strKW
rngB.EntireColumn.Copy Cells(1, 1)        ' kopiere Spalten wg. der Formate
Range(rngB.Address).Offset(, 1 - rngB.Column) = rngB.Value ' Werte statt Formeln
Rows("55:" & Rows.Count).Delete                       ' lösche Zeilen > 54
End Sub
Public Function DIN_KW(datD As Date) As Integer
Dim tt As Integer
tt = (datD - 2) Mod 7 - 3
DIN_KW = (datD - DateSerial(Year(datD - tt), 1, tt - 6)) \ 7
End Function
Function WorksheetEx(strNam As String) As Boolean
On Error Resume Next
WorksheetEx = Worksheets(strNam).Index > 0
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige