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

Hilfe bei Makro Verfeinerung gesucht

Hilfe bei Makro Verfeinerung gesucht
20.02.2019 16:50:33
Torsten
Hallo,
ich habe mich als ziemlicher VBA-Anfänger zunächst allein durch eine Aufgabe gequält, aber an der ein oder anderen Stelle hackt es noch.
Grundsätzlich geht es darum, dass ich darstellen will wann bestimmte Materialnummern erstmals in der Dokumentation aufgetreten sind, d.h der neue Datensatz wird jeweils mit dem alten verglichen: ist die Nummer schon da, wird sie mitsamt des 1.Datums übertragen, ist sie nicht mehr da wird die zugehörige Zeile gelöscht, kam sie neu dazu wird sie mit dem heutigen Datum aufgenommen.
Das passiert mit dieser Beispieldatei: https://www.herber.de/bbs/user/127796.xlsm
schon ganz passabel, aber gibt noch einiges zu verbessern. Da komme ich aber nicht wirklich weiter. Hier erstmal der Code:
Option Explicit

Sub Uebergabe()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
If Sheets("Übersicht").FilterMode Then Sheets("Übersicht").ShowAllData
Sheets("Übersicht").Range("A1") = "Material"
Sheets("Übersicht").Range("B1") = "Materialkurztext"
Sheets("Übersicht").Range("C1") = "Beschaffertext"
Sheets("Übersicht").Range("D1") = "DNR"
Sheets("Übersicht").Range("E1") = "Disponent"
Sheets("Übersicht").Range("F1") = "Übergabedatum"
Sheets("Übersicht").Range("G1") = "Deadline"
Sheets("Übersicht").Range("H1") = "Tage seit Übergabe"
Sheets("Übersicht").Range("I1") = "Bewertung"
With Sheets("Übersicht").Range("$A$1:$I1")
.Font.Bold = True
End With
' Spaltenüberschriften (A1:T1) werden grau hinterlegt
With Sheets("Übersicht").Range("$A$1:$I$1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
' die Spaltenbreite wird individuell pro Spalte festgelegt
Sheets("Übersicht").Columns("A").ColumnWidth = 10
Sheets("Übersicht").Columns("B").ColumnWidth = 15
Sheets("Übersicht").Columns("C").ColumnWidth = 35
Sheets("Übersicht").Columns("D").ColumnWidth = 5
Sheets("Übersicht").Columns("E").ColumnWidth = 25
Sheets("Übersicht").Columns("F").ColumnWidth = 14
Sheets("Übersicht").Columns("G").ColumnWidth = 14
Sheets("Übersicht").Columns("H").ColumnWidth = 20
Sheets("Übersicht").Columns("I").ColumnWidth = 15
Worksheets("Datenquelle").Range("A2:F1000").Copy
With Worksheets("Übersicht").Range("A2")
.PasteSpecial Paste:=xlValues ' Werte
' .PasteSpecial Paste:=xlFormats ' Formate
End With
Application.CutCopyMode = False
With Sheets("Datenquelle")
.Range("F2:F" & .Cells(Rows.Count, 1).End(xlUp).Row).FillDown
End With
With Sheets("Übersicht")
.Range("G2:G" & .Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Range("H2:H" & .Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Range("I2:I" & .Cells(Rows.Count, 1).End(xlUp).Row).FillDown
End With
End Sub

Probleme:
1. Kommt eine Materialnummer nicht mehr vor, soll die komplette Zeile dazu gelöscht werden, also auch das Übergabedatum in der Übersicht, also wenn A1 leer, dann alles andere leer
2. bisher muss man 2x auf den Button drücken, bis er das Übergabedatum in Übersicht übernimmt (vorher füllt er nur die Formel aus F2 bis letzte Zeile aus) --> das geht ja eigentlich auch über worksheet change, aber das klappte nicht
3. es sollen nur die bereiche gerahmt werden, die tatsächlich benutzt werden, auch wenn vorher mehr Daten waren
4. Gibt es eine Möglichkeit, dass beim Einfügen eines neuen Datensatzes nur dieser eingefügt wird, auch wenn er kürzer ist als der alte? Also quasi alles überschrieben wird?
Bisher muss man erst alle inhalte löschen und dann einfügen.
5. Optimal wäre es wenn die Formeln immer fest in Zeile 2 in der jeweiligen Spalte stehen, falls man jemand ausversehen den Inhalt dieser löscht.
Oder kann man die Formel einfach in der Zelle fixieren, dass sie trotz inhalte löschen erhalten bleibt?
Oh das ist doch eine Menge, die noch verbessert werden kann.
Ich hoffe jemand kann wenigstens in Ansätzen helfen.
Wäre die Ideallösung und notfalls geht es ja auch mit dem bisherigen Stand.
Wäre sehr dankbar!
Grüße
Torsten

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Makro Verfeinerung gesucht
20.02.2019 17:50:16
onur
Hallo steve1da,
Hast du den falschen Thread erwischt?
AW: Hilfe bei Makro Verfeinerung gesucht
20.02.2019 17:57:52
SF
Hola,
nein, Anne oder anro ist auch Torsten.
Übrigens steht die Frage auch hier:
https://www.ms-office-forum.net/forum/showthread.php?t=358306
Gruß,
steve1da
AW: Hilfe bei Makro Verfeinerung gesucht
20.02.2019 17:59:43
onur
Wird ja immer doller hier. :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige