AW: ODBC Verknüpfung
11.07.2012 10:51:26
Detlef
Carola,
ich habe mal eine kleine Prozedur geschrieben, die das Problem grundsätzlich löst.
Der gesamte Text von "Sub" an muß in ein VBA-Modul eingetragen werden.
Wie bereits letztens gesagt, muß vor der Aktualisierung der Daten ein Kopie angelegt werden. Wenn die neuen Daten vorhanden sind, kann die Prozedur aus der Kopie lesen und passend zuordnen.
In der Prozedur selbst müssen vorher die richtigen Blattnamen und die entsprechenden Spalten- und Zeilenwerte eingetragen werden, die hatte ich natürlich nicht.
Ich hoffe, jemand bei Euch kommt damit zurecht. Wenn nicht, rufe mich einfach an unter 0151-51 056 400.
Sub TextTransfer()
Dim wksAlt As String
Dim wksNeu As String
Dim colAuftrag
Dim colText
Dim rowStart
colAuftrag = 1 'Spalte mit der Auftragsnummer (Beispiel: erste Spalte)
colText = 4 'Spalte mit dem zu übertragenden Text (Beispiel: vierte Spalte)
rowStart = 3 'Zeile, in der die erste Auftragnummer steht, ohne Kopfzeilen ( _
Beispiel: dritte Zeile)
wksAlt = "Kopie" 'Name des kopierten Blattes
wksNeu = "ERP-Daten" 'Name des Blattes mit den neuen Daten
With ThisWorkbook.Worksheets(wksAlt)
EndeKopie = .Cells(Rows.Count, 1).End(xlUp).Row
End With
With ThisWorkbook.Worksheets(wksNeu)
EndeNeu = .Cells(Rows.Count, 1).End(xlUp).Row
End With
For Each cll In Range(ThisWorkbook.Worksheets(wksAlt).Cells(rowStart, colAuftrag), _
ThisWorkbook.Worksheets(wksAlt).Cells(EndeKopie, colAuftrag))
TextOld = ThisWorkbook.Worksheets(wksAlt).Cells(cll.Row, colText)
With Range(ThisWorkbook.Worksheets(wksNeu).Cells(rowStart, colAuftrag), ThisWorkbook. _
Worksheets(wksNeu).Cells(EndeNeu, colAuftrag))
Set c = .Find(cll, LookIn:=xlValues)
If Not c Is Nothing Then
ThisWorkbook.Worksheets(wksNeu).Cells(c.Row, colText).Value = TextOld
End If
End With
Next
End Sub