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

In With - end with Fehler 1004

In With - end with Fehler 1004
08.12.2015 01:23:20
Peter
Liebe Experten,
ich bitte Euch um Eure Hilfe.
Wie muß ich meinen Teil-Code ändern damit er ohne Fehler durchläuft?
With ws
Sheets("Protokoll").Select
.Cells(6, ls + 1) = Muster
.Range(.Cells(6, ls), .Cells(lz, ls)).Select => Ab hier ist der
Fehler 1004: Die Select-Methode des Range-Objektes konnte nicht
ausgeführt werden
Application.CutCopyMode = False
Selection.Copy
.Cells(6, ls + 1).Select
.Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
Else
.Close SaveChanges:=True
.ActiveWorkbook.Close SaveChanges:=True
End With
Vielen Dank für Eure Hilfe im voraus!
LG, Peter

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

Betreff
Datum
Anwender
Anzeige
AW: In With - end with Fehler 1004
08.12.2015 06:27:35
Matthias
Hallo Peter
Das sind leider wie so oft beim Fragesteller nur halbe Codes, die hier gezeigt werden.

  • Was mimmt die Variable ws auf?

  • Was mimmt die Variable ls auf?

  • Was mimmt die Variable Muster auf?

  • Warum fehlt die If-Anweisung?


Vermutlich willst Du einen Bereich markieren, der nicht im aktiven Worksheet ist
Mit:
With ws
Sheets("Protokoll").Select
.Cells(6, ls + 1) = Muster
.Range(.Cells(6, ls), .Cells(lz, ls)).Select '...
Da Du Dich hier im Worksheet("Protokoll") befindest, dann aber einen Bereich
eines anderen Blattes markieren willst, kommt vermutlich der Fehler.
Fazit:
Komplette Codes zeigen, mit sauberer Variablendeklaration und der Information
wo der Code steht(DieseArbeitsmappe, Tabelle, Modul)
So ist das alles immer nur ein Ratespiel
Gruß Matthias

Anzeige
AW: In With - end with Fehler 1004
08.12.2015 23:59:00
Peter
Hallo Matthias,
danke für deine Antwort. Du hast die Sache richtig beschrieben.
Ich befinde mich in der Datei A mit dem Worsheet "Protokoll". Von hieraus wird eine Überschrift in die Datei B übertragen. In der Datei B wird dann die neue Spalte mit dem Tabellenformat formatiert.
Nach deine Antwort habe ich erstmal Ordnung in meinen Code gebracht und "mea culpa" es funktioneiert.
Jetzt habe ich nur noch ein kleines Problem. Ich möchte die Datei B, die ich in der Datei A geöffnet, speichern und schließen.

With ws
lz1 = .Cells(Rows.Count, 2).End(xlUp).Row                'letzte Zeile
'----------------------------------------------------------------------------------------------- _
'Wenn die CD in der Tabelle vorhanden ist dann wird das Makro geschlossen und die Datei B    ' _
gespeichert und geschlossen
'----------------------------------------------------------------------------------------------- _
Set c = .Range(.Cells(6, 4), .Cells(6, ls)).Find(Muster, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
Eingabe = MsgBox("Diese CD: " & Muster & " existiert noch nicht. Soll sie in die Tabelle in  _
der Datei B eingefügt werden?", vbYesNoCancel)
If Eingabe = vbYes Then
.Cells(6, ls + 1) = Muster
.Range(.Cells(6, ls), .Cells(lz, ls)).Copy
.Range(.Cells(6, ls + 1), .Cells(lz, ls + 1)).PasteSpecial Paste:=xlPasteFormats,  _
Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
Else
ws.Close SaveChanges:=True ==> Fehler beim Kompilieren: Methode oder Datenobjekt nicht  _
gefunden
ws.ActiveWorkbook.Close SaveChanges:=True  ==> Fehler beim Kompilieren: Methode oder  _
Datenobjekt nicht gefunden
End If
End With

Wie müsste der Befehl beim speichern aussehen?
Vielen dank für deine Antwort im voraus
LG, Peter

Anzeige
ws.ActiveWorkbook.Close ?
09.12.2015 10:29:26
Matthias
Hallo
Vermutlich liegts am ws
ws.Close SaveChanges:=True 'Fehler beim Kompilieren...
ws.ActiveWorkbook.Close SaveChanges:=True 'Fehler beim Kompilieren...
Du willst ja vermutlich ein WorkBook schließen, wieso steht also ws als Referenz davor?
Mit With ws meinst Du ja sicherlich ein Worksheet.
Das wird wohl den Fehler auslösen. Das sind aber nur Vermutungen.
Gruß Matthias

AW: ws.ActiveWorkbook.Close ?
09.12.2015 15:04:37
Peter
Hallo Matthias,
ich weiß nicht, ob das der richtige Weg war, aber ich habe den Befehl

ws.Close SaveChanges:=True
aus der with ws -Anweisung herausgenommen und separat eingefügt.
Jetzt läuft der Code ohne Fehlermeldung bis zum Ende.
Danke noch einmal für deine Antworten
LG, Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige