Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zugriff auf eben geöffnetes Excelfile

Zugriff auf eben geöffnetes Excelfile
09.07.2004 17:31:10
julia
Hi liebe Excelversteher,
kann mir jemand sagen wie ich auf das eben geöffnete Excelsheet zugreifen kann?
Es geht um diesen Bereich vom Code den ich unten im gesamten abgebildet habe:
Workbooks.Open .FoundFiles(i)
Sheets(1).Select
If Range("A4") >= 10 Then
Der Code wird aus einem Excelfile gestartet, worauf andere Excelfiles geöffnet werden. Bei diesem Code wird das Feld A4 des ursprünglichen Files durchsucht, ich will aber das eben geöffnete File durchsuchen... kann mir jemand sagen wie ich das eben geöffnete File (dessen Namen ich nicht kenne) ansprechen kann?
Gibt es eigentlich einen Befehl mit dem ich in dieser Schleife den Filename einer variablen zuweisen kann?
Vielen Dank im Voraus!
LG Juli
DER GANZE CODE
---------------------
Option Explicit

Sub Daten_suchen()
Dim FS As FileSearch, wsh1 As Worksheet, i As Integer
Set wsh1 = ThisWorkbook.Sheets(1)
Set FS = Application.FileSearch
With FS
.LookIn = ThisWorkbook.Path
.Filename = "*.xls"
.SearchSubFolders = True
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
If Not i = 1 Then
Workbooks.Open .FoundFiles(i)
Sheets(1).Select
If Range("A4") >= 10 Then
'Daten in Zeilen schreiben
With wsh1
.Cells(i, 1) = Range("A2")
.Cells(i, 2) = Range("A4")
.Cells(i, 3) = Range("N5")
End With
ActiveWorkbook.Close , False
End If
End If
Next i
End If
End With
End Sub

---------------------

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriff auf eben geöffnetes Excelfile
ChrisL
Hi Julia
Die Mappe aus der du das Makro startest ist ThisWorkbook und die geöffnete Mappe müsste das ActiveWorkbook sein.
Ungetest...

Sub Daten_suchen()
Dim FS As FileSearch, wsh1 As Worksheet, i As Integer
Set wsh1 = ThisWorkbook.Sheets(1)
Set FS = Application.FileSearch
With FS
.LookIn = ThisWorkbook.Path
.Filename = "*.xls"
.SearchSubFolders = True
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
If Not i = 1 Then
Workbooks.Open .FoundFiles(i)
With ActiveWorkbook.Sheets(1)
If .Range("A4") >= 10 Then
'Daten in Zeilen schreiben
wsh1.Cells(i, 1) = .Range("A2")
wsh1.Cells(i, 2) = .Range("A4")
wsh1.Cells(i, 3) = .Range("N5")
ActiveWorkbook.Close , False
End With
End If
End If
Next i
End If
End With
End Sub

Dachte erst es ginge auch ohne die Dateien zu öffnen, aber dazu fehlt vermutlich der Tabellenname von Sheets(1), es sei denn Sheet(1) trägt immer den gleichen Namen.
Gruss
Chris
Anzeige
AW: Zugriff auf eben geöffnetes Excelfile
julia
danke Dir, werde es gleich ausprobieren!!!
AW: Zugriff auf eben geöffnetes Excelfile
Ulf
Workbooks.Open .FoundFiles(i)
activeworkbook.Sheets(1).Select
If Range("A4") &gt= 10 Then
Wobei select und activate selten nötig ist!
Ulf
Probiers mal so...
09.07.2004 18:13:58
Franz
Hallo Julia,
If Activeworkbook.Sheets(1).Range("A4") &gt= 10 Then
Damit sparst du dir das "Select", es wird nicht rumgesprungen und kann vielleicht ein bissl schneller werden.
Grüße
Franz
Sorry Ulf...
09.07.2004 18:15:03
Franz
sollte an Julias Beitrag, nicht an deinen :-))) !!
Grüße
Franz
AW: Zugriff auf eben geöffnetes Excelfile
julia
super lieb von euch!!! ich brauch mal kurz zeit:-) zum ausprobieren.
melde mich wenns klappt oder oder eben nicht... :-) hoffentlich klappts!
vielen dank schonmal
lg juli
Anzeige
ich muß euch einfach sagen....
julia
... ihr seid spitze!!!
Danke ChrisL, Ulf und Franz W.
Der Code sieht jetzt so aus und funktioniert:
If Not i = 1 Then
Workbooks.Open .FoundFiles(i)
With ActiveWorkbook.Sheets(1)
If ActiveWorkbook.Sheets(1).Range("N5") = 0.5 Then
'Daten in Zeilen schreiben
With wsh1
wsh1.Cells(i, 1) = ActiveWorkbook.Sheets(1).Range("A2")
wsh1.Cells(i, 2) = ActiveWorkbook.Sheets(1).Range("A2")
End With
End If
End With
ActiveWorkbook.Close , False
End If
es springt zwar ständig hin und her, ist aber erstmal nicht so wild (ausser ihr habt eine schnelle Lösung)
ich hab noch eine neue Frage, werde sie aber in einem neuen TAG stellen weils eher was allgemeines ist...
lg Juli
Anzeige
AW: ich muß euch einfach sagen....
ChrisL
Hi Julia
Danke für die Rückmeldung.
Versuch noch...
Application.ScreenUpdating = False
' Dein Code
Application.ScreenUpdating = True
Und...
With ActiveWorkbook.Sheets(1)
End With
kannst du noch weglassen.
Gruss
Chris
AW: ich muß euch einfach sagen....
julia
danke, das with-Zeugs hab ich "wegge-ixt" :-)
den anderen Teil werde ich einbauen!
ps: ich verstehe warum das der größte excelserver/forum auserhalb von microsoft ist, wenn mann und frau hier so nette hilfe bekommt!
Gern geschehen :-)) o.t.
09.07.2004 23:10:01
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige