albatros91
Goto Top

Schreiben in andere Excel-Datei macht Worksheet unsichtbar

Guten Tag!

Ich möchte von einem Makro aus in eine andere Excel-Datei schreiben. Nach dem schreiben und speichern der Daten, öffne ich die Datei manuell und muss dann sehen das die Tabellenblätter in der Datei ausgeblendet sind.

Habe mein Problem aus dem Projekt in zwei Dateien übertragen.

main.xlsm:
Schreibe in die Datei part.xlsm in das Tabellenblatt Daten an der Stelle A1 den Wert 12345 und speichere das Worbook nach Schließen der GUI.

Public wb
Public sheet

Private Sub CommandButton1_Click()
    Set wb = GetObject(ActiveWorkbook.Path & "\part.xlsm")  
    Set sheet = wb.Sheets("Daten")  
    sheet.Range("A1") = "12345"  
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    wb.Close SaveChanges:=True
End Sub

Eine weitere Datei namens part.xlsm, wo das Tabellenblatt Tabelle1 in Daten umbenannt ist.

Ich habe im Internet nach verschiedenen Möglichkeiten gesucht das Tabellenblatt wieder sichtbar zu machen.

Bisher das hier gefunden, was leider nicht klappt.
sh.Visible = True
sh.Cells.EntireRow.Hidden = False
sh.Cells.EntireColumn.Hidden = False

Diesen oberen Code habe ich in part.xlsm eingebaut, damit der beim Öffnen ausgeführt wird.
Private Sub Workbook_Open()
    Debug.Print ("Workbook_Open")  
    ThisWorkbook.Sheets("Daten").Visible = True  
    
    ThisWorkbook.Sheets("Daten").Cells.EntireRow.Hidden = False  
    ThisWorkbook.Sheets("Daten").Cells.EntireColumn.Hidden = False  
End Sub
Anhand von der Ausgabe "Workbook_Open" sehe ich auch das der Code ausgeführt wird.

Einzige Lösung die ich bisher habe ist das hier: Ansicht -> Einblenden -> Arbeitsmappe auswählen und auf OK klicken. Diese Lösung hätte ich gerne als Code.

Hoffe das jemand von euch eine Lösung für mein Problem hat.

Viele Grüße,
Lukas

Content-Key: 308490

Url: https://administrator.de/contentid/308490

Printed on: April 28, 2024 at 16:04 o'clock

Member: Meierjo
Solution Meierjo Jun 29, 2016 at 13:44:50 (UTC)
Goto Top
Hallo

Einzige Lösung die ich bisher habe ist das hier: Ansicht -> Einblenden -> Arbeitsmappe auswählen und auf OK klicken. Diese Lösung hätte ich gerne als Code.

Sub Makro1()
    Windows("Arbeitsmappe.xlsx").Visible = True  
End Sub

Hiermit wird die Arbeitsmappe eingeblendet.
Also sollte doch irgendwo in deinem Code ein Schnipsel Windows("Arbeitsmappe.xlsx").Visible = False sein.

Ansonsten vielleicht mal die Arbeitsmappe zum Download bereitstellen


Gruss
Mitglied: 116301
116301 Jun 29, 2016 at 13:50:59 (UTC)
Goto Top
Hallo!

Nach dem schreiben und speichern der Daten, öffne ich die Datei manuell und muss dann sehen das die Tabellenblätter in der Datei ausgeblendet sind.
Yepp, GetObject ist nur zum Lesen von Excel-Dateien geeignet. Zum Schreiben musst Du die Datei per Workbooks.Open öffnenface-wink

Gruß Dieter
Member: Albatros91
Albatros91 Jun 29, 2016 at 13:59:02 (UTC)
Goto Top
Hallo!

Okay vielen Dank, zwar wird dadurch schon beim Schreiben das Worbook sichtbar. Möchte dies aber erst beim manuellen Öffnen sichtbar machen, werde das noch lösen können.

Also beim Beispiel habe ich das mit Visible = False nicht drinnen, es sieht dann wohl so aus das durch das Schließen und Speichern der Datei das Workbook ausgeblendet wird.

Vielen Dank und schönen Tag noch,
Lukas
Mitglied: 116301
Solution 116301 Jun 29, 2016 at 14:10:34 (UTC)
Goto Top
Hallo Lukas!

Wenn Du die Datei unsichtbar bearbeiten willst, dann kannst Du dies per neuer Excel-Instanz bewerkstelligen:
Set objExcelApp = CreateObject("Excel.Application")  'Standard Visible = False  

'Öffnen  
Set objWks = objExcelApp.Workbooks.Open(....).Sheets(1)

'Speichern/Schließen  
objWks.Parent.Close True
objExcelApp.Quit
Gruß Dieter
Member: Albatros91
Albatros91 Jun 29, 2016 at 16:01:29 (UTC)
Goto Top
Hey,

@116301 Vielen Dank, das gefällt mir besser.

Gruß,
Lukas