ScreenUpdating
#1
Hallo liebes Forum,
ich hätte eine für Euch wahrscheinlich simple Frage.
Wie kann ich verhindern, dass eine geöffnete Datei am Bildschirm erscheint.

So funktioniert es leider nicht:

Application.ScreenUpdating = False
Workbooks.Open Filename:=strPath & strFile


Danke für Eure Hilfe.
Liebe Grüße
Helmut
Top
#2
Warum möchtest du die Datei öffnen und sie aber dann nicht sehen? Welchem Zweck soll das dienen?
Top
#3
Weil dadurch eine Berechnung durchgeführt wird, die  mit Öffnen der Datei erfolgt,  in der ungeöffneten Datei aber noch nicht vorhanden ist,
da er erst aus einer anderen ungeöffneten Datei ausgelesen wird.
Klingt wahrscheinlich kompliziert.
Danke für die Mühe.
LG Helmut
Top
#4
Hallöchen,

eine Suche hier im Forum nach workbook.open bringt unter anderem diesen Thread:
http://www.clever-excel-forum.de/Thread-...kbook.open
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • heli
Top
#5
Hallo,

der "übliche" W eg ist:

Code:
with GetObject(Pfad & Name & ".xlsx")

Die Datei soll dann NICHT gespeichert werden, da sie sonst beim nächsten Öffnen wieder "unsichtbar" ist.

Alternativ geht auch "normal" öffnen und Windows(1).visible = false.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • heli
Top
#6
Hallo heli,

ich poste mal einen Code den ich benutze um eine Datei auszuwählen, die dann im Hintergrund geöffnet wird, Daten kopiert und in meine aktuelle Datei eingefügt werden und anschließend wird die unsichtbar geöffnete Datei wieder ohne speichern geschlossen.

Code:
Private Sub DatenLaden()
Dim MyFile As Variant

   'Bildschirmaktualisierung aus
   Application.ScreenUpdating = False

   ' Manuelle Suche nach DatenDatei
   
   ' Prüft ob schon Daten importiert sind
   If Not Range("Start!A113").Value = "" Then
   AchtungDatenschonImportiert.Show
   Else
   ' Öffnet Dialog zum Suchen der Datei der DatenDatei
       MsgBox "Bitte wähle die aktuelle DatenDatei (*.xls-Datei)"

 
   ' "Excel (*.xls), *.xls" beschränkt die Dateiauswahl auf XLS Dateien
   MyFile = Application.GetOpenFilename("Excel (*.xls), *.xls")
       
       If Not MyFile = False Then
       Workbooks.Open (MyFile)
       Else
       Exit Sub
       End If
   ' Kopiert alle Zellen und kopiert sie in "Start"
   Range("A1:Z1000").Copy
   ThisWorkbook.Worksheets("Start").Range("A100").PasteSpecial xlPasteValues
   
   ' Speichert nicht und schließt die geöffnete Datei, DisplayAlerts deaktiviert kurzzeitig die Nachfrage nach Speichern
   Application.DisplayAlerts = False
   ActiveWorkbook.Close SaveChanges:=False
   Application.DisplayAlerts = True
   

Du wirst diesen Code nochmal anpassen müssen, aber ich denke der Umriss zeigt dir wie du verfahren kannst.

Grüße
Martin
[-] Folgende(r) 1 Nutzer sagt Danke an kliffi01 für diesen Beitrag:
  • heli
Top
#7
@Kliifi

Diese Code reicht schon aus:

Code:
Sub M_snb()
  With Application.FileDialog(1)
     If .Show Then ThisWorkbook.Sheets(1).Range("A1:A100") = GetObject(.SelectedItems(1)).Sheets(1).Range("A1:A100").Value
  End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • heli
Top
#8
Hallo,

ich bedanke mich bei allen, die einen Beitrag gesendet haben.

Liebe Grüße Helmut
Top


Gehe zu:


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