Aufpoppendes Fenster für offene Lieferungen

  • Excel

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Suchende VBA EXCEL.

    Aufpoppendes Fenster für offene Lieferungen

    Hallo, ich bin noch ein Neuling zum Thema VBA.
    Ich habe eine spezielle Datentabelle für meine tägliche Arbeit erstellt, da kein ERP-System vorhanden ist.

    Meine Tabelle besteht aus 51 Spalten und momentan 411 Zeilen, in der alle Daten zu Bestellungen erfasst sind.
    In der ersten Spalte wird mir farblich durch eine bedingte Formatierung der aktuelle Stand der Bestellung angezeigt.
    Blau - Auftragsbestätigung vorhanden, Gelb - Lieferung erhalten, Grün - Rechnung offen. Wenn das Feld ohne Farbe ist, ist der Vorgang abgeschlossen und erledigt.
    Zusätzlich habe ich einen Code drinnen, der die aktuelle Zeile, in der man sich befindet farblich markiert. Dann findet man sich schneller zurecht.

    Jetzt zu meinem Problem:
    Auf Grund der großen Datenmenge gehen oft die Daten unter, welche Bestellungen noch nicht geliefert wurden.
    Ich würde gern ein aufpoppendes Fenster einfügen wollen (auch gern über ein kleine Schaltfläche zum anklicken) in der alle offenen Lieferungen aus der Spalte 31 (also leere Felder) mit dem dazugehörigen Produkt aus Spalte 10 sowie wenn möglich dem Lieferanten aus Spalte 12 angezeigt bekomme.

    Könnte mir jemand bei der Umsetzung helfen oder ist das unrealistisch? Es würde mir meinen täglichen Arbeitsablauf ungemein erleichtern und die Fehlerquote senken.
    Ich würde mich sehr über Hilfe freuen bzw. einem Hinweis, wenn dies nicht möglich ist.

    Vielen Dank im Voraus.
    MFG Sandy :)
    Hi,
    ja es sind Filter oben. Allerdings ist die Tabelle mit 51 Spalten ja sehr groß. Wenn ich filtere habe ich Unmengen an unnötigen Daten und muss sehr viel scrollen oder per Hand ausblenden, was viel Zeit in Anspruch nimmt. Zumal die Tabelle von mehreren Kollegen genutzt wird und wenn ich was ausblende, sehen sie das dann auch nicht mehr, da die Tabelle durch die IT mehrfach gespeichert wird um Datenverlust zu vermeiden. Es sind Unmengen an LINKS enthalten, daher die ständige automatische Sicherung.

    Daher suche ich nach Lösungen, die gut zu händeln sind. Ansonsten würde mir nur noch eine Verlinkung der entsprechenden Zellen in eine zusätzliche Datei eingefallen.
    Das Anzeigen in der Haupttabelle über eine solche "Box" würde für andere Kollegen die Übersichtlichkeit erleichtern.

    Vielen Dank für die schnelle Meldung. VG
    Hi ja das wäre schon möglich.
    Woran erkennt man denn in Spalte 31 ob die Bestellung offen ist oder nicht?
    Und wie soll das Ganze genau ausgelöst werden? Durch einen Button direkt in der Excel Tabelle?
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo Mono,
    im Moment habe ich die Spalten so formatiert das die spalte 31 ein Datum erhält, wenn ich den Lieferschein vor Ort habe. Mit Eingabe des Datums, verschwindet die farbliche Hinterlegung des Feldes.
    Ich kenne bisher solche Funktionen mit zusätzlichem Button in der ersten Zeile des Tabellenblattes. Ich habe auch schon mal ein Startcode gehabt, der das Feld beim Öffnen der Datei schon anzeigt. Ich glaube das wäre eine super Idee, so etwas hier auch einzubauen. Die Kollegen schauen oft in meine Datei um zu schauen, ob Ihre Bestellungen geliefert wurden. Wenn es sich automatisch öffnet, hätten sie gleich alles auf einen Blick parat, was sie an Daten benötigen.
    Der Code zum raussuchen ist relativ simpel. Da gibt es verschiedene Möglichkeiten.
    Da es um Datumszellen geht nehme ich den "sicheren" Weg und überprüfe einfach alle Zellen

    Visual Basic-Quellcode

    1. Public Sub CheckOpenBills()
    2. Dim outPut As String
    3. Dim a As Long, start As Long, TotalRows As Long
    4. TotalRows = Worksheets(1).UsedRange.Rows.Count
    5. start = 2 'erste Zeile setzen, ab der nach Lieferungen geschaut werden soll
    6. outPut = ""
    7. For a = start To TotalRows
    8. If Worksheets(1).Cells(a, 31).Value = "" Then 'wenn Spalte 31 leer ist, dann Produkt und Lieferant holen
    9. 'hier wird die Zeile erstellt für die Anzeige
    10. outPut = outPut & "Produkt: " & Worksheets(1).Cells(a, 10).Value & " - Lieferant: " & Worksheets(1).Cells(a, 12).Value & vbCrLf
    11. End If
    12. Next
    13. If outPut = "" Then
    14. MsgBox "Keine offenen Lieferungen", vbOKOnly, "Offene Lieferungen"
    15. Else
    16. 'Anzeige in einer MessageBox
    17. MsgBox outPut, vbOKOnly, "Offene Lieferungen"
    18. End If
    19. End Sub


    Diese Methode kann man einem Button zuweisen den du auf das Excelblatt ziehst (dann wirst du aufgefordert ein Makro zuzuweisen.
    Dazu musst du in Excel unter Optionen -> Ribbons das Developer Ribbon aktivieren. Dann kannst du Controls zu deinem Workbook hinzufügen.
    Alternativ kannst du das auch unter Workbook_Open aufrufen, oder beides.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Es bestünde theoretisch die Möglichkeit eine Userform anzuzeigen statt einer Messagebox. Mit dieser hätte man natürlich mehr Möglichkeiten die Daten zu präsentieren und ggf. auch Funktionalitäten einzubauen.
    Anhand deiner Problembeschreibung schien das mir jedoch ein wenig "too much".

    Alternativ könnte man die Daten auch in ein Extra Tabellenblatt schreiben etc.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo Mono,

    prinzipiell funktioniert es. Ich habe noch einen zusätzlichen Zeilenumbruch nach jeder Position eingefügt. Das liest sich dann besser. Jedoch habe ich festgestellt, dass ja Zeilenanzahl begrenzt ist. Wir also nicht alle Daten sehen. Ich habe auch schon an eine Userform gedacht, jedoch dachte ich bisher, dass ich dort keine Such- und Anzeigefunktion integrieren kann. Ich habe bisher nur Userforms angewendet, wenn ich Daten im Hintergrund in eine Exceltabelle schreiben lassen habe. So habe ich meine Lieferantendatenbank aufgebaut. Es war leichter bei der Eingabe.

    Deiner Information kann ich entnehmen, dass das mit einer Userform eventuell doch geht?
    Erstellen kann ich die Userforms, aber wie bekommt man genau diese Datensuche- und anzeige dort hinein, so dass er wirklich alle offenen Lieferungen anzeigen kann. Hast du da für mich einen Tipp?

    Vielen Dank. :)
    Hallo,

    ich würde das einfach filtern. Folgendes Makro wechselt die Ansicht Nur offene oder alle Bestellungen. Es kommt in den Codebereich der Tabelle. In einem Modul muss halt noch das Worksheet ergänzt werden.

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub OffeneBestellungenFilterWechsel()
    3. Dim l As Long
    4. If Columns(1).Hidden Then
    5. Cells.EntireColumn.Hidden = False
    6. Range("1:1").AutoFilter Field:=32
    7. Else
    8. Range("1:1").AutoFilter Field:=32, Criteria1:="="
    9. For l = 1 To 52
    10. Select Case l
    11. Case 10, 12, 32
    12. Case Else
    13. Columns(l).Hidden = True
    14. End Select
    15. Next
    16. End If
    17. End Sub

    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Du kannst den Code einfach in dein Worksheet hinzugeben und diesen Code zB einem Button zuweisen, den du auf das Excel Sheet hinzufügst.
    Du hattest ja oben geschrieben, das du keinen Filter verwenden willst, aber teste es doch trotzdem mal. Ich denke die Lösung ist vll die schönste (trotz deiner es soll kein Filter sein Voraussetzung).

    Was ich mir noch Vorstellen könnte wäre halt ein Extra Tabellenblatt, welches nur die offenen Bestellungen enthält aus den ganzen Bestellungen.
    Das wäre ja ggf auch übersichtlich.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo Mono,
    ich habe mich überzeugen lassen. :) :) (Idee von Peterfido)
    Habe das mit dem Code für die Filteroption ausprobiert und setze sie gerade um. Ich habe einen Button in meinem Tabellenblatt eingefügt der eine kleine Userform öffnet. Dort habe ich 4 Button eingefügt. 1. Offene Lieferung, 2. Fehlende Rechnungen, 3. Fehlende Auftragsbestätigungen. Da habe ich bisher bei Offene Lieferungen den Code auf den Button gelegt. (Über Modul 1). Das scheint ganz gut zu funktionieren. Jetzt muss ich das noch für die anderen Beiden Varianten ausprobieren.
    Wenn das klappt bleiben nur noch zwei kleine Dinge zum tüfteln.
    1. würde ich gern überfällige Lieferungen anzeigen lassen. Also wo ein Liefertermin angegeben wurde. (Bei den offenen Lieferungen sind ja auch die dabei, wo wir keinen verbindlichen Termin genannt bekommen haben.)
    2. Ein Abbrechen-Button.
    Ich habe es so gemacht, dass ich parallel im Excel arbeiten kann sowie auch in der Userform. Das klappt gut. Allerdings muss man bevor einen anderen Button auswählen kann, muss man noch mal auf den gefilterten Button drücken, damit die Tabelle wieder komplett ist. Dies würde ich gern über das Abbrechen realisieren. Dann brauchen die Kollegen nur den einen Button drücken.
    Falls ich das nicht selbst schaffe, freue ich mich auf Hilfe.