Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excelinstanz

Excelinstanz
27.09.2005 11:30:14
frank
Guten Morgen,
vielleicht könnt ihr mir helfen.
Wie schaffe ich es, dass ich drei Excelinstanzen (Mappe-Frank1, -Frank2, -Frank3) in einen gemeinsamen Ordner (Beisp. Frank auf Desktop) kopiere und die geöffneten instanzen schließe. Brauche zum weiterverarbeiten alles unter einem Hut.
Habe es schon mit dem makrorecorder versucht - funktioniert nicht da bei der Schließung der 3.Instanz ja auch Excel zu geht und ich irgendwie das makro nicht beenden kann.
Hat jemand eine gloreiche Idee?
mfg Frank

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelinstanz
27.09.2005 12:04:23
frank
hallo frank,
du kannst alles durch aufgabenbereich speichern unter einen hut bekommen...
gruß
der wo genauso heißt
AW: Excelinstanz
27.09.2005 12:38:10
frank
hallo Namensvetter,
wie aufgabenbereiche speichern? Kannste mir auf die Sprünge helfen - kurzes Beisp.
Frank
AW: Excelinstanz
27.09.2005 12:55:43
frank
hi,
ich habe dich doch richtig verstanden damit das die dateien frank1, frank2, frank3 offen sind und du diese in einem speichern möchtest...
dann machst du folgendes:
Datei - Aufgabenbereich speichern...
damit hast du alle drei dateien in einer .xlw datei
gruß
AW: Excelinstanz
27.09.2005 12:59:35
frank
hei,
jetzt weiß ich wie du es meinst. müßte eigentlich funktionieren. probiere ich gleich heute abend aus - muß zur spätschicht. melde mich wenns probleme gibt.
frank
Anzeige
AW: Excelinstanz
27.09.2005 14:24:45
Ralf
Hallo Frank,
wie wäre es, wenn Du die Aufzeichnung vor dem Schließen der letzten Instanz beendest und den Rest per Hand einträgst? Sollte wohl nicht so schwer sein...
Ciao, Ralf
AW: Excelinstanz
27.09.2005 22:58:05
frank
Hallo zusammen,
funktioniert so und so nicht. Die Excelinstanzen stehen alle für sich alleine. Wenn ich den Recorder benutze und zum Beispiel alle Instanzen auf dem Desktop ablegen will, sehe ich zum Schluss im Makro nur die die letzte Mappe, welche unter windows dort abgelegt wurde.
Auch mit Aufgabenbereich speichern funktioniert nicht - mappen werden nicht gefunden.
Nochmal zum Hintrergrund: habe eine Datenbankapplikation welche mir drei Mappen in Excel erstellt. Es muß doch irgendwie gehen, dass ich die mappen welche in der Statuszeile jeweils zu sehen sind, mit einem Makro auf dem Desktop verankern kann. Ich kann das wohl handisch machen will aber dann meine Blätter weiterbearbeiten. Habe erst kürzlich eine Anfrage von Kerstin gelesen welche ein ähnliches Problem hat. Als Hinweis soll Nepomuk vor kurzen einen Beitrag verfasst haben. Habe aber in der Recherche überhaupt nichts gefunden.
Frank
Anzeige
AW: Excelinstanz
27.09.2005 23:21:06
Ralf
Hallo Frank,
anbei mal ein Bsp. um eine Datei auf den Desktop zu bringen. Die Schleife für alle geöffneten Workbooks bekommst Du hoffentlich noch allein hin. Ich hoffe, es ist das was Du wolltest.
Option Explicit
Public

Sub Icon_Auf_Desktop()
Dim myFSO As Object
Dim myFSOShell As Object
Dim strDesktop As String
Dim myMainFolder As String
Dim mySubFolder As String
Dim myShortCut As Object
Dim myToCopyFile As String, myFileExt As String
'Variablen füllen
'Hier noch eine Schleife für alle geöffneten Workbooks einbauen.
myMainFolder = ActiveWorkbook.Path
mySubFolder = myMainFolder ' myMainFolder & "\Ordner2"
'OHNE Extension
myToCopyFile = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) 'Extension abschneiden
myFileExt = ".xls"
Set myFSO = CreateObject("Scripting.FileSystemObject")
Set myFSOShell = CreateObject("WScript.Shell")
'Verknüpfung auf dem Desktop erzeugen
strDesktop = myFSOShell.SpecialFolders("Desktop")
Set myShortCut = myFSOShell.CreateShortcut(strDesktop + "\" & myToCopyFile & ".lnk")
With myShortCut
'Fenstertyp beim öffnen
' 4=Normal 3=Maximized 7=Minimized
.windowstyle = 7
.IconLocation = "DeinBildpfad.Iconname.ico" 'hier anpassen!!!
.Targetpath = mySubFolder & "\" & myToCopyFile & myFileExt
'Keyboard Shortcut zuweisen
.Hotkey = "ALT+CTRL+S"
'Speichern
.Save
End With
End Sub

Ciao, Ralf
Anzeige
AW: Excelinstanz
27.09.2005 23:48:55
frank
Hallo Ralf,
danke für deine Hilfe. Werde es aber erst morgen ausprobieren können. Melde mich auf jeden Fall.
Gruß Frank
AW: Excelinstanz
28.09.2005 12:21:27
frank
Hallo Ralf,
so funktioniert es hervorragend - Schleife? null Ahnung - habe bis jetzt alles immer mit dem Recorder aufgezeichnet. habe mich mal mit For Next beschäftigt - wird bei mir etwas länger dauern. ... kannste mir auf die Sprünge helfen. (drei mappen auf den Desktop bringen und wenns geht die originalen ohne nachfrage schließen)
Danke Frank
AW: Excelinstanz
28.09.2005 12:46:38
frank
Hallo Ralf,
so funktioniert es hervorragend - Schleife? null Ahnung - habe bis jetzt alles immer mit dem Recorder aufgezeichnet. habe mich mal mit For Next beschäftigt - wird bei mir etwas länger dauern. ... kannste mir auf die Sprünge helfen. (drei mappen auf den Desktop bringen und wenns geht die originalen ohne nachfrage schließen)
Danke Frank
Anzeige
AW: Excelinstanz
28.09.2005 15:26:56
Ralf
Hi Frank,
nicht getestet, sollte aber funktionieren. Die Pfade und Namen der Icons musst Du natürlich noch anpassen. Ich kenne mich nicht so in Deiner Dateistruktur aus...:-)
Noch eine Frage. Weshalb dieser Aufwand wenn Du sonst die Makros nur aufzeichnest? 3 Icons auf dem Desktop hättest Du schneller per Hand erstellt.
Diesen Code in der 1. Arbeitsmappe unterbringen.
Option Explicit
Public

Sub Icon_Auf_Desktop()
Dim myFSO As Object
Dim myFSOShell As Object
Dim strDesktop As String
Dim myMainFolder As String
Dim mySubFolder As String
Dim myShortCut As Object
Dim myToCopyFile As String, myFileExt As String
Dim myPics(2) As String, iAnzB as Byte, x As Byte
On Error GoTo Fehler
iAnzB = Application.Workbooks.Count
myPics(0) = "C:\Ico1.ico"
myPics(1) = "C:\ico2.ico"
myPics(2) = "C:\ico3.ico"
Application.DisplayAlerts = False
'Variablen füllen
For x = 1 To iAnzB
Workbooks(x).Activate
myMainFolder = ActiveWorkbook.Path
mySubFolder = myMainFolder
'OHNE Extension
myToCopyFile = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) 'Extension abschneiden
myFileExt = ".xls"
Set myFSO = CreateObject("Scripting.FileSystemObject")
Set myFSOShell = CreateObject("WScript.Shell")
'Verknüpfung auf dem Desktop erzeugen
strDesktop = myFSOShell.SpecialFolders("Desktop")
Set myShortCut = myFSOShell.CreateShortcut(strDesktop + "\" & myToCopyFile & ".lnk")
With myShortCut
'Fenstertyp beim öffnen
' 4=Normal 3=Maximized 7=Minimized
.windowstyle = 7
.IconLocation = myPics(x - 1)
.Targetpath = mySubFolder & "\" & myToCopyFile & myFileExt
'Keyboard Shortcut zuweisen
'.Hotkey = "ALT+CTRL+" & x + 1
'Speichern
.Save
End With
Set myFSO = Nothing
Set myFSOShell = Nothing
Set myShortCut = Nothing
Next x
x = 3
Do Until x = 0
Workbooks(x).Close
x = x - 1
Loop
Application.DisplayAlerts = True
Exit Sub
Fehler:
MsgBox "Fehler"
End Sub

Ciao, Ralf
Anzeige
AW: Excelinstanz
28.09.2005 22:45:52
frank
Hallo Ralf, es funktioniert nicht. Die mappen werden nicht gefunden.
Deine Hilfe funktioniert nur wenn alle Mappen in einer Instanz sind. Habe mal ein Shortcut von meinem Desktop angehängt, nicht dass Du denkst ich bilde mir die Mappen nur ein. Es ist jede für sich einzeln da.
Werde weiter recherchieren müssen.
https://www.herber.de/bbs/user/27025.xls
Gruß und Danke
Frank
AW: Excelinstanz
29.09.2005 00:19:33
Ralf
Hi Frank,
so einen Aufwand, nur weil Du keine Lust auf ein paar Mausklicks hast...tztztz...
Meine Frage diesbezüglich hast Du immer noch nicht beantwortet. Warum der Aufwand?
Das sollte funktionieren (Namen und Pfade natürlich noch anpassen):
Option Explicit
Private Declare

Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare 

Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare 

Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare 

Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWNORMAL = 1
Const WM_CLOSE = &H10
Const gcClassnameMSExcel = "XLMAIN"
Public 

Sub Fenster_Finden_und_schliessen()
Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
Dim aInst(1) As String, x As Byte, myPics(2) As String
myPics(0) = "C:\Ico1.ico"
myPics(1) = "C:\ico2.ico"
myPics(2) = "C:\ico3.ico"
aInst(0) = "Microsoft Excel - Frank1.xls"
aInst(1) = "Microsoft Excel - Frank2.xls"
Application.DisplayAlerts = False
For x = 0 To 1
Ret = aInst(x)
WinWnd = FindWindow(vbNullString, Ret)
If WinWnd = 0 Then
MsgBox "Fenster mit dem Titel " & aInst(x) & " nicht vorhanden oder geöffnet.", vbInformation, "Fenster wurde nicht gefunden ..."
GoTo Weiter
End If
ShowWindow WinWnd, SW_SHOWNORMAL
Icon_Auf_Desktop myPics(x)
lpClassName = Space(256)
RetVal = GetClassName(WinWnd, lpClassName, 256)
PostMessage WinWnd, WM_CLOSE, 0&, 0&
Weiter:
Next x
Icon_Auf_Desktop myPics(2)
Application.Quit
Application.DisplayAlerts = True
End Sub

Public

Sub Icon_Auf_Desktop(Bild As String)
Dim myFSO As Object
Dim myFSOShell As Object
Dim strDesktop As String
Dim myMainFolder As String
Dim mySubFolder As String
Dim myShortCut As Object
Dim myToCopyFile As String, myFileExt As String
On Error GoTo Fehler
myMainFolder = ActiveWorkbook.Path
mySubFolder = myMainFolder
'OHNE Extension
myToCopyFile = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) 'Extension abschneiden
myFileExt = ".xls"
Set myFSO = CreateObject("Scripting.FileSystemObject")
Set myFSOShell = CreateObject("WScript.Shell")
'Verknüpfung auf dem Desktop erzeugen
strDesktop = myFSOShell.SpecialFolders("Desktop")
Set myShortCut = myFSOShell.CreateShortcut(strDesktop + "\" & myToCopyFile & ".lnk")
With myShortCut
'Fenstertyp beim öffnen
' 4=Normal 3=Maximized 7=Minimized
.windowstyle = 7
.IconLocation = Bild
.Targetpath = mySubFolder & "\" & myToCopyFile & myFileExt
'Keyboard Shortcut zuweisen
'.Hotkey = "ALT+CTRL+" & x + 1
'Speichern
.Save
End With
Set myFSO = Nothing
Set myFSOShell = Nothing
Set myShortCut = Nothing
Exit Sub
Fehler:
MsgBox "Fehler"
End Sub

Ciao, Ralf
Anzeige
AW: Excelinstanz
29.09.2005 10:31:15
frank
Hei,
sieht doof aus bei nur drei mappen - zum Wochenende gibt es aber 50 mappen, und das ist der Knackpunkt. Die werte in den mappen werden mit Makros weiterbearbeitet bis zur Diagrammerstellung. Habe im Forum zu den anderen aufgaben Dank des Excelteams alles gefunden nur dass diese "bescheuerten" Mappen durch die datenbankapplikation einzeln abgelegt werden (dies ist auch nicht umstellbar).
Gruß Frank
AW: Excelinstanz
29.09.2005 10:31:21
frank
Hei,
sieht doof aus bei nur drei mappen - zum Wochenende gibt es aber 50 mappen, und das ist der Knackpunkt. Die werte in den mappen werden mit Makros weiterbearbeitet bis zur Diagrammerstellung. Habe im Forum zu den anderen aufgaben Dank des Excelteams alles gefunden nur dass diese "bescheuerten" Mappen durch die datenbankapplikation einzeln abgelegt werden (dies ist auch nicht umstellbar).
Gruß Frank
Anzeige
AW: Excelinstanz
29.09.2005 22:41:29
frank
Hallo Ralf,
alsoooo es geht nicht. Es sind ja keine fertigen Dateien sondern nur aufgemachte mappen jede in ihrer einzelnen Instanz die erst als Dateien auf dem Desktop abgelegt werden sollen.
Danke für Deine ausdauernde Hilfe
schönen Abend noch Frank
AW: Excelinstanz
29.09.2005 23:19:46
Ralf
Hi Frank,
bevor Du sie auf dem Desktop ablegen kannst, musst Du sie doch erst einmal speichern. Wie willst Du sonst eine Verknüpfung hinbekommen? Im besten Fall heißen die Dinger eben 'Microsoft Excel - Mappe1' bis 3 (wenn Du voher keine anderen Mappen aufgemacht hast). Aber um das Speichern kommst Du nicht herum. Also in der Prozedur finden und zeigen nach ShowWindow noch
ActiveWorkbook.SaveAs Filename:="F:\Officedateien\ExcelDateien\Frank" & x +1 &".xls"
einfügen. (oder was auch immer)
Übrigens hab ich gerade gesehen, dass hier nach allen Private Declare und Public Anweisungen ein Zeilenumbruch steht. Den musst Du noch überall entfernen! Keine Ahnung wie und warum die Umbrüche da hereingeraten sind...
Ciao, Ralf
Anzeige
AW: Excelinstanz
30.09.2005 00:45:47
frank
Hei,
die Umbrüche habe ich gesehen - kein Problem.
bei dem anderen, die mappen werden einfach nicht gefunden. Hinweistext: mappe1 wird nicht gefunden oder ist geöffnet.
werd wieder mal ne nacht drüber schlafen
Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige