Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Format übertragen ohne Fehlermeldung

Format übertragen ohne Fehlermeldung
30.12.2005 18:30:51
Norman
Hallo Zusammen,
ich probier es nochmal kurz vor Jahreswechsel, vielleicht hat doch noch jemand einen Trick...
Ich komme einfach nicht weiter..hier mein (kleines großes?!?) Problem:
ich möchte das komplette Worksheetformat aus einer Datei auf ein Sheet einer anderen Datei übertragen. Hierzu habe ich in etwa den Code übernommen der beim Aufzeichnen mit dem Macrorecorder entsteht.
Eine Beispieldatei habe ich upgeloaded (bitte Command Button drücken). Es kommt immer der 'Run-time error 1004', Select method of range class failed', das Programm bleibt an der Stelle 'Cells.Select' hängen.
https://www.herber.de/bbs/user/29588.xls
Weiß jemand Rat?
Vielen Dank schonmal und ein frohes neues Jahr,
viele Gruße
Norman

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format übertragen ohne Fehlermeldung
30.12.2005 19:34:55
Herbert
hallo Norman,
das Hochladen der Mappe war umsonst,da sie ja leer war...
probiers einmal so:


Private Sub CommandButton1_Click()
Dim strMeldung As String, strTitel As String
Dim strVorschlag As String, strAntwort As String
On Error GoTo ende
strMeldung = "Datei speichern unter:"
strTitel = "Test"
strVorschlag = "Test2.xls"
strAntwort = InputBox(strMeldung, strTitel, strVorschlag)
Application.ScreenUpdating = False
Workbooks.Add
ActiveWorkbook.SaveAs "C:\" & strAntwort
With Workbooks("Test1.xls")
      .Worksheets("Sheet1").Range("A1:N109").Copy _
       Workbooks(strAntwort).Worksheets(1).Range("A1")
      .Sheets("Sheet1").Cells.Copy
      Workbooks(strAntwort).Sheets(1).[a1].PasteSpecial Paste:=xlFormats
End With
Workbooks(strAntwort).Worksheets(1).Range("A1").Select
ende:
With Application
      .CutCopyMode = False
      .ScreenUpdating = True
End With
End Sub

     
dein Code:

Private Sub CommandButton1_Click()
Dim strMeldung As String, strTitel As String
Dim strVorschlag As String, strAntwort As String
strMeldung = "Datei speichern unter:"
strTitel = "Test"
strVorschlag = "Test2.xls"
strAntwort = InputBox(strMeldung, strTitel, strVorschlag)
Workbooks.Add
ActiveWorkbook.SaveCopyAs "C:\" & strAntwort
Workbooks.Open "C:\" & strAntwort
Workbooks("Test1.xls").Worksheets("Sheet1").Range("A1:N109").Copy Destination:=Workbooks(strAntwort).Worksheets("Sheet1").Range("A1:N109")
Workbooks("Test1.xls").Activate
Cells.Select
Selection.Copy
Workbooks(strAntwort).Activate
Cells.Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub

gruß Herbert
Anzeige
AW: Format übertragen ohne Fehlermeldung
30.12.2005 20:20:34
schoentalegg
Hallo Norman
Etwas ist mir unlogisch. Wenn Du schon eine Kopie deiner Exceldatei speicherst, wofür musst du dann noch einen Zellbereich hineinkopieren und das Format übertragen? Test2.xls ist ja schon ein Klon deiner Datei. Unlogisch ist für mich auch, wieso Du eine Datei öffnest, ohne dann etwas damit zu machen (Workbook.Add scheint mir überflüssig zu sein)
Ich habe trotzdem mal daran herumgebastelt:
Grundsätzlich muss ich sagen der Code ist nicht sehr dynamisch. Wenn Du einen Namen der Tabellenblätter oder der Datei änderst, dann läuft der Code nicht mehr. So wir dauernd auf eine Test1.xls zugegriffen Deine Forumsdatei heisst aber 29588.xls. Die Tabellenblätter der Kopie heissen bei meiner deutschen Version nicht "Sheet1" sondern "Tabelle1". Also hatte ich hier schon Probleme. Ich habe das mit Sheets(1) geändert, du kannst das dann wieder zurückmachen.
In deinem Code hast Du Probleme mit den Objekten. Zudem sind all die activate und select überflüssig. Statt workbook("xy").activate, sheets("xy").range("xy").select, selection copy kannst du auch schreiben workbook("xy").sheets("xy").range("xy").copy
VBA braucht die Zellen nicht zu selektieren, um sie bearbeiten zu können. Wenn Du dann die Workbooks und Tabellenblätter noch in Variablen verpackst (Dim wkb2 as workbook, set wkb2 = workbook("test2.xls")) wird alles nochmals übersichtlicher und deine Probleme mit den Objekten verschwinden.
Ich bin nur Hobby-Anwender und traute mich zu antworten, weil dir bisher niemand geschrieben hat. Ein Profi würde meinen Code wahrscheinlich noch anders schreiben. Probier ihn einfach mal aus.

Private Sub CommandButton1_Click()
Dim strMeldung As String, strTitel As String
Dim strVorschlag As String, strAntwort As String
Dim wkb1 As Workbook, wkb2 As Workbook
Dim wks1 As Worksheet, wks2 As Worksheet
'Objektvariablen immer mit set zuweisen
Set wbk1 = ThisWorkbook
Set wks1 = ThisWorkbook.Sheets(1)
strMeldung = "Datei speichern unter:"
strTitel = "Test"
strVorschlag = "Test2.xls"
strAntwort = InputBox(strMeldung, strTitel, strVorschlag)
wbk1.SaveCopyAs "C:\" & strAntwort
Set wbk2 = Workbooks.Open("C:\" & strAntwort)
Set wks2 = wbk2.Sheets(1)
wks1.Range("A1:N109").Copy Destination:=wks2.Range("A1:N109")
wks1.Cells.Copy
wks2.Range("a1").PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub

Anzeige
AW: Format übertragen ohne Fehlermeldung
30.12.2005 20:42:00
Norman
Hallo Herbert und 'schoentalegg'
vielen lieben Dank für Eure Mühe. Ich werde es nachher ausprobieren, ich denke mit Eurer hilfe klappt es.
Zu Deinen Fragen: Zunächst ist alles denke ich sehr verwirrend, da diese Zeilen aus dem Gesamtzusammenhang herausgerissen werden mussten. Test2 ist eine Kopie einer jungfräulichen Arbeitsmappe, nicht von Test1 (-- Workbooks.Add). Von Test1 möchte ich dann nur ein Worksheet inkl. Formatierung in Test2 kopieren.
Vielen Dank schonmal, falls Euch noch was einfällt, lasst es mich bitte wissen.
Viele Grüße
Norman
nicht mehr offen...
30.12.2005 21:02:31
Forum
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige