shell

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: shell
von: Frank
Geschrieben am: 22.04.2005 07:14:44
Guten Morgen,
ich hatte letztens schon einmal so was in die richtung gepostet aber mich bestimmt blöd ausgedrückt.
Ich möchte eine Datei, die in einer FileListbox selektiert ist über einen Button mit Excel ausführen lassen.
Die Datei wird gefunden über eine Drive-,Dir-, und Filelistbox. Mein Prob ist dass ich nicht weiß, wie ich die selektierte Datei in der Filelistbox ansprechen soll. Dachte mir wenn ich die Datei Anklicke soll command1_click angesprochen werden. Wie nenne ich aber jetzt die selektierte Datei damit der Shell Befehl greifen kann. Was neben bei - der shell Befehl verlangt den Pfad von Excel.exe - der ist aber auf einigen Rechnern unterschiedlich, was die sache noch komplizierter macht In der Recherche gibt es dazu einige Anmerkungen verstehe aber nur Bahnhof --> aber eins nach dem anderen. Vielleicht hat jemand zu meinem ersten Problem einen Ansatzpunkt, das nicht nur Excel sondern auch die Datei aufgeht.


Private Sub File1_Click()
    Command1_Click
End Sub


Private Sub Command1_Click()
Dim File1 As Variant
File1 = Shell("h:\Microsoft Office\Office10\EXCEL.EXE", 1)
End Sub

schönen Tag noch
Frank
Bild

Betrifft: AW: shell
von: MichaV
Geschrieben am: 22.04.2005 08:56:45
Hi Frank,
ich finde Deinen alten Threat nicht mher. Da war doch ne Beispielmappe dabei? Bitte schick den Link nochmal.
Gruß- Micha
Bild

Betrifft: AW: shell
von: Frank
Geschrieben am: 22.04.2005 14:51:26
Hallo Micha,
da ist noch nicht viel Code. Ich habe mir über VBA eine Benutzerfläche erstellt. Bis zur Auswahl der Datei sind es nur Zuweisungen zwischen dem Laufwerk und Ordner bis zur Dateiliste. Nun gehts ans Auslesen. Ich will nur Exceldateien öffnen. Mit der obigen Shell Zuweisung passiert bis auf das, dass Excel geöffnet wird nicht viel. Da ja *.xls Dateien auf jedem Rechner Excel zugewiesen sind und geöffnet werden egal wo sich das Hauptprogramm befindet müßte ich mir mit dem Shell Befehl auch noch was einfallen lassen.
Gruß Frank

https://www.herber.de/bbs/user/21560.xls
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: ransi
Geschrieben am: 22.04.2005 17:45:15
hallo frank
versuch doch mal workbooks.open(Filename)
Den filename kannst du dir doch aus aus deinen laufwerks- und ordner zuweisungen
als string zusammenbasteln.
für die filelistbox gibt es bestimmt sowas wie
selectedItem
oder
for each element in filelistbox
if element.selected=true then datei=element
next
oder lade die datei mitsamt code mal hoch.
Dann wirds bestimmt einfacher.
ransi
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: Frank
Geschrieben am: 22.04.2005 18:34:43
Hallo,
ich habe da es sich um ein Visual Basic 6.0 Projekt handelt den Code nur ins Modul meiner hochgeladenen Datei kopiert + das Bild wie es zur Zeit aussieht.
Bin schon etwas durch gegoogelt nach "Dateien aus Filelistboxen auslesen".
Werde weiter suchen.
Danke für Deine Mühe
Frank

https://www.herber.de/bbs/user/21572.xls
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: MichaV
Geschrieben am: 22.04.2005 19:47:45
Hi,
na deswegen wollt ich die Beispieldatei, weil ich in Excel keine FileListBox habe ;o)
Also VB6... Gehört das nicht ins VB- Forum? Naja, hier der mögliche Code.
Funktionsweise: zu einer Datei (z.B. e:\daten.xls) wird das verknüpfte Programm (z.B: c:\Office\Excel.exe) ermittelt und an den Shell- Befehl übergeben (Shell c:\Office\Excel.exe e:\daten.xls)
Das geht mit allen Dateien (*.doc, *.txt usw.), kann aber u.U. beim Shell- Aufruf Probleme bereiten, falls zusätzliche Parameter übergeben werden müssen. Für Excel aber kein Problem. Bin nur gespannt, wie Du die FileListBoxen in Excel einbaust.


      
Option Explicit
Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As StringByVal lpDirectory As StringByVal lpResult As StringAs Long
Private Sub Dir1_Change()
  File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
  Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
Dim Pfad As String
Pfad = Space$(256)
FindExecutable File1.Path & "\" & File1.FileName, vbNullString, Pfad
If Pfad <> "" Then
   Pfad = Left$(Pfad, InStr(Pfad, vbNullChar) - 1)
End If
If UCase$(Pfad) = UCase$(File1.Path & "\" & File1.FileName) Then Pfad = ""
Shell Pfad & " " & File1.Path & "\" & File1.FileName, vbMaximizedFocus
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0

Gruß!- Micha
PS: Rückmeldung wäre nett.
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: Frank
Geschrieben am: 22.04.2005 20:10:55
hallo Micha,
Du hast natürlich recht - bin schon auf der suche in diversen VB-Foren. Zum erstenmal brauchte ich ein anderes steuerelement was es in Excel VBA so nicht gibt. Dachte mir aber, da man auch dateien aus Listboxen auslesen kann, muß dass doch auch gehen.
Und jetzt zu dem zweiten Punkt - es funktioniert toll. Danke, Danke
Trotzdem habe ich noch eine klitzekleine Frage.
Ich habe eine Datei die so heißt "data_int.wrk_20050316122724S". Wenn ich sie über den Explorer öffne wird dies über Excel vollzogen. Hier geht dies noch nicht. liegt das an der Dateinamenerweiterung? -- die kann ich nichtbeinflussen
Gruß Frank
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: MichaV
Geschrieben am: 22.04.2005 20:28:50
Hi,
ja ist schon komisch, was? Frag mich, woher der Explorer weiß, daß es eine Excel- Datei ist. Das Icon zeigt ja "unbekannte Erweiterung" an.
Versuch mal so: Nimmm die Zeile FindExecutable... raus und schreibe anstelle:


      
Open "temp.xls" For Output As #1 'Dummy anlegen
Close #1
FindExecutable "temp.xls", vbNullString, Pfad 
'Pfad zu Excel durch xls- Dummy ermitteln
Kill "temp.xls" 'Dummy löschen 

     Code eingefügt mit Syntaxhighlighter 3.0


Nun hast Du den Pfad zu Excel und kannst jede x-beliebeige Datei über Excel öffnen. Egal, welche Endung.
Gruß- Micha
PS: Dateinummer ggf. mit FreeFile ermitteln, wenn Du mit weiteren geöffneten Dateien arbeitest.
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: Frank
Geschrieben am: 22.04.2005 20:55:11
Hallo Micha,
jetzt komme ich ja meinem (Deinem) Erfolg immer näher. Excel hats gefres... . Möglich natürlich, dass ich diesen Dateityp vor ellenlanger Zeit schonmal Excel zugewiesen habe und es deshalb funktionierte.
Ideal wäre, wenn die Datei nicht beim selektieren sondern erst beim betätigen des Ausführenbuttens aufgehen würde.
Frank
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: MichaV
Geschrieben am: 22.04.2005 21:11:09
Hi,
bei mir funzt es aber auch! Ich hab eine xl- Datei so benannt und er hat sie trotzdem geöffnet.
Zu Deinem anderen Problem... Pack den Code doch in das Click- Ereignis von CommandButton.
Musst vorher nur sicherstellen, daß eine Datei ausgewählt wurde:
if File1.FileName="" then exit sub
Gruß! Micha
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: Frank
Geschrieben am: 22.04.2005 21:15:41
Hi Micha,
muß mich jetzt erstmal auf den Weg zur Arbeit machen. werde es morgen früh ausprobieren.
Gruß Frank
Bild

Betrifft: AW: shell oder workbooks.open Filename:=
von: Frank
Geschrieben am: 23.04.2005 06:51:37
wunderprächtig - funktioniert super - Danke
Frank
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Starten des Makros bei Öffnen der Datei"