WVerweis
22.03.2018 11:40:47
Viveky
ich bin ein VBA-Anfänger und konnte bis jetzt dank euren Beiträgen ganz gut zurechtkommen. Nun habe ich ein Problem, dass ich bei dem Folgenden Code nicht weiter komme.
Grundstruktur meiner Excel-Datei:
Tabelle 1: Auswahl_Baugruppe
Tabelle 2: Stundenkalkulation
Tabelle 3: Kosten (Kosten für Baugruppen - Datenbank für Tabelle 1)
Tabelle 4: Stunden (Arbeitsstunden für Baugruppen - Datenbank für Tabelle 2)
Mein Plan:
Anhand eines Makros kann ich die gewünschten Baugruppen in die Tabelle 1 hinzufügen. Nun möchte ich ein Makro für Tabelle 2 "Stundenkalkulation" erstellen. Dieses Makro geht in der Tabelle 1 die zweite Spalte Zelle für Zelle durch und übernimmt die Baugruppennamen (String) in die Tabelle 2. Nun sollen anhand der übernommenen Namen und mithilfe des Wverweises die restlichen Daten in die Tabelle 2 aus der Tabelle 4 übernommen werden.
Option Explicit
Sub Stundenkalkulation()
Dim Baugruppe As String
Dim spalte As Integer
Dim Buchstabe1 As String
Dim wert As String
Dim wert1 As String
Dim wert2 As String
Dim x As Integer
Dim y As Integer
'Die Tabelle 4 erweitert sich immer wieder, daher die Splate als Variable und einmalige _
Berechnung reicht aus.
spalte = Sheets("Stunden").Cells(2, 30).End(xlToLeft).Column
Buchstabe1 = Cells(2, spalte).Select
wert = ActiveCell.Address
wert1 = Left(wert, 2)
wert2 = Right(wert1, 1)
For x = 2 To 30
Baugruppe = Sheets("Auswahl_Baugruppen").Range("B" & x)
Sheets("Stundenkalkulation").Range("A" & x) = Baugruppe
'**Die ursprüngliche Formel "=WVERWEIS(A3;Stunden!$B$2:$G$15;2;FALSCH)"
'**Beide Formel im Folgenden ausprobiert, aber es kommt immer wieder zum Anwendungs- oder _
Objektdefinierterfehler
ActiveSheet.Range("B" & x) = "=WVERWEIS(A" & x & ";Stunden!$B$2:$" & Spalte & "$15;2;FALSCH)"
ActiveSheet.Range("C" & x) = "=WVERWEIS(A" & x & ";Stunden!$B$2:$" & Spalte & "$15;3;FALSCH)"
'Oder
ActiveSheet.Range("B" & x) = WorksheetFunction.HLookup(["A" & x], Sheets("Stunden").[B2:G15], 2, _
_
False)
ActiveSheet.Range("C" & x) = WorksheetFunction.HLookup(["A" & x], Sheets("Stunden").[B2:G15], 3, _
_
False)
Next x
End Sub
Es funktioniert alles hervorragend, bis auf den WVerweis.
Freundliche Grüße
Viveky