Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

Tabelle Benutzerdefiniert formatieren

Tabelle Benutzerdefiniert formatieren
18.06.2016 00:46:48
Daniel
Hallo liebe Forumsgemeinde,
Ich brauch wieder mal Eure Hilfe.
Jeden Tag bekomme ich eine dynamische Lagerliste (von A7 bis ca. H400). Wegen der besseren Übersicht würde ich gern eine Lagerbestand Tabelle formatieren. Habe mit Makro Rekorder folgenden Code aufgenommen.
  • Sub Formatierung_Lagerbstands_ListeTest()
    'Das ist mein aufgezeichnetes Makro
    'Gesuchte Lösung: schreibe in Zeile "C3" Formel =Heute()
    'Ganzes Tabellenblatt formatieren ohne Gitternetzlinien
    'Feste engl. Begriffe Von "A6"= "Artic.Nr." bis "H6"= "Delivery" Schrift fett
    'Dynamische Rahmen Linien (es soll geprüft werden: von "A6" bis zum letzte gefüllte Zeile in  _
    Spalte z.B. "A205" dann Rahmen Lienen von "A6:H206"
    'Wie kann man über Makro Befehl Ampel Symbolsätze
    'in Spalte "C" (immer von C8 bis letzter gefüllte Zeile in Spalte "C" ausführen?
    'S. bitte Makro "Ampel_Symbol_Sätze"
    ActiveWindow.DisplayGridlines = False
    Columns("A:A").ColumnWidth = 22.29
    Columns("B:B").ColumnWidth = 32
    Columns("B:B").ColumnWidth = 38.71
    Range("C3").Select
    ActiveCell.FormulaR1C1 = "=TODAY()"
    Range("C3").Select
    Selection.Font.Bold = True
    Range("A6:H6").Select
    With Selection.Font
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    End With
    Selection.Font.Bold = True
    Selection.Font.Size = 11
    Range("A6:H6").Select
    With Selection.Font
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    End With
    Range("A6").Select
    ActiveCell.FormulaR1C1 = "Artic.Nr."
    Range("B6").Select
    ActiveCell.FormulaR1C1 = "Products"
    Range("C6").Select
    ActiveCell.FormulaR1C1 = "Used by date"
    Range("D6").Select
    ActiveCell.FormulaR1C1 = "Euro palett"
    Range("E6").Select
    ActiveCell.FormulaR1C1 = "Numbr. EP"
    Range("F6").Select
    ActiveCell.FormulaR1C1 = "Box quantitiy"
    Range("G6").Select
    ActiveCell.FormulaR1C1 = "Products quantity"
    Range("H6").Select
    ActiveCell.FormulaR1C1 = "Delivery"
    Range("C6").Select
    Columns("C:C").ColumnWidth = 13.14
    Columns("D:D").ColumnWidth = 14.57
    Columns("D:D").ColumnWidth = 13.14
    Range("D6").Select
    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = True
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    Range("D7").Select
    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = True
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    Columns("D:D").ColumnWidth = 9.43
    Columns("D:D").ColumnWidth = 7.29
    Rows("6:6").Select
    Rows("6:6").EntireRow.AutoFit
    Range("F6").Select
    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = True
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    Columns("F:F").ColumnWidth = 8.57
    Range("G6").Select
    With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = True
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    Range("A6:H6").Select
    Range("H6").Activate
    With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlBottom
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    Range("A6:H50").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlMedium
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("A4").Select
    Call Ampel_Symbol_Sätze
    End Sub
    


  • Das Einzige was ich nicht hinkriege die Tabelle Benutzerdefiniert formatieren bezogen auf dynamische Größe (von A6 bis mal H205 oder bis H356 etc). Dazu brauche ich eine Ampel Symbolsätze (auf Datum bezogen- Mindesthaltbarkeitsdatum - MHD).
    Wer kann mir folgende Prozedur in Makro anpassen.
    - Wenn der Datum in Spalte „C“(ab C8) kleiner ist (von den heutigen Datum in „C3“als 55 Tagen dann soll grüne Ampel neben den Datum hinkommen
    - Wenn der Datum in Spalte „C“(ab C8) kleiner ist (von den heutigen Datum in „C3“als 20 Tagen dann soll gelbe Ampel neben den Datum hinkommen
    - Wenn der Datum in Spalte „C“(ab C8) kleiner ist (von den heutigen Datum in „C3“als 19 Tagen dann soll rote Ampel neben den Datum hinkommen
  • Sub Ampel_Symbol_Sätze()
    'Wie lautet Makro der Befehl ab "C8" bis letzte gefüllte Zelle in Spalte "C"
    'Solle mit Symbol (Ampel) formatiert werden? Formatstil-Symbolsätze
    '(Ampel)Grün - (Wenn Wert)         ">=" (Wert) =$C$3+55 Typ Formel
    '(Ampel)Gelb - (Wenn =" (Wert) =$C$3+55 Typ Formel
    '(Ampel) Rot - Wenn 


  • In der Mappe habe ich 2 Tabellen Blätter Vorher (Daten aus DB System) Nachher (wie es aussehen sollte).
    https://www.herber.de/bbs/user/106331.xls
    Wer könnte mir bitte helfen und den Makro anzupassen
    Wäre super wenn mir dabei jemand helfen könnte.
    Gruß Daniel

    2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Tabelle Benutzerdefiniert formatieren
    18.06.2016 13:23:56
    Christian
    hallo Daniel,
    das gesamte Makro inkl. der bedingten Formatierung könnte zB. so aussehen.
    Option Explicit
    Sub Test_Formatierung()
    Dim lngLR As Long
    Dim i As Long
    With Sheets("Vorher")
    lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Columns(1).ColumnWidth = 22.22
    .Columns(2).ColumnWidth = 38.67
    .Columns(3).ColumnWidth = 13.11
    .Columns(4).ColumnWidth = 7.22
    .Columns(6).ColumnWidth = 8.56
    .Cells(3, 3).FormulaR1C1 = "=TODAY()"
    .Cells(3, 3).Font.Bold = True
    With .Cells(6, 1).Resize(, 8)
    .Value = Array("Artic.Nr.", "Products", "Used by date", "Euro palett", _
    "Numbr. EP", "Box quantitiy", "Products quantity", "Delivery")
    .Font.Bold = True
    .Font.Size = 11
    .WrapText = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    End With
    .Rows(6).AutoFit
    .Cells(6, 1).Resize(lngLR - 5, 8).BorderAround Weight:=xlMedium
    .Cells(8, 3).Resize(lngLR - 7).NumberFormat = "m/d/yyyy"
    For i = 8 To lngLR
    If Len(.Cells(i, 3)) Then
    .Cells(i, 3) = CDate(.Cells(i, 3))
    End If
    Next
    With .Cells(8, 3).Resize(lngLR - 7)
    .FormatConditions.Delete
    .FormatConditions.Add Type:=6
    With .FormatConditions(1)
    .IconSet = xl3TrafficLights1
    .IconCriteria(1).Operator = 7
    .IconCriteria(2).Operator = 7
    .IconCriteria(2).Type = xlConditionValueFormula
    .IconCriteria(2).Value = "=$C$3+20"
    .IconCriteria(3).Operator = 7
    .IconCriteria(3).Type = xlConditionValueFormula
    .IconCriteria(3).Value = "=$C$3+55"
    End With
    End With
    .Activate
    End With
    ActiveWindow.DisplayGridlines = False
    End Sub
    
    Gruß
    Christian

    Anzeige
    AW: Tabelle Benutzerdefiniert formatieren
    18.06.2016 20:05:26
    Daniel
    Hallo Christian,
    Christian Vielen Dank. Das funktioniert ausgezeichnet.
    Ich kann es immer wieder wiederholen dass es für mich hier der bester Excel Forum ist.
    Schönes Wochenende
    Gruß
    Daniel

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige