ich versuche ein Makro zu schreiben, das mir einen sverweis automatisiert. Aber bei der Ausführung bekomme ich immer den Laufzeitfehler 1004. Als Anfänger bin ich am Ende meiner Überlegungen, warum der Code nicht läuft.
Ich würde mich freuen, wenn mir jemand einen Tipp geben kann.
Der Sverweis ist am Ende des Makro.
_____________________________________________________________________________________
Sub Globus_Sverweis()
Dim Spalte_gefunden As Range 'Tabelle 2
Dim Splatenname As String 'Tabelle 2
Dim a As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim b As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim c As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim d As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim e As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim f As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim Letzte_Zeile As Integer 'Tabelle 2
Dim k As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim l As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim m As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim n As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 2
Dim p As Integer 'Berechnung spaltenindex für sverweis
Dim LetzteSpalte As Integer 'Tabelle 1
Dim LetzteZeile As Integer 'Tabelle 1
Dim u As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim v As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim w As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim x As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim y As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
Dim z As Integer 'Übergabe Spaltenzahl an Variable ,Tabelle 1
'----->Suche Spaltenname und weise Spaltennummer einer Variablen zu
'Tabellenblatt 2 aktiv setzen
Worksheets("2").Activate
'Ladungsträger (im GP enthalten) in Abschluss Währung
Spaltenname = "Ladungsträger (im GP enthalten) in Abschluss Währung"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
a = Spalte_gefunden.Column
' MsgBox a
Else
MsgBox "Nichts gefunden!"
End If
'Transportkosten bis Auslieferort (im GP enthalten) in Abschluss Währung
Spaltenname = "Transportkosten bis Auslieferort (im GP enthalten) in Abschluss Währung"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
b = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
'Transportkosten bis Verbrauchswerk (im GP enthalten) in Abschluss Währung
Spaltenname = "Transportkosten bis Verbrauchswerk (im GP enthalten) in Abschluss Währung"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
c = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
'Verpackungskosten (im GP enthalten) in Abschluss Währung
Spaltenname = "Verpackungskosten (im GP enthalten) in Abschluss Währung"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
d = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
'JIS / JIT (im GP enthalten) in Abschluss Währung
Spaltenname = "JIS / JIT (im GP enthalten) in Abschluss Währung"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
e = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
'Handling (im GP enthalten) in Abschluss Währung
Spaltenname = "Handling (im GP enthalten) in Abschluss Währung"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
f = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
'SNR Tabelle 2
Spaltenname = "SNR"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
n = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
Letzte_Zeile = Cells.SpecialCells(xlCellTypeLastCell).Row
k = Letzte_Zeile
' MsgBox Letzte_Zeile
'----->Sverweis in Tabellenblatt 1 ausführen
'Tabellenblatt 1 aktiv setzen
Worksheets("1").Activate 'Arbeitsblatt Aktiv setzen
'Ladungsträger (im GP enthalten) in Abschluss Währung
LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, LetzteSpalte) = "Ladungsträger (im GP enthalten) in Abschluss Währung"
u = LetzteSpalte
' MsgBox u
'Transportkosten bis Auslieferort (im GP enthalten) in Abschluss Währung
LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, LetzteSpalte) = "Transportkosten bis Auslieferort (im GP enthalten) in Abschluss Wä _
_
_
hrung"
v = LetzteSpalte
'Transportkosten bis Verbrauchswerk (im GP enthalten) in Abschluss Währung
LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, LetzteSpalte) = "Transportkosten bis Verbrauchswerk (im GP enthalten) in Abschluss _
_
_
Währung"
w = LetzteSpalte
'Verpackungskosten (im GP enthalten) in Abschluss Währung
LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, LetzteSpalte) = "Verpackungskosten (im GP enthalten) in Abschluss Währung"
x = LetzteSpalte
'JIS / JIT (im GP enthalten) in Abschluss Währung
LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, LetzteSpalte) = "JIS / JIT (im GP enthalten) in Abschluss Währung"
y = LetzteSpalte
'Handling (im GP enthalten) in Abschluss Währung
LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column + 1
Cells(1, LetzteSpalte) = "Handling (im GP enthalten) in Abschluss Währung"
z = LetzteSpalte
'Sachnummer Tabelle 1
Spaltenname = "Sachnummer"
Set Spalte_gefunden = Rows(1).Find(What:=Spaltenname, LookIn:=xlValues, LookAt:=xlWhole)
If Not Spalte_gefunden Is Nothing Then
m = Spalte_gefunden.Column
Else
MsgBox "Nichts gefunden!"
End If
LetzteZeile = Cells.SpecialCells(xlCellTypeLastCell).Row
l = LetzteZeile
' a-f = Spalten Tabelle 1, wo sverweis abgerufen wird
' k = letzte Zeile Tabelle 2
' l = letzte Zeile Tabelle 1
' m = Spalte Tabelle 1, in der die SNR steht
' n = Spalte Tabelle 2, in der die SNR steht
' u-z = Spalten Tabelle 1, wo sverweis eingetragen wird
'Spaltenindex für sverweis errechnen
p = a - n + 1
' MsgBox p
Syntaxfehler beginnt hier:
i = 2
Cells(i, u).Select
For i = 2 To l - 1
ActiveCell.Value = Application.WorksheetFunction.VLookup(Cells(i, m).Value, Worksheets("2"). _
_
_
Cells(k, n), p, False)
ActiveCell.Offset(1, 0).Select
Next
End Sub
_____________________________________________________________________________________
Für jede Lösung bin ich dankbar.
Viele grüße