Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Range - Laufzeitfehler 1004 | Herbers Excel-Forum


Betrifft: Range - Laufzeitfehler 1004 von: Space
Geschrieben am: 20.01.2010 09:26:15

Guten Morgen,

mal wieder ein kleines Problem:
Was funktioniert: Andere Excel Tabelle öffnen und variable Zeilenanzahl kopieren
Was nicht funktioniert: in der bereits geöffneten Excel Datei Zelle A14 selektieren und dort dann einfügen. Bei Range ("A14").Select kommt immmer ein Laufzeitfehler 1004
Hier mein Code:

Private Sub CommandButton12_Click()

'Excel Datei Kundendaten.xls öffnen
    Workbooks.Open Filename:= _
        "H:\Entwicklung\Software\Data Generator\Kundendaten.xls"

'Benötigte Zellen kopieren und im Tabellenblatt "Kundenkontakte" einfügen
    'Kopieren aus Kundendaten
    With Sheets("Sheet1")
    .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)).Resize(, 22).Copy
    End With
    
    'Einfügen in "Data Generator - Kundenkontakte"
    Windows("Data Generator.xls").Activate
    Sheets("Kundenkontakte").Select
    Range("A14").Select
    ActiveSheet.Paste
        
    'Schließen der Kundendaten
    Windows("Kundendaten.xls").Activate
    ActiveWindow.Close
    
    '"Data Generator" in den Vordergrund bringen
    Windows("Data Generator.xls").Activate
   
End Sub
Bitte um Unterstützung, vielen Dank!
MfG
Space

  

Betrifft: AW: Range - Laufzeitfehler 1004 von: Rudi Maintaire
Geschrieben am: 20.01.2010 09:35:08

Hallo,
probier mal:

Private Sub CommandButton12_Click()

'Excel Datei Kundendaten.xls öffnen
    Workbooks.Open Filename:= _
        "H:\Entwicklung\Software\Data Generator\Kundendaten.xls"

'Benötigte Zellen kopieren und im Tabellenblatt "Kundenkontakte" einfügen
    'Kopieren aus Kundendaten
    With Sheets("Sheet1")
    .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)).Resize(, 22).Copy
    End With
    
    'Einfügen in "Data Generator - Kundenkontakte"
    Workbooks("Data Generator.xls").Sheets("Kundenkontakte").Range("A14").Paste
        
    'Schließen der Kundendaten
    Workbooks("Kundendaten.xls").Close
    
    '"Data Generator" in den Vordergrund bringen
    Workbooks("Data Generator.xls").Activate
   
End Sub

Gruß
Rudi


  

Betrifft: AW: Range - Laufzeitfehler 1004 von: Space
Geschrieben am: 20.01.2010 09:41:33

Hallo Rudi,

bei deiner Lösung kommt an der Stelle:

'Einfügen in "Data Generator - Kundenkontakte"
Workbooks("Data Generator.xls").Sheets("Kundenkontakte").Range("A14").Paste

der Laufzeitfehler 438 - Objekt unterstützt die Eigenschaft oder Methode nicht

Gruß
Space


  

Betrifft: AW: Range - Laufzeitfehler 1004 von: Rudi Maintaire
Geschrieben am: 20.01.2010 10:10:05

Hallo,
dann vllt. so:

Private Sub CommandButton12_Click()
 Dim wks As Worksheet
 'Excel Datei Kundendaten.xls öffnen
     Set wks = Workbooks.Open(Filename:= _
         "H:\Entwicklung\Software\Data Generator\Kundendaten.xls").Sheets("Sheet1")
 
 'Benötigte Zellen kopieren und im Tabellenblatt "Kundenkontakte" einfügen
     'Kopieren aus Kundendaten
     With wks
     .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)).Resize(, 22).Copy _
        Workbooks("Data Generator.xls").Sheets("Kundenkontakte").Range("A14")
     End With
              
     'Schließen der Kundendaten
     wks.Parent.Close
     
     '"Data Generator" in den Vordergrund bringen
     Workbooks("Data Generator.xls").Activate
    
 End Sub

Gruß
Rudi


  

Betrifft: AW: Range - Laufzeitfehler 1004 von: Space
Geschrieben am: 20.01.2010 10:37:16

Super, hat bestens geklappt!!

Kannst du mir in knappen Worten sagen, wie du das mit den Workbooks gemacht hast und warum "wks.Parent.Close" das richtige Excel Fenster schliesst?

Ach, noch eine Frage: Muss/ kann ich den zum kopieren genutzten Zwischenspeicher wieder löschen nach dem Korpiervorgang?

Danke
Gruß
Space


Beiträge aus den Excel-Beispielen zum Thema "Range - Laufzeitfehler 1004"