Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Select-Methode Laufzeitfehler 1004

Select-Methode Laufzeitfehler 1004
grossermanitu
Hallo per Makro rufe ich den Dialog-Datei öffen auf um eine weitere XLS zu öffnen. In dieser wird per Schleife verglichen ob die Spaltenüberschriften der geöffneten XLS mit der Ausgangs-XLS übereinstimmt. Falls dies ist, soll der Inhalt der Spalte in die Ausgangs-XLS eingefügt werden. Leider bekomme ich andauernd den Laufzeitfehler 1004 in dieser Zeile:

Worksheets("Bedarfsanfragen").Range(Cells(2, i), Cells(65536, i)).Select 'Spalte i Statusliste (filename) kopieren

Ich habe schon alles mögliche probiert bekomme aber keine Lösung. Wäre klasse wenn mir jemand kurz unter die Arme greifen könnte. Danke
Option Explicit
Private Sub CommandButton1_Click()
'Variablen deklarieren
Dim statusliste As Workbook
Dim i As Integer
Dim j As Integer
Dim readfile As String
Dim filename As String
Application.DisplayAlerts = False 'Alarm ausschalten
Application.ScreenUpdating = False 'Displayaktualisierung ausschalten
readfile = Application.GetOpenFilename("XLS-Files (*.xls),") 'Dateiöffnen-dialog aufrufen
filename = Right(readfile, Len(readfile) - InStrRev(readfile, "\")) 'Dateinamen auslesen
If IsWorkbookOpen(filename) Then 'Falls Datei schon geöffnet ist
MsgBox "Statusliste bereits geöffnet. Bitte für den Datenimport schließen."
Exit Sub
Else
Set statusliste = Workbooks.Open(readfile)
End If
'Daten Tabellenblatt Statusliste löschen
Workbooks("Bestellreport_MSP_D.xls").Worksheets("Statusliste").Range("A3:DZ65536").EntireRow. _
Delete
Workbooks("Bestellreport_MSP_D.xls").Worksheets("Statusliste").Range("A2:DZ2").ClearContents
'Daten Tabellenblatt Bestellung 2010H löschen
Workbooks("Bestellreport_MSP_D.xls").Worksheets("Bestellungen 2010H").Range("A3:DZ65536"). _
EntireRow.Delete
'Daten Tabellenblatt Bestellung 2010 löschen
Workbooks("Bestellreport_MSP_D.xls").Worksheets("Bestellungen 2010").Range("A10:DZ65536"). _
EntireRow.Delete
'Spalten Statusliste übertragen
For j = 1 To 85 'Prüfe Zelle A1, B1,... CM1 in Bestellreport
For i = 1 To 120 'mit Zelle A1, B1,... DM1 in Statusliste ob gleicher Wert
If Workbooks("Bestellreport_MSP_D.xls").Worksheets("Statusliste").Cells(1, j) = Workbooks( _
filename).Worksheets("Bedarfsanfragen").Cells(1, i) Then
Workbooks(filename).Activate
Worksheets("Bedarfsanfragen").Activate
Worksheets("Bedarfsanfragen").Range(Cells(2, i), Cells(65536, i)).Select 'Spalte i  _
Statusliste (filename) kopieren
Selection.Copy
Workbooks("Bestellreport_MSP_D.xls").Activate
Worksheets("Statusliste").Activate
Worksheets("Statusliste").Cells(2, j).Select 'In Spalte j Bestellreport einfügen
ActiveSheet.Paste
End If
Next i
Next j
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Select-Methode Laufzeitfehler 1004
01.07.2010 23:33:53
fcs
Hallo GrosserManitu,
du führst mit einer Prozedur in einem Tabellenblatt-Modul Aktionen in anderen Tabellenblättern aus. Hier beziehen sich Range und Cells ohne vorangestelltes Tabellen-Objekt immer auf das Tabellenblatt in dem der Code steht und nicht unbedingt auf das aktive Blatt. Das wird dir bei der Select-Anweisung in der anderen Datei zum Verhängnis.
In diesem Fall muss du die Range und Cell-Objekte im Code vollständig referenzieren.
Besser ist natürlich für den Kopiervorgang komplett auf Activate und Select zu verzichten.
Code-Anpasungen:
'Entweder:
Workbooks(Filename).Activate
With Worksheets("Bedarfsanfragen")
.Activate
.Range(.Cells(2, i), .Cells(65536, i)).Select 'Spalte i Statusliste (filename) kopieren
Selection.Copy
End With
Workbooks("Bestellreport_MSP_D.xls").Activate
Worksheets("Statusliste").Activate
Worksheets("Statusliste").Cells(2, j).Select 'In Spalte j Bestellreport einfügen
ActiveSheet.Paste
'oder - ohne Select und Activate
With Workbooks(Filename).Worksheets("Bedarfsanfragen")
'Spalte i Statusliste (filename) kopieren nach Spalte j Bestellreport einfügen
.Range(.Cells(2, i), .Cells(65536, i)).Copy Destination:= _
Workbooks("Bestellreport_MSP_D.xls").Worksheets("Statusliste").Cells(2, j)
End With
Gruß
Franz
Anzeige
AW: Select-Methode Laufzeitfehler 1004
02.07.2010 14:18:54
grossermanitu
Danke Franz du hast mir den Tag gerettet. Gruß Grossermanitu
AW: Select-Methode Laufzeitfehler 1004
02.07.2010 14:34:40
grossermanitu
Ich bin es nochmal.
ich möchte den Die Werte von A2 bi Z2 per autofill vervollständigen. Allein funktioniert mein 2-Zeiler allerdings im code bekomme ich wieder einen Fehler.
With Workbooks("Bestellreport_MSP_D.xls").Worksheets("Bestellungen 2010H")
.Range("A2:Z2").AutoFill Destination:=Range("A65535:Z" & Range("Z65535").End(xlUp).Row), Type:= _
xlFillDefault
End With
Diesmal habe ich es nach deiner Methode Franz umgestellt. Leider keinen Schimmer warum es nicht geht. :-(
Anzeige
AW: Select-Methode Laufzeitfehler 1004
02.07.2010 15:22:22
fcs
Hallo,
du hast wieder nicht alle Range durch einen vorangestelten Punkt zum in der With-Zeile genannten Tabellenblatt referenziert.
With Workbooks("Bestellreport_MSP_D.xls").Worksheets("Bestellungen 2010H")
.Range("A2:Z2").AutoFill Destination:=.Range("A65535:Z" & .Range("Z65535").End(xlUp).Row), Type: _
= _
xlFillDefault
End With

Gruß
Franz
Anzeige
AW: Select-Methode Laufzeitfehler 1004
02.07.2010 16:36:26
grossermanitu
Danke jetzt habe ich es endlich verstanden. Danke Franz und schönes Wochenende
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige