Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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
Inhaltsverzeichnis

Zellinhalt in geschlossen Dateien suchen..

Zellinhalt in geschlossen Dateien suchen..
Uwe
Guten Tag an Alle,
ist folgendes möglich?
wenn ich z.b. in Zelle A1 als Beispiel "ABC123" eingebe und auf enter drücke, dass dann in
C:Testordner mit jede Menge Unterordner die dann Paul;Hans;Klaus u.s.w. heißen in den geschlossenen Dateien geschaut wird ob das selbe auch in Zelle A1 steht und eine Meldung kommt ob vorhanden oder nicht?
In der Recherche hab ich so einen Fall leider nicht gefunden.
Vorab schon mal vielen Dank!!!!
Gruß Uwe
AW: Zellinhalt in geschlossen Dateien suchen..
06.08.2010 12:27:07
ransi
HAllo
Zitat:
...ob das selbe auch in Zelle A1 steht...

Wie heissen denn die relevanten Tabellenblätter in denen nachgeschaut werden soll ?
ransi
AW: Zellinhalt in geschlossen Dateien suchen..
06.08.2010 14:04:03
Uwe
Hallo Ransi,
also das Tabellenblatt heisst immer "Eingabe"
Gruß Uwe
AW: Zellinhalt in geschlossen Dateien suchen..
08.08.2010 01:33:22
Uwe
Guten Abend an Alle,
erst mal dank an Ransi, Jogi und Rudi für die Unterstützung!!!!
Der Code von Rudi funktioniert natürlich wie gesagt. Leider schaffe ich es nicht es so anzupassen auf meine Wünsche.
noch mal der Versuch es besser zu erklären.
Im Ordner C:\Test sind jede Menge Unterordner mit Dateien unterschiedlicher Namen.... die Dateien haben aber eins immer gleich...Tabellenblatt "Eingabe". In diesem Tabellenblatt ist in Zelle E12 ein Zahlen und Buchstabencode.
Wenn ich jetzt eine neue Datei anlege und in Zelle E12 wieder einen neuen Code eingebe und enter drücke, möchte ich das eine MsgBox aufgeht und mir sagt ob so ein Code bereits in dem Ordner C:/Test bereits irgendwo besteht oder nicht.
Ich hoffe das ihr mit meiner Erklärung was anfangen könnt.
Nochmals Dank für die Hilfe!!!!
Gruß Uwe
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
08.08.2010 11:25:49
mpb
Hallo Uwe,
einfacher wäre es, wenn Du die Codes, die Du neu vergibst, in einer separaten Datei mitprotokollierst, d.h. z.B. einfach in der Spalte A untereinander schreibst und sortierst. Dann kannst Du manuell oder per Makro ganz einfach überprüfen, ob ein neuer Code schon existiert.
Gibt es denn bestimmte "Anforderungen" für die Gestaltung des Codes? Ansonsten könntest Du schon durch eine "intelligente" Vergabe der Codes eine Überprüfung ersparen. Eindeutig wäre z.B.
201008081123irgendwas
wenn Du maximal einen Code pro Minute brauchst und diesen Code z.B. heute um 11.33 Uhr angelegt hast.
Ich lasse die Frage mal offen.
Gruß
Martin
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
08.08.2010 13:45:37
Uwe
Hallo Martin,
es kommt mir nur drauf an das mir angezeigt wird ob das was ich da eingebe in dem ordner und seinen unterordner vorhanden ist. Und wie beschrieben, sind die Dateinamen zwar immer unterschiedlich, aber das erste Tabellenblatt heist immer "Eingabe" und es ist dann auch immer die Zelle A1 die abzuprüfen ist.
Lediglich eine Msg Box als hinweis würde reichen.....
Gruß Uwe
AW: Zellinhalt in geschlossen Dateien suchen..
08.08.2010 14:15:14
mpb
Hallo Uwe,
Du hast meine Intention wohl nicht verstanden. Ich wollte Dir Wege aufzeigen, das Problem (künftig) zu vermeiden, indem Du die Codes mit System anlegst, so dass nie ein doppelter Code vorkommen kann. Dann ersparst Du Dir die ständige Überprüfung in geschlossenen Dateien, die nicht so ganz trivial ist, erst recht bei dem von Dir angegebenen Excel-Niveau.
Vielleicht gehst Du noch einmal inhaltlich auf meine Fragen/Anmerkungen von vorhin ein.
Gruß
Martin
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
08.08.2010 14:42:31
Uwe
Hallo Martin,
das ist halt auch das Problem wenn ich das mal so laienhaft darstellen kann.
sagen wir mal es steht ein Name in A1 " Hans"...... und in den Unterordnern steht bei den Dateien dann auch ein paar mal "Hans" in A1, was ja vorkommen kann und auch sicher wird. Dann muß ich nicht gezeigt bekommen wie viele "Hans" es sind, sondern nur ein Hinweis das einer min. vorhanden ist.
Also ein Hinweis, das da schon mal was war.....
Ansonsten haßt du natürlich völlig recht es so zu machen um einiges zu umgehen...
.... mit bitte um Nachsicht und Dank für deine Geduld mit mir :-)
Gruß Uwe
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
06.08.2010 13:32:08
JogyB
Hallo Uwe,
Daten aus geschlossenen Arbeitsmappen kann man mit folgender Funktion auslesen
Private Function GetValue(ByVal path As String, ByVal file As String, ByVal sheet As String,  _
ByVal ref As String)
Dim arg As String
' Argument generieren
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Cells(1, 1).Address(, ,  _
xlR1C1)
' ExcelMacro ausführen
GetValue = ExecuteExcel4Macro(arg)
End Function

Das muss jetzt noch über alle Deine Dateien laufen. Hier wäre nun die Frage, ob die Unterordner feste Namen haben oder ob die sich ändern. Wenn sie sich ändern, würde ich das bevorzugt über FileSearch machen, aber dann läuft es ab Excel 2007 nicht mehr. Wenn da also ein Umstieg geplant ist, dann müsste man eine andere Suchmethode nehmen (ist kein Problem, so etwas habe ich da, nur muss ich es wissen).
Gruß, Jogy
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
06.08.2010 14:08:18
Uwe
Guten Tag jogi,
erst mal Dank soweit.
da ich noch nicht so fit mit VBA bin hab ich sicher schon bei der Erklärung geschludert :-)
Also die Unterordner haben immer andere Namen... die darin enthaltenden Dateien haben aber immer ein Tabellenblatt mit dem Namen "Eingabe" und da soll dann auch in Zelle A1 gesucht werden.
Gruß Uwe
mal ne Liste
06.08.2010 14:27:46
Rudi
Hallo,
damit wird eine Liste aller Files mit dem Wert aus A1 generiert. Kannst du dann ja filtern.
Sub tt()
Dim myFileArray As Variant, lngFileCount As Long
lngFileCount = FileSearchFSO(myFileArray, "c:\test", "*.xls", True)
If lngFileCount > 0 Then
myFileArray = WorksheetFunction.Transpose(myFileArray)
With Worksheets.Add
.Cells(1, 1) = "File"
.Cells(1, 2) = "A1"
.Cells(2, 1).Resize(lngFileCount, 2) = myFileArray
End With
End If
End Sub
Private Function FileSearchFSO _
(ByRef strFiles As Variant, _
ByVal InitialPath As String, _
Optional ByVal FileName As String = "*", _
Optional ByVal SubFolders As Boolean = False) _
As Long
Dim mobjFSO As Object, mfsoFolder As Object, mfsoSubFolder As Object, mfsoFile As Object
Static n As Integer
Set mobjFSO = CreateObject("Scripting.FileSystemObject")
Set mfsoFolder = mobjFSO.GetFolder(InitialPath)
On Error Resume Next
For Each mfsoFile In mfsoFolder.Files
If Not mfsoFile Is Nothing Then
If LCase(mobjFSO.GetFileName(mfsoFile)) Like LCase(FileName) Then
If IsArray(strFiles) Then
n = n + 1
ReDim Preserve strFiles(1 To 2, 1 To n)
Else
n = n + 1
ReDim strFiles(1 To 2, 1 To n)
End If
strFiles(1, n) = mfsoFile
strFiles(2, n) = "='" & mfsoFolder & "\[" & mfsoFile.Name & "]Tabelle1'!A1"
End If
End If
Next
If SubFolders Then
For Each mfsoSubFolder In mfsoFolder.SubFolders
FileSearchFSO strFiles, mfsoSubFolder, FileName, SubFolders
Next
End If
If IsArray(strFiles) Then FileSearchFSO = n
On Error GoTo 0
Set mobjFSO = Nothing
Set mfsoFolder = Nothing
End Function

Gruß
Rudi
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
08.08.2010 22:44:44
Uwe
Hallo an Alle.....
so nun hab ich mir alle Anregungen und Fragen von Ransi, Martin und Rudi mal angeschaut.....
... folgende Änderungen zur möglichen Vereinfachung einer Abfrage hab ich jetzt mal umgesetzt.
Nun gibt es eine geschlossene Datei mit Namen "gesamt".... in Tabelle1 in Spalte L stehen nun alle bereits vorhanden Codes.
Ist es jetzt einfacher eine Abfrage zu starten, wenn ich in E12 einen Code eingebe das mir nach enter eine MsgBox angezeigt wird wenn dieser Code schon mal in der Datei "gesamt\Tabelle1 in Spalte L vorhanden ist?
Ich hoffe ich hab es nun was einfacher gestaltet :-)
Vorab schon mal dank an Alle für die Mühen!!!!!
Gruß uwe
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
09.08.2010 14:51:43
mpb
Hallo Uwe,
rechter Mausklick auf den Reiter der Tabelle, in der Du den Code eingibst. In das sich öffnende Fenster folgenden Code kopieren:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$12" Then
z = Workbooks("gesamt.xls").Worksheets("Tabelle1").Range("L65356").End(xlUp).Row
For i = 1 To z
If Target = Workbooks("gesamt.xls").Worksheets("Tabelle1").Cells(i, 12) Then
MsgBox "Code bereits vorhanden"
Exit For
End If
Next i
End If
End Sub
Datei "gesamt.xls" muss geöffnet sein.
Gruß
Martin
AW: Zellinhalt in geschlossen Dateien suchen..
09.08.2010 17:59:07
Uwe
Hallo Martin,
super!!!! Das funktioniert schon mal super!!!
Habe aber Option Explicit vorangestellt..... wie muß der Code den verändert werden wenn ich erst die Datei öffne dann dein Code und danach die Datei wieder schließe.....
Hab versucht das zu erweitern....
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet, z As Worksheet
If Target.Address = "$E$12" Then
Set wks = Workbooks.Open("c:\gesamt.xls")  '.Sheets ("Tabelle1")
z = Workbooks("gesamt.xls").Worksheets("Tabelle1").Range("L65356").End(xlUp).Row
For i = 1 To z
If Target = Workbooks("gesamt.xls").Worksheets("Tabelle1").Cells(i, 12) Then
MsgBox "Fahrzeug bereits in Datenbank vorhanden"
Exit For
End If
Next i
End If
wks.Parent.Close True
End Sub
...so macht er mir bei for i einen Abbruch!?
Gruß Uwe
Anzeige
AW: Zellinhalt in geschlossen Dateien suchen..
10.08.2010 11:12:56
mpb
Hallo Uwe,
da geht so einiges durcheinander. Versuche mal folgendes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim z As Long
Dim i As Long
Application.ScreenUpdating = False
If Target.Address = "$E$12" Then
Workbooks.Open ("c:\gesamt.xls")
z = Workbooks("gesamt.xls").Worksheets("Tabelle1").Range("L65356").End(xlUp).Row
For i = 1 To z
If Target = Workbooks("gesamt.xls").Worksheets("Tabelle1").Cells(i, 12) Then
MsgBox "Fahrzeug bereits in Datenbank vorhanden"
Workbooks("gesamt.xls").Close
Exit Sub
End If
Next i
Workbooks("gesamt.xls").Worksheets("Tabelle1").Cells(z + 1, 12) = Target
Workbooks("gesamt.xls").Close SaveChanges:=True
End If
Application.ScreenUpdating = True
End Sub
Ich habe zusätzlich noch eingebaut, dass in Spalte L in Tabelle1 in Datei gesamt.xls ein neuer in E12 eingegebener Code automatisch anghängt und somit bei der nächsten Prüfung eines Codes berücksichtigt wird. Ansonsten müsstest Du die Liste vergebener Code ja ständig manuell aktualisieren.
Gruß
Martin
Anzeige
Klasse!!!!...
10.08.2010 11:46:02
Uwe
Hallo Martin,
hab es jetzt mal so eingebaut und es läuft super!!!!!
Ich kann mich nur noch mal sehr herzlich bei Dir bedanken für deine Mühe und Geduld!!!!!
Gruß Uwe

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige