Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle in Spalte farbig wenn Datei in Verzeichnis

Forumthread: Zelle in Spalte farbig wenn Datei in Verzeichnis

Zelle in Spalte farbig wenn Datei in Verzeichnis
PointOfView
Hallo,
ich habe folgende Problemstellung:
In einer Datei werden Artikel aufgelistet. Zu diesen Artikeln erstellen wir zur Zeit Bilder (Foto´s) die in einem Verzeichnis abgelegt werden. Ich habe bereits eine Makrofunktion erstellt, die, sobald ich in Spalte "C" auf einen Artikel komme (ist eine numerische Angabe, und die Artikelbilder sind genauso benannt) wird das Bild geöffnet. Nun kann man aber noch nicht erkennen, zu welcher Artikel-Nr. bereits ein Bild existiert oder noch nicht existiert. Jetz habe ich überlegt, ob es nicht eine Funktion gibt, die das Bildverzeichnis ausliest und mit Spalte "C" vergleicht und die bereits vorhandenen Artikelnmummern in Spalte "C" farbig hervorhebt (Schriftfarbe oder Zellfarbe ist egal). Ich hoffe ich habe mich verständlich ausgedrückt.
Hier noch ein Link zur Beispieldatei:
https://www.herber.de/bbs/user/68213.xls
Viele Grüsse
Oliver
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zelle in Spalte farbig wenn Datei in Verzeichnis
24.02.2010 08:00:51
xr8k2
Hallo Oliver,
eine kleinen UDF (diese eingesetzt in der bedingten Formatierung) :
Function DateiVorhanden(pfad As String) As Boolean
If Dir(pfad) = vbNullString Then _
DateiVorhanden = False Else _
DateiVorhanden = True
End Function
Gruß,
xr8k2
Anzeige
AW: Zelle in Spalte farbig wenn Datei in Verzeichnis
24.02.2010 12:15:54
PointOfView
Hallo xr8k2,
Danke für den Tip. Muss ich die Funktion im Tabellenblatt oder in einem Modul hinterlegen?
Wenn ich das Richtig verstanden habe, dann müsste ich in der bedingten Formatierung angeben:
=DateiVorhanden
Ist das korrekt? Wenn nein, wie müsste ich es anmelden?
Vielen Dank im Voraus!
Gruss
Oliver
Anzeige
AW: Zelle in Spalte farbig wenn Datei in Verzeichnis
24.02.2010 16:09:20
PointOfView
Hallo,
also mit der Funktion klappt es bei mir nicht. Habe jetz mal alle möglichen Varianten durchprobiert und den pfad auf den tatsächlichen Verzeichnispfad geändert. Aber da tut sich nix.
Ich hab jetzt schon eine Hilfsfunktion mit Verzeichnis einlesen und in anderes Tabellenblatt schreiben aktiviert. Jetzt benötige ich noch ein Makro, dass in beiden Tabellenblättern die Spalten vergleicht und die Treffer farblich markiert.
Gruss
Oliver
Anzeige
AW: Zelle in Spalte farbig wenn Datei in Verzeichnis
25.02.2010 08:15:42
xr8k2
Hallo Oliver,
sorry dass ich mich erst jetzt melde ... hatte gestern keine Zeit mehr.
Für die UDF muss der komplette Pfad zur Datei angegeben werden. Ob der in deinem VBA-Projekt schon irgendwie hinterlegt ist konnt ich nicht prüfen wegen Passwortschutz ;-) .
In deiner Tabelle hast du scheinbar nur die reinen Dateinamen ohne Endung (wohl Spalte C ?!) hinterlegt. Du müsstest daher den gesamten Pfad (inkl. Dateiendung) in der Formel für die bedingte Formatierung zusammensetzen bzw. diesen in der UDF noch hinterlegen:
Bsp. Formel bed. Format.:
=Dateivorhanden("C:\DeinOrdner\" & $C7 & ".jpg")
Oder als Bsp. in der UDF:

Function DateiVorhanden(Dateiname As String) As Boolean
Const pfad  As String = "C:\Deinordner\"
Const endung As String = ".jpg"
If Dir(pfad & Dateiname & endung) = vbNullString Then _
DateiVorhanden = False Else _
DateiVorhanden = True
End Function
Dann würde als Formel in der bed. Formatierung das genügen:
=Dateivorhanden($C7)
Gruß,
xr8k2
Anzeige
ach und sorry ...
25.02.2010 08:17:22
xr8k2
die Function gehört in ein allgemeines Modul.
Gruß,
xr8k2
AW: ach und sorry ...
25.02.2010 12:47:21
PointOfView
Hallo xr8k2,
also hier kann ich nur sagen:
Ist das Geil!!
Ich wusste nicht, was man alles mit solchen Funktionen alles machen kann. Genial und vielen vielen Dank!
Viele Grüsse
Oliver
AW: ach und sorry ...
25.02.2010 12:53:41
PointOfView
Hallo xr8k2,
also zunächst einmal:
Ist das Geil!
Ich wusste gar nicht, was man mit solchen Funktionen alles machen kann. Genial und vielen vielen Dank!
Viele Grüsse
Oliver
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zelle in Spalte farbig hervorheben, wenn Datei im Verzeichnis vorhanden


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname.xls)".
    • Wähle "Einfügen" und dann "Modul".
  3. Füge die UDF (benutzerdefinierte Funktion) ein:
    Function DateiVorhanden(Dateiname As String) As Boolean
       Const pfad As String = "C:\DeinOrdner\" ' Ändere zu deinem Verzeichnis
       Const endung As String = ".jpg"
       If Dir(pfad & Dateiname & endung) = vbNullString Then _
           DateiVorhanden = False Else _
           DateiVorhanden = True
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Datei.
  5. Wähle die Zellen in Spalte C aus, die du farbig hervorheben möchtest.
  6. Gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
  7. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.
  8. Gib folgende Formel ein:
    =DateiVorhanden($C1)

    (Passe $C1 entsprechend der ersten Zelle in deiner Auswahl an.)

  9. Wähle das gewünschte Format (z. B. Hintergrund- oder Schriftfarbe) aus und klicke auf „OK“.
  10. Bestätige alles und die Zellen werden nun farbig hervorgehoben, wenn die entsprechenden Dateien im Verzeichnis vorhanden sind.

Häufige Fehler und Lösungen

  • Funktion nicht gefunden: Stelle sicher, dass du die UDF im richtigen Modul gespeichert hast. Die Funktion muss in einem allgemeinen Modul, nicht in einem Tabellenblatt-Modul sein.
  • Falscher Pfad: Überprüfe, ob der Pfad zu deinem Verzeichnis korrekt angegeben ist. Achte auf die richtige Schreibweise und die Endung der Dateien.
  • Zellen werden nicht farbig: Vergewissere dich, dass die Formel für die bedingte Formatierung korrekt eingegeben wurde und dass die Zellen, die du formatieren möchtest, tatsächlich Daten enthalten.

Alternative Methoden

Falls du keine VBA-Funktion verwenden möchtest, kannst du auch Excel-Funktionen wie WENN und VERGLEICH in Kombination mit einer Hilfstabelle nutzen. Diese Methode ist jedoch weniger flexibel und erfordert mehr manuelle Eingaben.


Praktische Beispiele

  1. Beispiel mit Pfad und Dateinamen: Angenommen, du hast in Spalte C die Artikelnummern Artikel1, Artikel2 und die entsprechenden Bilder sind als Artikel1.jpg, Artikel2.jpg im Verzeichnis C:\Bilder. Die UDF prüft dann, ob diese Dateien vorhanden sind und hebt die Zellen in Spalte C hervor.

  2. Bilder in einem anderen Format: Wenn deine Bilder in einem anderen Format (z. B. .png) vorliegen, ändere die Endung in der UDF entsprechend:

    Const endung As String = ".png"

Tipps für Profis

  • Verwende relative Pfade: Wenn du deine Excel-Datei und die Bilder auf demselben Laufwerk speicherst, kannst du den Pfad dynamisch gestalten, um die Portabilität zu erhöhen.
  • Automatisiere die Dateiauswahl: Du kannst auch eine UserForm erstellen, um den Benutzer den Ordner auswählen zu lassen, anstatt den Pfad fest im Code zu hinterlegen.

FAQ: Häufige Fragen

1. Wo sollte ich die UDF speichern?
Die UDF sollte in einem allgemeinen Modul im VBA-Editor gespeichert werden, nicht in einem speziellen Arbeitsblatt-Modul.

2. Funktioniert das auch in Excel Online?
Nein, VBA-Funktionen sind nur in Desktop-Versionen von Excel verfügbar. In Excel Online gibt es keine Unterstützung für Makros oder VBA.

3. Wie kann ich die Schriftfarbe statt die Zellfarbe ändern?
In der bedingten Formatierung kannst du unter „Format“ die Schriftfarbe auswählen, um die Schriftfarbe der Zellen zu ändern, anstatt den Hintergrund.

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