4.5k Aufrufe
Gefragt in Tabellenkalkulation von tacker914 Einsteiger_in (73 Punkte)
Hallo,
es würde mich freuen, wenn mir jemand bei meinem Problem weiterhelfen kann.

Ich habe 2 Tabellen.

In der Ersten stehen die Artikelnummern untereinander.
In der Zweiten stehen auch die Artikelnummern untereinander aber in einer anderen Reihenfolge (bzw. es sind Artikelnummern vorhanden, die in der ersten Tabelle noch nicht aufgeführt sind), sowie der Fortschritt des Bearbeitungszustands nebeneinander. Bei jedem abgeschlossenen Arbeitsgang ist die Zelle grau dargestellt und die rechts danebenliegenden ist rot. Also in unterschiedlichen Spalten.

Jetzt möchte ich, dass mir der Wert des ersten roten Feldes nach dem Grauen(aus der zweiten Tabelle) in der ersten Tabelle in der Spalte der Artikelnummer ausgegeben wird. Ähnlich der SVERWEIS-Funktion allerdings mit variierenden Spalten und nach Farben suchen.

tacker914

24 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ganz verstanden habe ich es nicht, aber geht nach meiner Ansicht nur mit einem Makro.

Gruß

Helmut
0 Punkte
Beantwortet von tacker914 Einsteiger_in (73 Punkte)
Hallo Helmut,

ja ich denke auch, dass das nur mit einem Makro geht. Wenn mir jemand schreiben könnte, wie es aussehen muss, wäre ich sehr dankbar.

tacker914
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo tacker914,

wie werden die Hintergrundfarben der Felder erzeugt? Durch die bedingte Formatierung?

Dann würde mich mal interessieren, warum der Beitrag von Saarbauer Dein Problem gelöst hat? Dass Du das als gelöst gekennzeichnet hast, ist sehr ungeschickt, weil jeder User hier nun denkt, er müsse sich nicht mehr mit dem Beitrag beschäftigen, da ja offensichtlich gelöst und beendet.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

hier war @tacker914 wohl etwas voreilig mit der Bewertung, da durch meine Antwort das Problem bestimmt nicht gelöst wurde.

Vielleicht kann @tacker914 eine Beispieltabelle zur Verfügung stellen.

@coros, da ich deine Kenntnisse kenne gehe ich davon aus, dass wir da eine Lösung hinbekommen könnten.


Gruß

Helmut
0 Punkte
Beantwortet von tacker914 Einsteiger_in (73 Punkte)
Hallo,

sorry, aber dummerweise habe ich nicht richtig hingeschaut und habe nur Antwort gelesen und gedacht, dass das die Schaltfläche zum Antworten ist, bis ich gemerkt habe, dass ich mit dem Anklicken mein Problem als gelöst markiert habe.

Gerne würde ich eine Beispieltabelle einstellen, leider weiß ich aber nicht wie.

@coros

Die Tabelle 2 mit den farbigen Zellen generiere ich aus einem Zeiterfassungsprogramm und exportiere es in die Exceltabelle, also nicht über bedingte Formatierungen.

Die Tabelle 1 gebe ich händisch ein und möchte sie mit der Tabelle 2 abgleichen in der die Fertigungsschritte aufgeführt sind, sodass ich den akt. Fertigungsstand in der Tabelle 1 habe, nachdem ich das Makro gestartet habe.

Gruß

tacker914
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo tacker914!

Deine Datei kannst Du z.B. bei http://www.file-upload.net/ hochladen und den Link, den Du erhältst musst Du uns hier mitteilen. Daten die uns nichts anzugehen haben, aber für Formeln usw. benötigt werden, ändere bitte in Dummydaten. Sollten die Daten für Formeln nicht benötigt werden, so kannst Du die auch löschen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von tacker914 Einsteiger_in (73 Punkte)
Hier der Link
http://www.file-upload.net/download-3633905/Test.xlsx.html

Also ich möchte gerne die Daten von der Tabelle1 mit denen der Tabelle2 abgleichen und den Wert der ersten roten Zelle wie z.B. beim Artikel 15951(Tabelle2) den Wert "Q" in der Tabelle1 in der Zelle D8 angezeigt bekommen, allerdings für alle Artikel in der Tabelle1.

tacker914
0 Punkte
Beantwortet von
Hallo tacker914!

Zwei Rückfragen:
1.) Welche Tabelle bestimmt, für welche Artikelnummern die Auswertung stattfinden soll? (Dein Beispiel zeigt, dass nicht alle Artikelnummern, die in Tabelle2 vorkommen, in Tabelle1 ausgewertet werden.)

2. Falls es (für das Makro) eine Rolle spielt bzw. darin berücksichtigt werden soll: woher kommen die restlilchen Daten (Start, Ende) und wonach wird sortiert?

3. In Deiner Beispieldatei hat die "rote" Hintergrundfarbe der Zellen den Farbindex 22. Dieser Wert muss ggf. überprüft (z. B. mit
MsgBox "ColorIndex = " & ActiveCell.Interior.ColorIndex, , ActiveCell.Address
) und angepasst werden.

MfG
Klaus
0 Punkte
Beantwortet von tacker914 Einsteiger_in (73 Punkte)
@ Klaus 2

In der Tabelle1 befinde sich die Artikel, die in der Fertigung sind und für die ich die Auswertung benötige. Die Tabelle 2 zeigt die Gesamtartikel auch die, die noch nicht in der Fertigung sind und in dem Fall für mich nicht relevant sind. Sortierung nach dem Starttermin.

tacker914
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo tacker914,

meine Lösung würde wie folgt aussehen.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Prüfen()
Dim lngRowArt As Long
Dim lngRowArtVergl As Long

Dim intColArt As Integer

On Error GoTo ERRORHANDLER

With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
.ErrorCheckingOptions.BackgroundChecking = False
End With

Sheets("Tabelle1").Range(Cells(2, 4), Cells(Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row, 4)).ClearContents

For lngRowArt = 2 To Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
For lngRowArtVergl = 1 To Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row Step 2
If Sheets("Tabelle1").Cells(lngRowArt, 1).Text = Sheets("Tabelle2").Cells(lngRowArtVergl, 1) Then
For intColArt = 2 To Sheets("Tabelle2").Cells(lngRowArtVergl, Columns.Count).End(xlToLeft).Column
If Sheets("Tabelle2").Cells(lngRowArtVergl, intColArt).Interior.ColorIndex = 22 Then
Sheets("Tabelle1").Cells(lngRowArt, 4) = Sheets("Tabelle2").Cells(lngRowArtVergl, intColArt)
GoTo NextArtikel
End If
Next intColArt
End If
Next lngRowArtVergl
NextArtikel:
Next lngRowArt

ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.ErrorCheckingOptions.BackgroundChecking = True
End With

End Sub
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...