Supportnet / Forum / Tabellenkalkulation
Aus einer Tabelle prüfen, ob eine Datei gespeichert wurde, dieses dann farblich markieren
Frage
Hallo,
ich brauch mal wieder Eure Hilfe!!!!!
Ich hab mir eine Tabelle aufgebaut wo ich Ausgänge protokollieren möche. In der Spalte A ab Zeile 10 werden die Auftragsnummern (untereinander) eingegeben in Zeile B das Ausgangsdatum und in Spalte C sollen Bemerkungen eingegeben werde können. Zusätzlich wird noch ein Warenausgangsschein aus einer anderen Datei gedruckt und in ein gleichbleibendes Verzeichnis unter der Auftragsnummer gespeichert z.B. D:Alles....
Jetzt das meine Frage:
Ist es möglich, wenn ich in der Spalte A eine Auftragsnummer eingebe, das ein VBA Code in das Verzeichnis schaut und überprüft ob ein Warenausgangsschein gespeichert wurde? Wenn die Datei mit der Auftragsnummer vorhanden ist, soll die Zeile dann (von A bis C) grün markiert wird und wenn die Datei nicht vorhanden ist, dann Soll die Zeile rot markiert werden.
für Eure Mühe bedanke ich mich schon im voraus!!!!
Gruß
Elhamplo
Antwort 1 von coros
Hi Ellhamplo,
mit nachfolgendem Makro wird in einem Verzeichnis die Nummer in Spalte A geprüft. Existiert eine Datei mit der Nummer, wird der Bereich A:C grün, ansonsten rot gefärbt. Kopiere das Makro in ein StandardModul und starte es über eine Befehlsschaltfläche.
In der Zeile
musst Du noch den Pfad ändern.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
mit nachfolgendem Makro wird in einem Verzeichnis die Nummer in Spalte A geprüft. Existiert eine Datei mit der Nummer, wird der Bereich A:C grün, ansonsten rot gefärbt. Kopiere das Makro in ein StandardModul und starte es über eine Befehlsschaltfläche.
Option Explicit
Sub Prüfen()
Dim i As Long
For i = 1 To Range("A65536").End(xlUp).Row
If Dir("C:\" & Cells(i, 1) & ".xls") <> "" Then
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 4
Else
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 3
End If
Next
End Sub
In der Zeile
If Dir("C:\" & Cells(i, 1) & ".xls") <> "" Then
musst Du noch den Pfad ändern.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Elhamplo
Hallo Coros,
vielen vielen dank für die Hilfe.
Der Code klappt super.
Kann man den Code so umformen, sobald man was in Spalte A eingibt eine automatische Prüfung durchläuft??
Funktioniert das auch mit Ordner?? Hätten Ordner die gleichen Nummern wie in Spalte A, kann dann geprüft werden ob ein Ordner mit der Nummer vorhanden ist???
Vielen Dank für Deine Mühe die Du Dir immer machst!!!!!!!
Gruß
Elhamplo
vielen vielen dank für die Hilfe.
Der Code klappt super.
Kann man den Code so umformen, sobald man was in Spalte A eingibt eine automatische Prüfung durchläuft??
Funktioniert das auch mit Ordner?? Hätten Ordner die gleichen Nummern wie in Spalte A, kann dann geprüft werden ob ein Ordner mit der Nummer vorhanden ist???
Vielen Dank für Deine Mühe die Du Dir immer machst!!!!!!!
Gruß
Elhamplo
Antwort 3 von Elhamplo
Hallo,
Sorry!!!
kurzer Nachtrag. Der Code müsste auch den Ordner wie in der Spalte A suchen und in dem Ordner die Datei mit dem Nummer aus der Spalte A. So das für jeden Auftrag ein eigener Ordner angelegt werden kann.
Danke!!!
Gruß
Elhamplo
Sorry!!!
kurzer Nachtrag. Der Code müsste auch den Ordner wie in der Spalte A suchen und in dem Ordner die Datei mit dem Nummer aus der Spalte A. So das für jeden Auftrag ein eigener Ordner angelegt werden kann.
Danke!!!
Gruß
Elhamplo
Antwort 4 von coros
Hallo Elhamplo,
kopiere nachfolgenden Code in das VBA Projekt des Tabellenblattes, in dem die Daten in Spalte A geprüft werden sollen.
Ich hoffe, Du meintest das so? Wenn nicht, melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
kopiere nachfolgenden Code in das VBA Projekt des Tabellenblattes, in dem die Daten in Spalte A geprüft werden sollen.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim i As Long
For i = 1 To Range("A65536").End(xlUp).Row
If Not IsEmpty(Cells(i, 1)) = True Then
If Dir("C:\Daten\Müll\" & Cells(i, 1) & "\" & Cells(i, 1) & ".xls") <> "" Then
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 4
Else
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 3
End If
End If
Next
End If
End Sub
Ich hoffe, Du meintest das so? Wenn nicht, melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Elhamplo
Hallo,
Super Sache!!! Danke!
Noch eine Frage dazu, kann man auch nich einen Rahmen darum machen? Wenn er eine Zeile farblich makiert, das auch noch ein Rahmen erstelllt wird???
Vielen Dank
Gruß
Elhamplo
Super Sache!!! Danke!
Noch eine Frage dazu, kann man auch nich einen Rahmen darum machen? Wenn er eine Zeile farblich makiert, das auch noch ein Rahmen erstelllt wird???
Vielen Dank
Gruß
Elhamplo
Antwort 6 von Shaori
dann füge einfach nach der Zeile
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 4
noch die Zeile
Range(Cells(i, 1), Cells(i, 3)).BorderAround 1
ein. Die 1 steht für die Linienart (1 = durchgezogen)
kann beliebig verändert werden
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 4
noch die Zeile
Range(Cells(i, 1), Cells(i, 3)).BorderAround 1
ein. Die 1 steht für die Linienart (1 = durchgezogen)
kann beliebig verändert werden
Antwort 7 von Elhamplo
Hallo,
danke für die Hilfe!!!
Wie bekomme ich das hin das links und rechts einer Zelle auch ein Rand ist??
Vielen Dank für die Mühe!!!
Gruß
Elhamplo
danke für die Hilfe!!!
Wie bekomme ich das hin das links und rechts einer Zelle auch ein Rand ist??
Vielen Dank für die Mühe!!!
Gruß
Elhamplo
Antwort 8 von coros
Hi Elhamplo,
tausche die Zeile
gegen die Zeilen
aus.
Dann solltest Du Dir, bevor Du hier gleich wieder die nächste Frage stellst, was Du noch alles haben möchtest, und das dann mal gesammelt hier hinschreiben und nicht immer Stück für Stück.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
tausche die Zeile
Range(Cells(i, 1), Cells(i, 3)).BorderAround 1
gegen die Zeilen
With Range(Cells(i, 1), Cells(i, 3))
.BorderAround 1
.Borders(xlInsideVertical).LineStyle = 1
End With
aus.
Dann solltest Du Dir, bevor Du hier gleich wieder die nächste Frage stellst, was Du noch alles haben möchtest, und das dann mal gesammelt hier hinschreiben und nicht immer Stück für Stück.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 9 von Elhamplo
Hallo,
sorry das ich mich erst jetzt melde, war krank!!!!!
Vielen, vielen Dank für Deine Hilfe!!!!
Eine Sache hätte ich noch.
Ist es Möglich das man mit Hilfe eines Codes nur nach den roten Zeilen abfiltern und ein weiterer Code nur nach den grünen Zeilen abfiltern, so das man eine Übersicht erstellen kann? Ebenso bräuchte ich einen Code, der dann wieder in die Gesamtübersicht führt.
Vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Gruß
Elhamplo
sorry das ich mich erst jetzt melde, war krank!!!!!
Vielen, vielen Dank für Deine Hilfe!!!!
Eine Sache hätte ich noch.
Ist es Möglich das man mit Hilfe eines Codes nur nach den roten Zeilen abfiltern und ein weiterer Code nur nach den grünen Zeilen abfiltern, so das man eine Übersicht erstellen kann? Ebenso bräuchte ich einen Code, der dann wieder in die Gesamtübersicht führt.
Vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Gruß
Elhamplo
Antwort 10 von coros
Hi Elhamplo,
nachfolgende drei Makros machen dass, was Du Dir vorgestellt hast. Kopiere sie in ein StandardModul.
Makro 1 blendet alle Zeilen, in denen die Zelle in Spalte A nicht die Hintergrundfarbe rot hat aus. Bei Makro 2 geschieht das gleiche, nur wird hier nach der Farbe grün gefiltert. Mit Makro 3 werden alle Zeilen wieder eingeblendet.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgende drei Makros machen dass, was Du Dir vorgestellt hast. Kopiere sie in ein StandardModul.
Option Explicit
Sub Filtern_rot()
Dim Zelle As Range
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
For Each Zelle In Range("A2:A" & Range("A65536").End(xlUp).Row)
If Zelle.Interior.ColorIndex <> 3 Then
Zelle.EntireRow.Hidden = True
End If
Next
End Sub
Sub Filtern_grün()
Dim Zelle As Range
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
For Each Zelle In Range("A2:A" & Range("A65536").End(xlUp).Row)
If Zelle.Interior.ColorIndex <> 4 Then
Zelle.EntireRow.Hidden = True
End If
Next
End Sub
Sub Filter_aus()
Cells.EntireRow.Hidden = False
End Sub
Makro 1 blendet alle Zeilen, in denen die Zelle in Spalte A nicht die Hintergrundfarbe rot hat aus. Bei Makro 2 geschieht das gleiche, nur wird hier nach der Farbe grün gefiltert. Mit Makro 3 werden alle Zeilen wieder eingeblendet.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 11 von Elhamplo
Hallo Coros,
Super Sache, vielen Dank für die Hilfe!!!!!!!!!
Funktioniert alles Super!!!!!!
Ich bräuchte nochmal einen allgmeinen Tipp. Kann man per VBA den Benutzerdefinierten Autofilter in einer Bestimmten Spealte aufrufen?
Vielen Dank für die Hilfe!!!!
Gruß
Elhamplo
Super Sache, vielen Dank für die Hilfe!!!!!!!!!
Funktioniert alles Super!!!!!!
Ich bräuchte nochmal einen allgmeinen Tipp. Kann man per VBA den Benutzerdefinierten Autofilter in einer Bestimmten Spealte aufrufen?
Vielen Dank für die Hilfe!!!!
Gruß
Elhamplo
Antwort 12 von fedjo
Hallo Elhamplo,
der Autofilter filtert Spalte "A" der gesuchte Begriff wird in eine InputBox eingegeben.
Gruß
fedjo
Option Explicit
Sub Autofilter()
Dim Name As String
Name = InputBox("Bitte Namen eingeben!")
Range("A1").Autofilter Field:=1, Criteria1:=Name
Range("A2:B65536").Cells.SpecialCells(xlCellTypeVisible)(1).Select ´findet zweite Zelle in A
If ActiveCell.Value = "" Then
Selection.Autofilter ´Autofilter aus
End If
End Sub
Public Sub Filteraus()
Selection.Autofilter
End Sub
der Autofilter filtert Spalte "A" der gesuchte Begriff wird in eine InputBox eingegeben.
Gruß
fedjo
Option Explicit
Sub Autofilter()
Dim Name As String
Name = InputBox("Bitte Namen eingeben!")
Range("A1").Autofilter Field:=1, Criteria1:=Name
Range("A2:B65536").Cells.SpecialCells(xlCellTypeVisible)(1).Select ´findet zweite Zelle in A
If ActiveCell.Value = "" Then
Selection.Autofilter ´Autofilter aus
End If
End Sub
Public Sub Filteraus()
Selection.Autofilter
End Sub
Antwort 13 von Elhamplo
Hallo fedjo,
der Code ist Super.
Kann man das so Ändern das der Code in Spalte B (Überschrift ist in B5) ab B6 nach Datum suchen kann, Einzeldatum und von bis??
Vielen, vielen Dank!!!
Gruß
Elhamplo
der Code ist Super.
Kann man das so Ändern das der Code in Spalte B (Überschrift ist in B5) ab B6 nach Datum suchen kann, Einzeldatum und von bis??
Vielen, vielen Dank!!!
Gruß
Elhamplo
Antwort 14 von coros
Hi Elhamplo,
dann trage in dem Makro dort wo die Zellbezeichnung A1 steht B5 und dort wo A2 steht B6 ein. Bei "Field:=" muss die 1 gegen eine 2 getauscht werden
Also dann bis zur nächsten Frage in AW15.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
dann trage in dem Makro dort wo die Zellbezeichnung A1 steht B5 und dort wo A2 steht B6 ein. Bei "Field:=" muss die 1 gegen eine 2 getauscht werden
Also dann bis zur nächsten Frage in AW15.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 15 von Elhamplo
Hallo,
Vielen, vielen Dank für Eure Arbeit und Mühe!!!!!!!!!! Alles Super
Vielen, vilen Dank nochmal!!!
Gruß
Elhamplo
Vielen, vielen Dank für Eure Arbeit und Mühe!!!!!!!!!! Alles Super
Vielen, vilen Dank nochmal!!!
Gruß
Elhamplo
Antwort 16 von fedjo
Hallo Elhamplo,
Datum filtern:
Sub Autofilter()
Dim Name As Date
Name = InputBox("Bitte Datum eingeben TT.MM")
Range("B5").Autofilter Field:=2, Criteria1:=Name
Range("B6:B65536").Cells.SpecialCells(xlCellTypeVisible)(1).Select
If ActiveCell.Value = "" Then
Selection.Autofilter
End If
End Sub
Public Sub Filteraus()
Selection.Autofilter
End Sub
Gruß
fedjo
Datum filtern:
Sub Autofilter()
Dim Name As Date
Name = InputBox("Bitte Datum eingeben TT.MM")
Range("B5").Autofilter Field:=2, Criteria1:=Name
Range("B6:B65536").Cells.SpecialCells(xlCellTypeVisible)(1).Select
If ActiveCell.Value = "" Then
Selection.Autofilter
End If
End Sub
Public Sub Filteraus()
Selection.Autofilter
End Sub
Gruß
fedjo
Antwort 17 von Elhamplo
Hallo,
orry das ich mich erst jetzt melde. War nicht zu Hause und habmal keinen Rechner mitgenommen. Ist mal eine Erfahrung wert!!!:)
Vielen Dank für die Hilfe!!!!!
Hat super geklappt!!!! Danke!!!!
Gruß
Elhamplo
orry das ich mich erst jetzt melde. War nicht zu Hause und habmal keinen Rechner mitgenommen. Ist mal eine Erfahrung wert!!!:)
Vielen Dank für die Hilfe!!!!!
Hat super geklappt!!!! Danke!!!!
Gruß
Elhamplo