Makro ergänzen...

06/05/2010 - 10:27 von Harri Märki | Report spam
Hallo zusammen

Ich habe folgendes Makro (ist ein Teil eines grösseren Makros).

'Daten Texte und EAN aus Tabelle_2 holen
Dim R As Range, MaxY As Long
Dim Data, Y As Long, C As Range
Dim Import As Worksheet

Dim Data2, Y2 As Long, MaxY2 As Long, YSave As Long

'Letzte Zeile Spalte B
MaxY = Range("B2").End(xlDown).Row
'Bereich A1:P[letzte Zeile]
Set R = Range(Cells(1, 1), Range("Q" & MaxY))
'Daten einlesen
Data = R

'Überschriften setzen:
'Range("N1") = "Text 1"
'Range("O1") = "Text 2"
'Range("P1") = "Text 3"
'Range("Q1") = "EAN-Code"
Y = 1
Data(Y, 14) = "Text 1"
Data(Y, 15) = "Text 2"
Data(Y, 16) = "Text 3"
Data(Y, 17) = "EAN-Code"

'Woher importieren?
Set Import = Workbooks("Tabelle_2.txt").Sheets(1)
With Import
'Daten einlesen
Data2 = .Range(.Cells(1, 1), .Cells.SpecialCells( _
xlCellTypeLastCell))
'Erste Zeile
Y2 = 1 'LBound(Data2)
'Letzte Zeile
MaxY2 = UBound(Data2)
End With

YSave = 1
For Y = 2 To MaxY
'Suche nach dem Wert aus Spalte B in Import Spalte A
Do While Y2 <= MaxY2 And Data(Y, 2) <> Data2(Y2, 1)
Y2 = Y2 + 1
If Y2 > MaxY2 Then
'Nicht gefunden
Exit Do
End If
Loop
'Gefunden?
If Y2 <= MaxY2 Then
'Zeile sichern
YSave = Y2
'Ja, Werte holen:
'Range("N" & Y) = Import.Cells(C.Row, 18)
'Range("O" & Y) = Import.Cells(C.Row, 19)
'Range("P" & Y) = Import.Cells(C.Row, 20)
'Range("Q" & Y) = Import.Cells(C.Row, 22)
Data(Y, 14) = Data2(Y2, 18)
Data(Y, 15) = Data2(Y2, 19)
Data(Y, 16) = Data2(Y2, 20)
Data(Y, 17) = Data2(Y2, 22)
Else
'Fehler #NV
Data(Y, 14) = CVErr(xlErrNA)
Data(Y, 15) = CVErr(xlErrNA)
Data(Y, 16) = CVErr(xlErrNA)
Data(Y, 17) = CVErr(xlErrNA)
'Nàchsten Wert wiederab der letzten Zeile suchen
Y2 = YSave
End If
Next


Ich möchte nun zusàtzlich aus der "Tabelle_2.txt" die Spalten J und K
verknüpft in die Spalte D meiner Zieltabelle einfügen. Wie muss/kann ich dies
im obigen Makro ergànzen? Oder gibt es was besseres? Sollte halt auch
möglichst schnell durchlaufen.

Für ein Feedback bin ich Euch dankbar.

Gruss Harri
 

Lesen sie die antworten

#1 Harri Märki
06/05/2010 - 11:33 | Warnen spam
Hab noch etwas getüftelt...
Die zusàtzliche Spalten holt es mir zwar, aber ich kann die beiden Zellen
von J und K noch nicht zusammenfügen. Da kommt der Debugger.

Das wàre in diesem Bereich die Zeile mit "Data(Y, 4) = Data2(Y2, 10, "&", 11)"

If Y2 <= MaxY2 Then
'Zeile sichern
YSave = Y2
'Ja, Werte holen:
'Range("D" & Y) = Import.Cells(C.Row,10 & 11)
'Range("N" & Y) = Import.Cells(C.Row, 18)
'Range("O" & Y) = Import.Cells(C.Row, 19)
'Range("P" & Y) = Import.Cells(C.Row, 20)
'Range("Q" & Y) = Import.Cells(C.Row, 22)
Data(Y, 4) = Data2(Y2, 10, "&", 11)
Data(Y, 14) = Data2(Y2, 18)
Data(Y, 15) = Data2(Y2, 19)
Data(Y, 16) = Data2(Y2, 20)
Data(Y, 17) = Data2(Y2, 22)
Else

Wie muss ich das dort eingeben, dass die Werte zusammengefügt werden? Habe
da wohl noch einige sachen vergessen...

Gruss Harri

Ähnliche fragen