ihr könnt mir bestimmt helfen.
Ich bräuchte folgendes Makro:
Ich habe eine Tabelle mit 2 Tabellenreitern.
Im ersten Reiter gibt es u.a eine Spalte mit Dateinamen und eine andere Spalte mit einem Bearbeitungsdatum. Das Namensfeld ist immer gefüllt mit einem Namen und das Datumsfeld kann entweder leer oder mit einem Datum gefüllt sein.
Im zweiten Reiter gibt es ebenfalls eine Spalte mit dem Dateinamen (Dateinamen Reiter 1 und Reiter 2 stimmen überein) und einer Spalte mit dem letzten Bearbeitungsdatum dieser Datei. In Diesem zweitem Reiter ist allerdings nur eine Auswahl an Dateinamen vorhanden, nicht alle stehen in diesem Reiter drin.
Das Makro soll jetzt aus dem Reiter 2 das Datum in Reiter 1 übertragen. Natürlich muss das Datum zum jeweils gleichen Namen übertragen werden.
Zur Verdeutlichung habe ich eine Beispieldatei angehangen.
mit einer Formel möchte ich das nicht machen / bzw. habe ich gerade gelöst.
Das Problem dabei ist, dass wenn im zweiten Reiter ich die Eingaben ändere, sich automatisch auch im Reiter 1 die Daten ändern. Das möchte ich aber nicht.
Das Datum im Reiter 1 soll nur dann überschreiben oder eingefügt werden, wenn ich es will / wenn ich auf das ausführen des Makros gehe.
Nur nochmal zur Erklärung:
Reiter 1 soll eine Dokumentation sein, wann die Dateien zuletzt bearbeitet wurden.
Reiter 2 ist eine Liste mit einer Auswahl an Dateien, an denen jetzt gerade gearbeitet wird.
Ich möchte somit eine Dokumentation haben, wann eine gewisse Datei zuletzt bearbeitet wurde.
teste mal folgendes Makro. Vielleicht sagt es Dir zu.
Code:
Option Explicit
Sub Uebertragen() Dim vArr As Variant, i As Long, vGefunden As Variant
With Sheets("Tabelle1").UsedRange vArr = .Value For i = 1 To UBound(vArr) With Sheets("Tabelle2") vGefunden = Application.Match(vArr(i, 2), .Columns(2), 0) If Not IsError(vGefunden) Then vArr(i, 3) = .Cells(vGefunden, "A").Value End If End With Next i .Value = vArr End With End Sub
_________ viele Grüße Karl-Heinz
Folgende(r) 1 Nutzer sagt Danke an volti für diesen Beitrag:1 Nutzer sagt Danke an volti für diesen Beitrag 28 • DeLaGhetto
Wow, also in der Beispieldatei funktioniert das perfekt.
Ich probiere das gleich an meine eigentliche Datei anzupassen, aber ich denke das sollte funktionieren.
Falls nicht, würde ich mich wieder hier melden.
ich habe eine Formel in Spalte D (siehe angehängte Beispieldatei).
Seltsamerweise wird nach ausführen des Makros die Formel in Spalte D gelöscht und dort steht nur noch das Ergebnis, was die Formel vorher ausgerechnet hatte.
Das müsste irgendwie noch geändert werden.
Ich verstehe aber irgendwie nicht, warum das Makro überhaupt Einfluss hat auf die Spalte D. Aber da kannst du mir bestimmt ganz schnell helfen.
du kennst dich offenbar mit VBA nicht aus, sonst wüsstest du beim Befehl vArr= .Value das hier ein Array mit dem gesamten Bereich geladen wird.
Beim zurückladen werden alle Formeln mit Werten überschrieben. Damit kann der Code nicht klappen! Probier bitte mal diese For Next Variante!
Eine uralte Kamelle, aber der übertragt nur das Datum aus Reiter 2 in den Reiter1. Sonst wird nichts an den bestehenden Daten geändert!
mfg Gast 123
Code:
Sub Uebertragen_Gast()
Dim vGefunden As Variant
Dim AC As Range, lz2 As Long
With Sheets("Tabelle1")
lz2 = Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
For Each AC In Sheets("Tabelle2").Range("B2:B" & lz2)
vGefunden = Application.Match(AC, .Columns(2), 0)
If Not IsError(vGefunden) Then
.Cells(vGefunden, 3).Value = AC.Offset(0, -1)
End If
Next AC
End With
End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • DeLaGhetto