Hallo zusammen. Ich suche nach einer Lösung für folgendes Problem. Habe bereits einiges versucht, aber leider ohne Erfolg. Hatte mir erhofft, dass die künstliche Intelligenz mir weiter helfen könnte, aber dem war nicht so. Sorry, nun muss ich doch noch die VBA Spezialisten unter ihnen bitten, mir nach Möglichkeit weiterzuhelfen.
Ich möchte Werte aus Spalte "A" der Datei Listemit.xls in Spalte "A" der Datei Listeohne.xlsm einfügen. Dabei soll abgeglichen werden, ob die Namen (TEXT) identisch sind. Bei Übereinstimmung soll die entsprechende Zelle mit dem nummerischen Wert reinkopiert werden. Der Code bringt keine Fehlermeldung, aber er kopiert auch keinen Wert wie gewünscht. Meinen Versuch stelle ich hier mal ein. Danke für jegliche Unterstützung. Gruß Josef
Ich möchte Werte aus Spalte "A" der Datei Listemit.xls in Spalte "A" der Datei Listeohne.xlsm einfügen. Dabei soll abgeglichen werden, ob die Namen (TEXT) identisch sind. Bei Übereinstimmung soll die entsprechende Zelle mit dem nummerischen Wert reinkopiert werden. Der Code bringt keine Fehlermeldung, aber er kopiert auch keinen Wert wie gewünscht. Meinen Versuch stelle ich hier mal ein. Danke für jegliche Unterstützung. Gruß Josef
Visual Basic:
Option Explicit
Sub Daten_uebertragen_Neu()
Dim wbQuelle As Workbook, wbZiel As Workbook
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Dim i As Long
Dim wertBZiel As String
Dim c As Range
Dim letzteZeileQuelle As Long, letzteZeileZiel As Long
' Arbeitsmappen öffnen
Set wbQuelle = Workbooks.Open("C:\Users\Besitzer\Desktop\Listemit.xls") ' Quelldatei
Set wbZiel = Workbooks.Open("C:\Users\Besitzer\Desktop\Listeohne.xlsm") ' Zieldatei
' Arbeitsblätter festlegen
Set wsQuelle = wbQuelle.Sheets(1) ' Tabelle in Listemit
Set wsZiel = wbZiel.Sheets(1) ' Tabelle in Listeohne
' Letzte Zeilen in beiden Arbeitsblättern ermitteln
letzteZeileQuelle = wsQuelle.Cells(wsQuelle.Rows.Count, 2).End(xlUp).Row ' Letzte Zeile in Spalte B von Listemit
letzteZeileZiel = wsZiel.Cells(wsZiel.Rows.Count, 2).End(xlUp).Row ' Letzte Zeile in Spalte B von Listeohne
' Durch die Zeilen von Spalte B in der Zieldatei (Listeohne) iterieren
For i = 1 To letzteZeileZiel
wertBZiel = Trim(wsZiel.Cells(i, 2).Value) ' Wert in Spalte B der aktuellen Zeile von Listeohne
' Nur nach nicht leeren Werten in Spalte B suchen
If wertBZiel <> "" Then
' Spalte B in der Quelldatei durchsuchen
With wsQuelle.Columns("B")
Set c = .Find(wertBZiel, LookIn:=xlValues, LookAt:=xlWhole) ' Suche nach dem Wert in Spalte B der Quelldatei
' Wenn der Wert in der Quelldatei gefunden wird
If Not c Is Nothing Then
' Kopiere den Wert aus Spalte A der Quelldatei (Listemit) nach Spalte A der Zieldatei (Listeohne)
wsZiel.Cells(i, 1).Value = wsQuelle.Cells(c.Row, 1).Value
End If
End With
End If
Next i
' Hinweis, dass der Vorgang abgeschlossen ist
MsgBox "Datenübertragung abgeschlossen!", vbInformation
End Sub