Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateien auf Verfügbarkeit prüfen ?

Dateien auf Verfügbarkeit prüfen ?
09.01.2006 12:23:38
Selma
Hallo Leute,
erstmal frohes und gesundes neuses Jahr wünsche ich Euch....
ich habe eine Frage:
In Spalte F ab Zeile 2 bis Zeile 6382 habe ich als Zelleninhalt die Dateiname (ohne Pfad) incl. Dateiendung. Zum Beispiel "Artikel 2848 BG 2.doc"
Ich würde gern prüfen, ob diese Dateien im Ordner H:\Import\2005 existieren.
Dabei soll die Dateiendung (wegen Klein- und Großschreibung) nicht berücksichtigt werden.
Wenn die Datei existiert, dann soll der Bereich A:I mit grüner Hintergrundfarbe dargestellt werden.
Im Anschluss möchte ich nur die grün dargestellte Zeilen in Arbeitsblatt "Import 2005" kopieren.
Ist dies machbar?
Vielen Dank im Voraus....
Liebe Grüße
SELMA
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien auf Verfügbarkeit prüfen ?
09.01.2006 12:41:58
Josef
Hallo Selma!
Ungetestet!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub CheckFileAndCopy()
Dim sHSrc As Worksheet, sHTar As Worksheet
Dim lngRow As Long, lngLast As Long
Dim rng As Range
Dim strPath As String

strPath = "H:\Import\2005\" 'Dateipfad mit "\" am Ende !
Set sHSrc = Sheets("Tabelle1") 'Tabelle mit den Dateinamen - Anpassen!
Set sHTar = Sheets("Import 2005") 'Zieltabelle

With sHSrc
  lngLast = .Cells(Rows.Count, 6).End(xlUp).Row
  For lngRow = 2 To lngLast
    If Dir(strPath & .Cells(lngRow, 6).Text) <> "" Then
      .Range(.Cells(lngRow, 1), .Cells(lngRow, 9)).Interior.ColorIndex = 4
      If rng Is Nothing Then
        Set rng = .Range(.Cells(lngRow, 1), .Cells(lngRow, 9))
      Else
        Set rng = Union(rng, .Range(.Cells(lngRow, 1), .Cells(lngRow, 9)))
      End If
    End If
  Next
End With

If Not rng Is Nothing Then rng.Copy sHTar.Cells(2, 1)

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Dateien auf Verfügbarkeit prüfen ?
09.01.2006 12:54:19
Selma
Hallo Sepp,
hier bleibt es stehen:
If Dir(strPath & .Cells(lngRow, 6).Text) "" Then
LG
Selma
AW: Dateien auf Verfügbarkeit prüfen ?
09.01.2006 15:55:06
Josef
Hallo Selma!
Hab's bei mir gerade getestet und es läuft einwandfrei!
Stimmt der Pfad in "strPath"?
Steht in den Zellen der Dateinname mit der Endung (*.doc)?
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Dateien auf Verfügbarkeit prüfen ?
10.01.2006 12:26:35
Selma
Hallo Sepp,
jetzt funtioniert es....
Ein Zellinhalt hat keine Dateiendung gehabt :)
Danke nochmal....
Liebe Grüße
SELMA
AW: Dateien auf Verfügbarkeit prüfen ?
09.01.2006 13:21:27
Eugen
hi
probier das mal aus
Option Base 1
Dim szFiles() As String
Option Explicit
Public

Sub exist()
Dim szName As String
Dim szDir As String
Dim i, nRow, j, x As Long
Dim index As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name = "Import 2005" Then Exit For
Next i
index = i
nRow = 1        ' ist die zeilzeile in import 2005
szDir = "c:\Daten\2005\"
ReDim Preserve szFiles(1)
szFiles(1) = Dir(szDir + "*.*")
Do While szFiles(UBound(szFiles)) <> ""
' extension entfernen
szFiles(UBound(szFiles)) = Mid(szFiles(UBound(szFiles)), 1, _
InStr(szFiles(UBound(szFiles)), ".") - 1)
ReDim Preserve szFiles(UBound(szFiles) + 1)
szFiles(UBound(szFiles)) = Dir
Loop
ReDim Preserve szFiles(UBound(szFiles) - 1)
For i = 2 To 6382
' hole filename
szName = ActiveSheet.Cells(i, 6).Value
' ohne extension
szName = Mid(szName, 1, InStr(szName, ".") - 1)
For x = 1 To UBound(szFiles)
If szFiles(x) = szName Then
ActiveSheet.Range(ActiveSheet.Cells(i, 1), _
ActiveSheet.Cells(i, 9)).Interior.Color = RGB(0, 255, 0)
' und gleich kopieren
For j = 1 To 9
Sheets(index).Cells(nRow, j).Value = ActiveSheet.Cells(i, j).Value
Next j
nRow = nRow + 1
Exit For
End If
Next x
Next i
End Sub

mfg
Anzeige
AW: Dateien auf Verfügbarkeit prüfen ?
09.01.2006 14:25:05
Selma
Hallo Eugen,
hier bleibt es stehen:
szName = Mid(szName, 1, InStr(szName, ".") - 1)
LG
SELMA
AW: Dateien auf Verfügbarkeit prüfen ?
10.01.2006 07:33:21
Eugen
hi
ist da irgendwo eine leerzeile drin ?
in den zeilen 2 bis 6382 ?
mfg
bitte antwort an mein mail, dann gehts schneller
eugen.wenderhold@esg.de
AW: Dateien auf Verfügbarkeit prüfen ?
10.01.2006 12:27:22
Selma
Hallo Eugen,
dein Makro funtioniert auch....
Ein Zellinhalt hat keine Dateiendung gehabt :)
Danke nochmal....
Liebe Grüße
SELMA
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige