Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bereich von Worksheet wird nicht in anderes Workbook eingefügt
#1
Habe noch aktuell noch ein zweites Problemchen.

Ich möchte aus meinem aktuellen Workbook über einen Variablen Dateipfad einen definierten Zeilenbereich in die aktuellste Datei in einem Verzeichnis auf ein Sheet kopieren.
Das Zielworkbook soll dabei geöffnet werden und auch geöffnet bleiben.

Mein Problem liegt beim Einfügen des kopierten Bereichs, denn dieser wird einfach nicht eingefügt.
Fehler werden nicht angezeigt. Die Prozedur läuft auch in Einzelschritten komplett durch, aber mein kopierter Bereich wird einfach nicht am Zielort eingefügt.
Habe zur Sicherheit das Workbook und das Worksheet extra nochmal aktiviert aber es hat nichts gebracht.

Sieht jemand den/die Fehler?



Code:
Sub DatenexportLogistik()

    With Application
   .ScreenUpdating = True
   .EnableEvents = True
   End With

   strVerzeichnis = ThisWorkbook.Sheets("Dateipfade").Cells(6, 2).Text
   StrTyp = "*.xlsx"
   Dateiname = Dir(strVerzeichnis & StrTyp)
   Dateiname_neu = Dateiname
   Zeit = FileDateTime(strVerzeichnis & Dateiname)
   Do While Dateiname <> ""
       If Zeit < FileDateTime(strVerzeichnis & Dateiname) Then
           Zeit = FileDateTime(strVerzeichnis & Dateiname)
           Dateiname_neu = Dateiname
       End If
       Dateiname = Dir
   Loop
   
       
   Set AktuelleMappe = ActiveWorkbook
   Set objWb = Workbooks.Open(strVerzeichnis & Dateiname_neu)
   objWb.Application.AskToUpdateLinks = False
   Set objSH = objWb.Sheets(15)
   'kopiere Zelle Zelle C18 bis N18 vom Sheet auf das Sheet 15 in den Bereich G13 bis Zelle R13 in der neuesten Mappe im Verzeichnis
   AktuelleMappe.Sheets("akt. Gegenstromverfahren").Range("C18:N18").Copy
   objWb.Activate
   objSH.Activate
   objSH.Range("G13:R13").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
   
 
   Set objSH = Nothing
   Set objWb = Nothing
 
   
   Exit Sub
   

End Sub


Grüße und danke
Antworten Top
#2
Hallöchen,

wie wäre es denn mit Speichern?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
(26.05.2017, 20:41)schauan schrieb: Hallöchen,

wie wäre es denn mit Speichern?


Gute Sache :D

...hatte es hier kurz vorher wohl wieder rausgelöscht.

Code:
Sub DatenexportLogistik()
 
     With Application
    .ScreenUpdating = True
    .EnableEvents = True
    End With

    strVerzeichnis = ThisWorkbook.Sheets("Dateipfade").Cells(6, 2).Text
    StrTyp = "*.xlsx"
    Dateiname = Dir(strVerzeichnis & StrTyp)
    Dateiname_neu = Dateiname
    Zeit = FileDateTime(strVerzeichnis & Dateiname)
    Do While Dateiname <> ""
        If Zeit < FileDateTime(strVerzeichnis & Dateiname) Then
            Zeit = FileDateTime(strVerzeichnis & Dateiname)
            Dateiname_neu = Dateiname
        End If
        Dateiname = Dir
    Loop
    
        
    Set AktuelleMappe = ActiveWorkbook
    Set objWb = Workbooks.Open(strVerzeichnis & Dateiname_neu)
    objWb.Application.AskToUpdateLinks = False
    Set objSH = objWb.Sheets(15)
    'kopiere Zelle Zelle C18 bis N18 vom Sheet auf das Sheet 15 in den Bereich G13 bis Zelle R13 in der neuesten Mappe im Verzeichnis
    AktuelleMappe.Sheets("akt. Gegenstromverfahren").Range("C18:N18").Copy
    objWb.Activate
    objSH.Activate
    objSH.Range("G13:R13").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    objWb.Saved = True
   
   
    Set objSH = Nothing
    Set objWb = Nothing
   
    
    Exit Sub
    

End Sub


Das Problem ist aber dennoch ab dem Punkt, an dem eingefügt werden soll.
Speichern klappt ebensowenig wie das Einfügen.
Ich erhalte einfach keinen Fehler... alles wird auch in Einzelschritten abgesegnet und nicht übersprungen oder als Fehler markiert.
Ist die Syntax falsch?
Antworten Top
#4
Hallo,

was möchtest Du mit objWb.Saved = True erreichen? Speichern jedenfalls geht anders! Wink

Gruß Uwe
Antworten Top
#5
Hallöchen,

mal noch zur (Er-)Läuterung Smile

mit objWb.Saved = True gaukelst Du Excel nur vor, die Datei wäre gespeichert. Du benötigst
objWb.Save ...
oder
objWb.SaveAs ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Auch wenn ich den Speicherbefehl ändere; gespeichert wird es nicht.
Dies ist auch nicht meine Problematik.
Das Workbook in das hineinkopiert wird soll ohnehin geöffnet bleiben.
Speichern kann der User manuell.

Liegt ggfs. ein Fehler bei meinem Workbook- oder Worksheet-Objekt vor?

Grüße und Danke
Antworten Top
#7
Hallöchen,
In der Quelle steht im programmierten Bereich auch was drin?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
(27.05.2017, 20:18)schauan schrieb: Hallöchen,
In der Quelle steht im programmierten Bereich auch was drin?

Ja.
Keine Werte die mittels Formel (Zelle X - Zelle Y) errechnet werden.
Ich möchte lediglich die Values ohne Formel einfügen.

Grüße
Antworten Top
#9
(29.05.2017, 07:10)nedial schrieb: Ich möchte lediglich die Values ohne Formel einfügen.

Hallo,

dann brauchst Du nicht kopieren und einfügen.
Probier es mal nach folgendem Muster:

Code:
objSH.Range("G13:R13").Value = AktuelleMappe.Sheets("akt. Gegenstromverfahren").Range("C18:N18").Value


Das das mit dem Kopieren und Einfügen nicht klappt, kann auch an Ereignisroutinen liegen, die beim aktivieren oder deaktivieren der Arbeitsmappen ausgeführt werden. Hast Du so etwas in den Mappen?
Gruß Atilla
Antworten Top
#10
(29.05.2017, 10:50)atilla schrieb: Hallo,

dann brauchst Du nicht kopieren und einfügen.
Probier es mal nach folgendem Muster:

Code:
objSH.Range("G13:R13").Value = AktuelleMappe.Sheets("akt. Gegenstromverfahren").Range("C18:N18").Value


Das das mit dem Kopieren und Einfügen nicht klappt, kann auch an Ereignisroutinen liegen, die beim aktivieren oder deaktivieren der Arbeitsmappen ausgeführt werden. Hast Du so etwas in den Mappen?

Habe es mal ausprobiert. Passiert leider nichts... :/
Aber Danke! :)

Ereignisroutinen sind vorhanden. Die Abfrage zum Aktivieren der Inhalte sowie das Aktualisieren von Hyperlinks und Verknüpfungen. Diese bekomme ich auch nicht komplett abgeschaltet.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste