Thema Datum  Von Nutzer Rating
Antwort
18.10.2017 12:11:33 Ivy
Solved
18.10.2017 12:53:07 xlKing
Solved
18.10.2017 12:56:47 Gast10587
NotSolved
18.10.2017 14:10:56 Ivy
NotSolved
18.10.2017 14:19:54 Gast91768
NotSolved
18.10.2017 17:33:29 xlKing
NotSolved
19.10.2017 15:29:48 Gast81708
NotSolved
19.10.2017 15:50:24 Ivy
NotSolved
Rot Datenabgleich & Platzhalter ersetzen
19.10.2017 16:40:38 Gast20720
NotSolved
19.10.2017 16:44:17 xlKing
NotSolved
20.10.2017 08:36:14 Gast68674
NotSolved
20.10.2017 14:17:24 Gast50939
NotSolved
20.10.2017 15:49:29 Ivy
NotSolved
20.10.2017 19:00:40 Gast56379
NotSolved

Ansicht des Beitrags:
Von:
Gast20720
Datum:
19.10.2017 16:40:38
Views:
555
Rating: Antwort:
  Ja
Thema:
Datenabgleich & Platzhalter ersetzen

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.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
18.10.2017 12:11:33 Ivy
Solved
18.10.2017 12:53:07 xlKing
Solved
18.10.2017 12:56:47 Gast10587
NotSolved
18.10.2017 14:10:56 Ivy
NotSolved
18.10.2017 14:19:54 Gast91768
NotSolved
18.10.2017 17:33:29 xlKing
NotSolved
19.10.2017 15:29:48 Gast81708
NotSolved
19.10.2017 15:50:24 Ivy
NotSolved
Rot Datenabgleich & Platzhalter ersetzen
19.10.2017 16:40:38 Gast20720
NotSolved
19.10.2017 16:44:17 xlKing
NotSolved
20.10.2017 08:36:14 Gast68674
NotSolved
20.10.2017 14:17:24 Gast50939
NotSolved
20.10.2017 15:49:29 Ivy
NotSolved
20.10.2017 19:00:40 Gast56379
NotSolved