07.05.2023, 15:10
(Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2023, 15:11 von DeLaGhetto.)
Hallo zusammen,
ich hoffe ihr könnt mir helfen.
Ich habe aktuell folgendes Makro (was auch super seinen Zweck erfüllt):
Das Makro macht folgendes:
In der Ausgangsdatei erstellt es aus der Spalte A und Spalte B einen eindeutigen Dateinamen. Anschließend wird in der Revisionsdatei nach diesem eindeutigen Namen gesucht und Name, Zugeteilt Datum und Zurückgegeben Datum eingetragen. Das ganze hat noch ein paar "Sonderregeln", die aber im Makro zu sehen sind.
Bedeutet kurz gesagt, dass mit diesen Tabellen die Revisionshistorie von eindeutigen Dateienamen protokolliert wird.
Jetzt hat sich aber die Revisionstabelle geändert. Die Dateinamen stehen nicht mehr Horizontal (und die Historie dementsprechend darunter), sondern die Dateinamen stehen jetzt vertikal (und die Historie dementsprechend rechts daneben).
Kann mir einer von euch das Makro so anpassen, dass ich jetzt die neue Revisionsdatei benutzen kann? Alle anderen "Sonderregeln" sollen gleich bleiben, außer halt in der "Richtung" gewechselt.
Zur Verdeutlichung habe ich im Anhang alle relevanten Dateien hochgeladen.
Für Gute Arbeit lasse ich auch gerne einen 15€ Amazon Gutschein zukommen. Dann einfach privat an mich schreiben
Danke im Voraus.
Ausgangsdatei.xlsm (Größe: 48,92 KB / Downloads: 7)
Revisionsdatei_alt.xlsx (Größe: 815,6 KB / Downloads: 6)
Revisionsdatei_neu.xlsx (Größe: 101,01 KB / Downloads: 8)
ich hoffe ihr könnt mir helfen.
Ich habe aktuell folgendes Makro (was auch super seinen Zweck erfüllt):
Code:
Sub RevisionAktualiseren()
' Alle Dateieinträge in der Revisionsdatei werden
' mit den Neueinträgen in diesem Blatt aktualisiert.
' Revisionsdatei wird mit Dialogfenster aufgerufen
Dim Dateiname As String
Dim RevDatei As Workbook
Dim Zeile As Long 'Zeile im Blatt
Dim Rev As Worksheet 'Revisionsblatt
Dim Zelle As Range 'Unterste Zelle im Revisionsblatt
Dim DateiZelle As Range 'Zelle mit Dateinamen im Revisionsblatt
Application.ScreenUpdating = False
'Revisionsdatei und Blatt wird geöffnet
With ActiveSheet
ChDir ThisWorkbook.Path 'Pfad einstellen
Dateiname = Application.GetOpenFilename 'Dialog für Dateiauswahl
If Dateiname = "Falsch" Then Exit Sub 'Abbruch, wenn keine Datei ausgewählt
Set RevDatei = Workbooks.Open(Dateiname) 'Revisionsdatei öffnen
Set Rev = RevDatei.Worksheets("Tabelle1") 'Richtiges Blatt bestimmen
'Alle Zeilen werden durchlaufen
For Zeile = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
'Einzelne Zeile im Blatt "Ausgangsdatei"
'Im Blatt "Revisionshistorie" Zeile 2 wird Zelle A und B (Dateiname) von "Ausgangsdatei" gesucht
Set DateiZelle = Rev.Rows("1:3").Find(.Range("A" & Zeile) & " " & .Range("B" & Zeile), LookIn:=xlValues, lookat:=xlWhole)
If DateiZelle Is Nothing Then
'Dateiname existiert nicht: Abbruch
.Activate
.Cells(Zeile, 1).Resize(1, 8).Select 'Betreffende Zeile wird markiert
MsgBox .Range("A" & Zeile) & " " & .Range("B" & Zeile) _
& vbCr & "wurde nicht gefunden. " _
& vbCr & "Abbruch" 'Fehlermeldung
Exit Sub 'Abbruch
Else
'Dateiname wurde gefunden
Set Zelle = Rev.Cells(Rev.Rows.Count, DateiZelle.Column).End(xlUp) 'Letzte beschriebene Zelle
'Einträge werden von "Ausgangsdatei" zu "Revisionshistorie" kopiert
If .Cells(Zeile, "E") <> "" Then
'Bearbeitername ist eingetragen
If .Cells(Zeile, "E") = Zelle.Offset(-1) And .Cells(Zeile, "G") = Zelle Then
'Bearbeiter und Anfangsdatum sind gleich
If .Cells(Zeile, "H") <> Zelle.Offset(, 1) Then
'Enddatum nicht gleich: Vervollständigen des letzten Eintrages
.Cells(Zeile, "H").Copy Zelle.Offset(, 1) 'Enddatum wird einigetragen
End If
Else
'Bearbeiter oder Anfangsdatum sind verschieden: Neueintrag darunter
' If Zelle.Row = 2 Then Set Zelle = Zelle.Offset(1) 'Wenn Ersteintrag, muss Zelle um 1 hinunterverschobe werden.
If Zelle.Row = 2 Then Set Zelle = Cells(Zelle.Row + 1, Zelle.Column) 'Wenn Ersteintrag, muss Zelle um 1 hinunterverschobe werden.
' 'Zellen kopieren (Inhalt und Formatierung) von Ausgangsdatei in Rev.datei
' .Cells(Zeile, "E").Copy Zelle.Offset(1).Resize(, 2) 'Name wird einigetragen
' .Cells(Zeile, "G").Copy Zelle.Offset(2) 'Anfangsdatum wird eingetragen
' .Cells(Zeile, "H").Copy Cells(Zelle.Row + 2, Zelle.Column + 1) 'Enddatum wird einigetragen
'Zellen zuweisen (Nur Inhalt) von Ausgangsdatei zur Rev.datei
Zelle.Offset(1).Resize(, 2) = .Cells(Zeile, "E") 'Name wird einigetragen
Zelle.Offset(2) = .Cells(Zeile, "G") 'Anfangsdatum wird eingetragen
Cells(Zelle.Row + 2, Zelle.Column + 1) = .Cells(Zeile, "H") 'Enddatum wird einigetragen
End If
End If
End If
Next Zeile
End With
RevDatei.Close Savechanges:=True
Application.ScreenUpdating = True
End Sub
Das Makro macht folgendes:
In der Ausgangsdatei erstellt es aus der Spalte A und Spalte B einen eindeutigen Dateinamen. Anschließend wird in der Revisionsdatei nach diesem eindeutigen Namen gesucht und Name, Zugeteilt Datum und Zurückgegeben Datum eingetragen. Das ganze hat noch ein paar "Sonderregeln", die aber im Makro zu sehen sind.
Bedeutet kurz gesagt, dass mit diesen Tabellen die Revisionshistorie von eindeutigen Dateienamen protokolliert wird.
Jetzt hat sich aber die Revisionstabelle geändert. Die Dateinamen stehen nicht mehr Horizontal (und die Historie dementsprechend darunter), sondern die Dateinamen stehen jetzt vertikal (und die Historie dementsprechend rechts daneben).
Kann mir einer von euch das Makro so anpassen, dass ich jetzt die neue Revisionsdatei benutzen kann? Alle anderen "Sonderregeln" sollen gleich bleiben, außer halt in der "Richtung" gewechselt.
Zur Verdeutlichung habe ich im Anhang alle relevanten Dateien hochgeladen.
Für Gute Arbeit lasse ich auch gerne einen 15€ Amazon Gutschein zukommen. Dann einfach privat an mich schreiben

Danke im Voraus.


