Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1536to1540
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

VBA andere Datei öffnen, durchsuchen und schließen

VBA andere Datei öffnen, durchsuchen und schließen
19.01.2017 19:04:00
Hauke
Hallo zusammen,
ich bräuchte auch mal Hilfe:
Ich habe eine Datei mit 2 verschiedenen Vorgaben zur Prüfung. Diese beiden Felder werden vom User ausgefüllt. Beim Klick auf den Button soll folgendes passieren:
- andere Datei öffnen (okay, bekomme ich hin)
- die beiden Begriffe müssen auf einem der mehreren Arbeitsblätter mindestens einmal vorhanden sein (oh je, ganz schwierig)
- Falls beide Daten auf der Liste stehen, soll der Farbwert einer der beiden ermittelt werden, (rot, blau oder grün), und anschließend die Datei geschlossen und das Ergebnis in einer Msgbox angezeigt werden
- Es müssen immer beide Vorgaben auf der Liste stehen, ansonsten soll die Datei geschlossen und das Ergebnis in einer Msgbox angezeigt werden.
Lässt sich soetwas realisieren? Ich bekomme die Datei geöffnet, aber dann die Suche dann beide Vorgaben aus der einen Datei in der anderen sucht, daran scheiter ich kläglich. :(
Vielen Dank schonmal für einen Rat!
Hauke

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA andere Datei öffnen, durchsuchen und schließen
19.01.2017 21:45:27
Dieter
Hallo Hauke,
ich gehe mal von den folgenden zusätzlichen Bedingungen aus:
1. Die beiden gesuchten Begriffe müssen im gleichen Tabellenblatt vorkommen. Anderenfalls ist das Suchergebnis negativ.
2. Bei der anzuzeigenden Farbe handelt es sich um die Schriftfarbe.
3. Die beiden gesuchten Begriffe werden über deine UserForm eingegeben. Ich nehme sie fest ins Programm.
Unter diesen dreiBedingungen kannst du das mit dem folgenden Programm machen:
Sub Begriffe_suchen()
Dim Begriff(1 To 2) As String
Dim begriffVorhanden(1 To 2) As Boolean
Dim datSuch As String   ' Name der Datei in der gesucht wird
Dim ergebnisZelle(1 To 2) As Range
Dim farbe(1 To 2) As Long
Dim i As Long
Dim pfad As String
Dim suchErgebnis As Object
Dim wbSuch As Workbook
Dim ws As Worksheet
datSuch = "Datei in der gesucht wird.xlsx"
Begriff(1) = "xyz"
Begriff(2) = "uvw"
' Arbeitsmappe öffnen
pfad = ThisWorkbook.Path & "\"
On Error Resume Next
Workbooks(datSuch).Close SaveChanges:=False
On Error GoTo 0
If Dir(pfad & datSuch) = "" Then
MsgBox pfad & datSuch & " existiert nicht"
Exit Sub
End If
Set wbSuch = Workbooks.Open(Filename:=pfad & datSuch)
For Each ws In wbSuch.Worksheets
For i = 1 To 2
begriffVorhanden(i) = False
Set suchErgebnis = ws.Cells.Find(What:=Begriff(i))
If Not suchErgebnis Is Nothing Then
begriffVorhanden(i) = True
Set ergebnisZelle(i) = suchErgebnis
farbe(i) = ergebnisZelle(i).Font.Color
End If
Next i
If begriffVorhanden(1) And begriffVorhanden(2) Then
Exit For
End If
Next ws
If begriffVorhanden(1) And begriffVorhanden(2) Then
MsgBox "Begriffe gefunden in Blatt " & ws.Name & vbNewLine & _
Begriff(1) & " in " & ergebnisZelle(1).Address(False, False) & _
" Farbe: " & farbe(1) & vbNewLine & _
Begriff(2) & " in " & ergebnisZelle(2).Address(False, False) & _
" Farbe: " & farbe(2)
Else
MsgBox "Es existiert kein Blatt, in dem beide Begriffe vorhanden sind"
End If
wbSuch.Close
End Sub
Viele Grüße
Dieter
Anzeige
AW: VBA andere Datei öffnen, durchsuchen und schließen
20.01.2017 10:56:29
Hauke
Hallo Dieter,
vielen Dank schonmal für deine ausführliche Antwort.
Ich hatte leider einen Denkfehler in der Suchvorgabe und komme nochmal rein:
- Ich habe die Datei "Suchen". In dieser Datei sind 2 Zellen mit den Suchvorgaben. Diese muss der User selbst eintragen, zum einen ein Datum (in A1) und zum anderen eine Zahl (in A3).
- Es gibt für jeden Monat eine eigene Datei die durchsucht werden soll. (Okay das entsprechende Makro kann ich ja mit Case ausführen. Gibt man also ein Datum im Oktober ein, soll die Datei 10-2016 durchsucht werden.)
- In der Liste 10-2016 stehen in der Spalte A immer das Datum und in Spalte C immer die Zahl. Das ist in jeder Monatsdatei gleich.
- Es muss geprüft werden ob die Vorgabe 1 in der Spalte A und die Vorgabe 2 in der Spalte C in der gleichen Zeile stehen. Alle Zeilen sind entweder grün, rot, blau oder haben keine Farbe. Wenn Vorgabe 1 in der Spalte A und die Vorgabe 2 in der Spalte C in der gleichen Zeile stehen, dann soll die Hintergrundfarbe der Zeile (es reicht ja eine Zelle, z.B. der A Spalte) und das Ergebnis in einer msgbox dargestellt werden a la "Ergebnis ist GRÜN/ROT/BLAU/BLANKO".
- Sind die Vorgabe 1 in der Spalte A und die Vorgabe 2 in der Spalte C auf KEINEM der Arbeitsblätter in 10-2016, dann soll die Rückmeldung lauten: "Ergebnis nicht auf Liste".
Schön wäre es, wenn die Datei 10-2016 und die Prüfung im Hintergrund erfolgen und die Msgbox einfach in der Datei "Suchen" aufplobbt.
Ist das so evtl auch machbar? :)
LG,
Hauke
Anzeige
AW: VBA andere Datei öffnen, durchsuchen und schließen
20.01.2017 14:11:30
Dieter
Hallo Hauke,
könntest du zum ersten die Datei, die du "Suchen" genannt hast, hochladen und zum zweiten ein Beispiel für die Datei "10-2016.xlsx", Werte ggf. jeweils verändert und/oder anonymisiert.
Haben diese Monatsdateien genau den Namen "mm-jjjj.xlsx" oder gibt es da noch einen Namenszusatz?
Stehen diese Dateien im gleichen Verzeichnis wie die Datei "Suchen"?
Färbe bitte in der Datei "10-2016.xlsx" ein paar Zellen in den genannten Farben als Muster. Das Farbsystem ist ja nicht mehr so einfach, dass man einfach nur rot, grün, blau sagen kann.
Ich werde mir die Sache dann heute Abend noch einmal anschauen.
Viele Grüße
Dieter
Anzeige
AW: VBA andere Datei öffnen, durchsuchen und schließen
21.01.2017 10:27:25
Hauke
Hallo Dieter,
habs leider erst jetzt geschafft. Habe auch festgestellt, dass zwar A und C als Spalte immer gleich sind, aber wenn der Grund auch noch in der Msgbox ausgegeben werden soll, steht dieser auf jedem Worksheet in einer anderen Spalte. Die Monatsdatei sind jedoch immer gleich aus vom Gerüst her.
https://www.herber.de/bbs/user/110767.xlsm
https://www.herber.de/bbs/user/110769.xlsx
Viele Grüße,
Hauke
AW: VBA andere Datei öffnen, durchsuchen und schließen
21.01.2017 13:27:59
Dieter
Hallo Hauke,
ich habe das Programm entsprechend angepasst.
Ich füge es hier bei.
Viele Grüße
Dieter
https://www.herber.de/bbs/user/110773.xlsm
Anzeige
AW: VBA andere Datei öffnen, durchsuchen und schließen
21.01.2017 18:45:54
Hauke
Hallo Dieter,
vielen vielen Dank. Das hätte ich nie zusammengebastelt bekommen. Aber ich werde fleißig üben und werden mir das Modul genau anschauen, wie es funktioniert.
Viele Grüße und ein schönes Wochenende,
Hauke

97 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige