|  
                                             
	Hallo Ivy, 
	warum einfach, wenn's auch umständlich geht? :-) 
	Dein "Fehler" besteht lediglich darin dass du auf den Play-Butto drückst. Dieser startet normalerweise ein Makro. Bei meinem Code für Modul "Tabelle1" handelt es sich aber um ein Ereignis, welches automatisch ausgeführt wird, sobald du eine Eingabe in eine beliebige Zelle von Tabelle1 vornimmst. Ein benutzerabhängiges Starteten des Codes ist somit überflüssig. 
	Ich bin jedoch die ganze Zeit davon ausgegangen, dass in Tabelle 2 Spalte A z.B. Projekt 1 steht und in Tabelle2 Spalte B die Aufgabe. Falls also die Aufgabe erst in Spalte C steht, musst du meinen Code entsprechend anpassen. 
	Private Sub Worksheet_Change(ByVal Target As Range) 
	  On Error Resume Next 
	  Target = Application.WorksheetFunction.VLookup(Target, Sheets("Tabelle2").Range("A:C"), 3, 0) 
	End Sub 
	  
	Von der Verwendung des Dictionary Objekts würde ich dir hingegen abraten. Zu kompliziert für einen Anfänger wie dich (ohne dir zu Nahe treten zu wollen) und obendrein völlig überflüssig. Ohne zu wissen, was bei dir wo steht, kann ich das leider auch nicht für dich anpassen. Nun davon ausgehend, dass die Beschreibung in Spalte C steht kann ich also nur raten. 
	
		  
	
		Sub Werte_Zuordnen() 
	
		  
	
		    Dim dic As Object, wsSource As Worksheet, wsTarget As Worksheet, rngDataStart As Range, rngDataEnd As Range, rngTargetStart As Range, rngTargetEnd As Range, cell As Range 
	
		  
	
		    'Dictionary Object das die Zuordnung der Daten der ersten Tabelle enthält 
	
		    Set dic = CreateObject("Scripting.Dictionary") 
	
		  
	
		    'Worksheets referenzieren 
	
		    Set wsSource = Worksheets(2) 
	
		    Set wsTarget = Worksheets(1) 
	
		  
	
		    'Referenzbereich der ersten Tabelle festlegen 
	
		    Set rngDataStart = wsSource.Range("A1") 
	
		    Set rngDataEnd = rngDataStart.End(xlDown) 
	
		  
	
		    'Zielbereich der zweiten Tabelle 
	
		    Set rngTarget = wsTarget.Range("A1:D50") 
	
		  
	
		    'Dictionary mit den Werten der ersten Tabelle füllen 
	
		    For Each cell In wsSource.Range(rngDataStart, rngDataEnd) 
	
		        dic.Add cell.Value, cell.Offset(0, 2).Value 
	
		    Next 
	
		  
	
		    'Zieltabelle durchgehen und Werte zuordnen 
	
		    For Each cell In rngTarget 
	
		        ' Wenn Wert der Zelle nicht leer ist und der Wert in der Zuordnungstabelle vorhanden ist dann schreibe den Wert in die Zelle daneben 
	
		        If cell.Value <> "" And dic.Exists(cell.Value) Then 
	
		            cell.Offset(0, 1).Value = dic.Item(cell.Value) 
	
		        End If 
	
		    Next 
	
		  
	
		End Sub 
	
		  
	
		Die von die genannte Problemzeile war übrigens überflüssig. 
	
		  
	
		Gruß Mr. K. 
 
     |