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.

Pfad aus Zelle auslesen
#11
Hallo Matthias

oh oh, das wird eine schwere Geburt.  Ganz höfliche Bitte an dich, nicht böse sein.  Meinen Text bitte richtig lesen!
Ich empfahl die Klammer:  [] und ' Zeichen zu löschen!!   Dieses Zeichen NICHT löschen "\"   Das muss im Pfad unbedingt drin sein!!

Am besten zeichnest du den Öffnen Vorgang einmal manuell mit dem Makro Recorder auf, über das Menü Datei Öffnen, dann zeichnet der Recorder dir den richtigen Pfad auf. Er steht hinter Workbook Open.Pfadname:= "xxxxxx"  Diesen Pfadnamen, bitte ohne die "" Zeichen in die Zelle N25 kopieren. Dann sollte es klappen.

mfg Gast 123
Antworten Top
#12
Hallo Gast 123,


jetzt ist der Fehler weg , war - natürlich - mein Fehler.
Ja, da brauchst auch nicht höflich sein, da bin ich zu hektisch Smile

OK, jetzt wird die Datei geladen und steht im Vordergrund.

Was mir nun eigentlich noch fehlt wie lade ich die Datei unsichtbar und schließe
sie wieder wenn ich die Hauptdatei schliesse. (Nach Beendigung der Arbeit in der Hauptdatei)

Ich bekomme den Code nicht zusammen
Antworten Top
#13
Hallo Matthias

freut mich das wir mit Geduld die Sache endlich zum laufen gebracht haben!  Schön ...   den Rest schaffen wir auch noch.

Es sind zwei Makros die du an getrennten Stellen einbauen must.   Keine Sorge, das schaffen wir.  Zum 1. Makro:
Das gehört in die Hauptdatei, und zwar ins Modul "ThisWorkbbok" oder "DieseMappe".  Einfach reinkopieren, Fertig !!

Der zweite Codeteil muss im bestehenden Code ausgetauscht werden, ich denke es ist so gut beschrieben das du es problemlos kannst. 

mfg  Gast 123

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   'Workbook schliessen ohne zu speichern!!  s.False
   Quelle = ThisWorkbook.Worksheets("Konfiguration").Range("N25").Value
   Workbooks(Quelle).Close savechanges:=False
End Sub

Sub Test()
 'diesen Befehl einfach durch den unteren ersetzen
 'Workbooks (Mid(QUELLE, InStrRev(QUELLE, "") + 1).Windows(1).Visible = False
  'Quelle Fenster unsichtbar stellen
  Windows(Quelle).Visible = False
End Sub
Antworten Top
#14
Hallo Gast 123,

so langsam wird es    :63:

Das Öffnen klappt nun im Hintergrund ganz gut !

Was jetzt allerdings noch Probleme macht ist das Schließen.

Hier kommt bei der Zeile ThisWorkbook........ ein "Laufzeitfehler 9, Index außerhalb des gültigen Bereichs"
Im Debugger steht aber der richtige Pfad im Argument Quelle (wenn man mit dem Cursor über Quelle geht).

Im Intenet findet man scheinbar öfter das Problem mit dieser Fehlermeldung beim Schließen, aber irgendwie keine richtige Lösung.

Kann es damit zusammenhängen, dass bei .Close die Quelle nicht den Pfad, sondern nur den Dateinamen enthalten darf ?


EDIT:   Siehe nachfolgenden Beitrag


VLG
Matthias
Antworten Top
#15
Diese Code reicht:


Code:
Private Sub Workbook_Open()
   if dir(sheets("Konfiguration").Range("N25"))<>"" then
     with getobject(sheets("Konfiguration").Range("N25"))
       sn=.sheets(1).cells(1).currentregion 
      .close 0  
     end with
  end if
End Sub


@Gast123

Excel mid()  <> VBA mid()

msgbox mid("123456",4); Ergebnis "456"

in Excel
=mid("123456";4;200)  ; Ergebnis "456"
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#16
Hallo Gast 123,

es ist vollbracht ! :18:


Ich habe in Deinen Workbook_Beforeclose
noch folgendes eingefügt:

Q1 = Mid(Quelle, InStrRev(Quelle, "\") + 1)

und geändert:

Workbooks(Q1).Close savechanges:=False


Somit lautet der Code nun vollständig wie folgt:


Code:
Private Sub Workbook_Open()
Dim WB As Workbook, WB_Akt As Workbook
'Hole dir den Namen direkt aus der Zelle N25, so einfach !!
Quelle = ThisWorkbook.Worksheets("Konfiguration").Range("N25").Value
Set WB_Akt = ActiveWorkbook
Set WB = Workbooks.Open(Quelle)
Application.ScreenUpdating = False
Application.ShowWindowsInTaskbar = False
'Abbruch bei "" oder ungültigem Pfadnamen
If Quelle = "" Or InStr(Quelle, ":\") = 0 Then
   MsgBox "In Zelle N25 kein gültiger Pfad gefunden - Abbruch!!"
   Exit Sub
End If
On Error GoTo Fehler
Workbooks.Open Quelle, , True
Application.ActiveWindow.Visible = False  'für sichtbar auf True stellen
WB_Akt.Activate
Fehler:  'bei Fehler hierhin springen
If Err > 0 Then MsgBox "Öffnen Fehler !!"
Application.ShowWindowsInTaskbar = True
Application.ScreenUpdating = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   'Workbook schliessen ohne zu speichern!!  s.False
   Quelle = ThisWorkbook.Worksheets("Konfiguration").Range("N25").Value
  
   Q1 = Mid(Quelle, InStrRev(Quelle, "\") + 1)
 
   Workbooks(Q1).Close savechanges:=False
       
End Sub


Lieber Gast123,
ich DANKE DIR RECHT HERZLICH für Deine Mühen und Aufwände , ohne Deine geduldige und fachkundige Art hätte ich das nicht geschafft !
Klasse Support !!!!!!!!

VLG
Matthias
Antworten Top
#17
Schau mal bitte #15 an......
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#18
Hallo Matthias
hallo snb

ich freue mich sehr das wir vor meinem Urlaub die Sache noch hinbekommen haben, nehme das Dankeschön gerne an.

zum Kollegen snb habe ich iimmer gesagt das er vom programmieren her um Klassen besser ist wie ich.  Da mache ich keinen Hehl draus.
Was mich im Forum vielleicht auszeichnet ist die Geduld weiter am Ball zu bleiben wenn eine Sache zunaechst nicht klappen will.

In diesem Sinne gehe ich frohgemut in Urlaub.  Man sieht sich irgendwann wieder im Forum.  So long ....

mfg Gast 123
Antworten Top
#19
Hallo Gast123,

einen schönen Urlaub wünsche ich Dir.

Und soo   viel kürzer ist der andere Vorschlag auch nicht, weil in dem Code bei Dir ist ja eine Fehlerbehandlung enthalten.


Und nochmal: Danke für deine Geduld - bin überglücklich !
VLG
Matthias
Antworten Top
#20
(18.09.2017, 15:32)BraBra schrieb: weil in dem Code bei Dir ist ja eine Fehlerbehandlung enthalten.

Lese mal ruhig wieder...mit Brille.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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