Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Application.GetOpen

Application.GetOpen
26.07.2005 11:17:20
Florian
Hallo,
ich habe ein Makro geschrieben welches über die Funktion "Application.GetOpen" Excel-Dokumente öffnet.
Mein Problem ist aber, dass ich die geöffneten Dokumente in einem weiteren Makro verarbeiten möchte. Wie kann ich mich auf Zellen der geöffneten Dokumente beziehen und den Inhalt in ein leeres Dokument übertragen.
Das Makro kann sich doch nur auf ein anderes XLS beziehen wenn der Name dieser Mappe im Makro bekannt ist. Ich weiß aber vorher nicht wie die geöffneten Dokumente heißen werden.
Vielen Dank schon mal
So sieht meine Öffnen-Funktion aus...

Private Sub öffnen_Click()
Dim varRetVal As Variant
Dim n         As Integer
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Eine oder mehrere Dateien zum Öffnen auswählen", _
MultiSelect:=True)
If IsArray(varRetVal) Then
On Error Resume Next
For n = LBound(varRetVal) To UBound(varRetVal)
Workbooks.Open varRetVal(n)
Next
On Error GoTo 0
End If
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.GetOpen
26.07.2005 11:30:31
marcl
Hallo Florian,
Du kannst folgendes machen,

Private Sub öffnen_Click()
' quelldatei festlegen
quelle = ActiveWorkbook.Name
Dim varRetVal As Variant
Dim n         As Integer
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Eine oder mehrere Dateien zum Öffnen auswählen", _
MultiSelect:=True)
If IsArray(varRetVal) Then
On Error Resume Next
For n = LBound(varRetVal) To UBound(varRetVal)
Workbooks.Open varRetVal(n)
Next
On Error GoTo 0
End If
' zieldatei festlegen
ziel = ActiveWorkbook.Name
Windows(quelle).Activate
Windows(ziel).Activate
End Sub

Vielleicht so
Gruß
marcl
Anzeige
AW: Application.GetOpen
26.07.2005 13:14:52
Florian
hmmm... verstehe ich nicht ganz, geht das denn auch wenn ich meherere Dateien über die Application.GetOpen öffne?
Wenn nicht, kann man die Dateien die sich öffnen vielleicht unter einem einfachen Namen (z.B. 001.xls, 002.xls usw.) im Temp-Ordner speichern und diese Namen in der Programmierung benutzen? Nach der Bearbeitung können sie dann einfach vom Makro gelöscht werden?!?
Oder ist das zu unprofessionell?
AW: Application.GetOpen
26.07.2005 15:05:26
Peter
hallo Florian,
sind die Dateien, die Du bearbeiten willst alle in einem Ordner? Dann lies doch erst das Verzeichnis aus, dann hast Du die Dateinamen in einem Blatt in deiner Datei, die das makro enthält.
gruss Peter
Anzeige
AW: Application.GetOpen
26.07.2005 15:05:35
Peter
hallo Florian,
sind die Dateien, die Du bearbeiten willst alle in einem Ordner? Dann lies doch erst das Verzeichnis aus, dann hast Du die Dateinamen in einem Blatt in deiner Datei, die das makro enthält.
gruss Peter
AW: Application.GetOpen
26.07.2005 13:15:01
Florian
hmmm... verstehe ich nicht ganz, geht das denn auch wenn ich meherere Dateien über die Application.GetOpen öffne?
Wenn nicht, kann man die Dateien die sich öffnen vielleicht unter einem einfachen Namen (z.B. 001.xls, 002.xls usw.) im Temp-Ordner speichern und diese Namen in der Programmierung benutzen? Nach der Bearbeitung können sie dann einfach vom Makro gelöscht werden?!?
Oder ist das zu unprofessionell?
Anzeige
AW: Application.GetOpen
26.07.2005 13:15:12
Florian
hmmm... verstehe ich nicht ganz, geht das denn auch wenn ich meherere Dateien über die Application.GetOpen öffne?
Wenn nicht, kann man die Dateien die sich öffnen vielleicht unter einem einfachen Namen (z.B. 001.xls, 002.xls usw.) im Temp-Ordner speichern und diese Namen in der Programmierung benutzen? Nach der Bearbeitung können sie dann einfach vom Makro gelöscht werden?!?
Oder ist das zu unprofessionell?
AW: Application.GetOpen
26.07.2005 13:15:13
Florian
hmmm... verstehe ich nicht ganz, geht das denn auch wenn ich meherere Dateien über die Application.GetOpen öffne?
Wenn nicht, kann man die Dateien die sich öffnen vielleicht unter einem einfachen Namen (z.B. 001.xls, 002.xls usw.) im Temp-Ordner speichern und diese Namen in der Programmierung benutzen? Nach der Bearbeitung können sie dann einfach vom Makro gelöscht werden?!?
Oder ist das zu unprofessionell?
Anzeige
AW: Application.GetOpen
26.07.2005 13:15:17
Florian
hmmm... verstehe ich nicht ganz, geht das denn auch wenn ich meherere Dateien über die Application.GetOpen öffne?
Wenn nicht, kann man die Dateien die sich öffnen vielleicht unter einem einfachen Namen (z.B. 001.xls, 002.xls usw.) im Temp-Ordner speichern und diese Namen in der Programmierung benutzen? Nach der Bearbeitung können sie dann einfach vom Makro gelöscht werden?!?
Oder ist das zu unprofessionell?
AW: Application.GetOpen
26.07.2005 14:37:26
Dominic
Hallo Marcl,
als Ansatz hier ein Code. Hier wird zur einer Objektvariablen alle geöffneten Dateien Zugeordnet. Leider muß man Konstaten beim Redim verwenden. Hat da jemand ein Idee?
Option Explicit

Sub test()
Dim a As Integer
Dim str_msgb As String
a = Workbooks.Count
If a = 2 Then
ReDim obj(1 To 2) As Object
End If
If a = 3 Then
ReDim obj(1 To 3) As Object
End If
If a = 4 Then
ReDim obj(1 To 4) As Object
End If
If a = 5 Then
ReDim obj(1 To 5) As Object
End If
If a = 6 Then
ReDim obj(1 To 6) As Object
End If
If a = 7 Then
ReDim obj(1 To 7) As Object
End If
If a = 8 Then
ReDim obj(1 To 8) As Object
End If
If a = 9 Then
ReDim obj(1 To 9) As Object
End If
For a = 1 To Workbooks.Count
Set obj(a) = Workbooks(a)
str_msgb = str_msgb & Chr(10) & obj(a).Name
Next a
MsgBox str_msgb
End Sub

Gruß
Dominic
Anzeige
AW: Application.GetOpen
26.07.2005 14:20:23
StephanH

      

Private Sub öffnen_Click()

' quelldatei festlegen

quelle = ActiveWorkbook.Name

Dim varRetVal As Variant

  
Dim n As Integer

  
Dim ziel as String

  varRetVal = Application.GetOpenFilename( _

          FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _

          Title:="Eine oder mehrere Dateien zum Öffnen auswählen", _

          MultiSelect:=
True)

  
If IsArray(varRetVal) Then

    
On Error Resume Next

    
For n = LBound(varRetVal) To UBound(varRetVal)

      Workbooks.Open varRetVal(n)

      
' An dieser Stelle gibt Dir ActiveWorkbook die Informationen zur

      ' gerade geöffneten Datei an. Also auch den Namen.

      ' Möglichkeit 1)

      ' ... mit ActiveWorkbook.Name alle Namen z.B. in einem Array speichern

      ' Möglichkeit 2)

      ' ... Führe das Makro doch gleich hier aus indem Du den Namen der

      '     geöffneten Datei übergibst

      ziel = ActiveWorkbbok.Name

      
call DeinMakro(ziel)

    
Next

    
On Error GoTo 0

  
End If

End Sub 
Anzeige
AW: Application.GetOpen
26.07.2005 15:48:25
Florian
Hallo noch mal,
das Problem ist gelößt!!!
Vielen Dank für Eure Hilfe...

Private Sub öffnen_Click()
Dim varRetVal As Variant
Dim n As Integer
Dim i As Integer
Dim x(100) As String
Dim pfad As String
Dim msg As Integer
i = 0
varRetVal = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel-Dateien (*.xls), *.xls", _
Title:="Eine oder mehrere Dateien zum Öffnen auswählen", _
MultiSelect:=True)
If IsArray(varRetVal) Then
On Error Resume Next
For n = LBound(varRetVal) To UBound(varRetVal)
i = i + 1
Workbooks.Open varRetVal(n)
x(i) = ActiveWorkbook.Name      'Dateiname in Variable xi speichern
If i = 1 Then
pfad = ActiveWorkbook.Path      'Pfad von erster geöffneter Datei einlesen
End If
Next
On Error GoTo 0
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige