Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro Namen finden und Daten übertragen
#1
Hallo zusammen,

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.

Danke und Gruß
DeLaGhetto


Angehängte Dateien
.xlsx   Beispieldatei.xlsx (Größe: 10,63 KB / Downloads: 4)
Antworten Top
#2
Hola,

kann man doch super mit einer Formel erschlagen.
https://www.herber.de/excelformeln/src/call.pl?idx=24
Gruß,
steve1da
Antworten Top
#3
Hallo,

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.

Gruß
DeLaGhetto
Antworten Top
#4
Hallo DeLaGhetto,

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:
  • DeLaGhetto
Antworten Top
#5
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.

Vielen Dank dir.
Antworten Top
#6
Doch noch eine Kleinigkeit,

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.

Danke und Gruß
DeLaGhetto


Angehängte Dateien
.xlsm   Beispieldatei.xlsm (Größe: 21,39 KB / Downloads: 4)
Antworten Top
#7
Hallo

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:
  • DeLaGhetto
Antworten Top
#8
Perfekt.
Jetzt funktioniert alles wie es sein soll.

Danke nochmal!
Antworten Top
#9
Nachtrag:

Man hätte natürlich bei der Array-Kopiererei auch die Einschränkung auf die ersten beiden Spalten machen können.

Aber ob das relevant ist, dazu muss man auch wissen, was genau gewünscht wird mit allem drum und dran.

Gruß
Karl-Heinz
Antworten Top
#10
Kannst du das vielleicht kurz als Code hier posten wie das aussehen würde?
Das wäre nett, dann kann ich mir das abspeichern für die Zukunft.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste