Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten aus anderer Datei abgleichen
#11
Hallo Sorry das ich Verwirrung stifte.

Hatte ja nur gedacht ob jemand helfen kann was in dem VBA code nicht stimmt, und daher mal die dateien angehängt worüber es geht.

Das man trotz der Beschreibung im ersten Post wo ich ja gesschrieben hatte wo bei mir die Seriennummer steht und in der anderen Datei eben um diese vergleichen bzw suchen zu können.

Im grunde macht der Code ja was aber er sucht anscheinend nicht nach der Seriennummer sondern schreibt einfach alle Ja/Nein reins obwohl bei mir die Reihenfolge der Maschinen ja anders ist.


Die Kurzbeschreibung zur Aufgabe:

Meine Liste hat Maschinen mit Seriennummern und die andere Liste auch (position aber anders und nicht in der selben Reihenfolge).
Die andere Liste wird folgendermaßen geführt: Wird eine Maschine abgeholt und ist bei uns aus der Firma raus wandert diese in das Tabellenblatt Delivered 2017 im jetzigen falle jetzt neu dann in Delivered 2018.

Meine Liste da ich in der QS bin und die Maschine kontrolliere, bekomme ich aber nicht immer mit wann ein Maschine abgeholt wird etc. und müsste eben immer wieder die ganze Liste checken welche schon weg sind und welche nicht um diese auf Ja/Nein  (Ja in der Firma, Nein nicht mehr in der Firma) zu setzen,

Diese wollte ich mir eben damit erleichtern mit einem Marko bei Bedarf die Liste "aufzuräumen" da ich die Nein Maschinen dann ausblende um nicht den Überblick zzu verlieren.
Antworten Top
#12
Hallo Ultra,

Die Tabelle Maschinenliste haste gefiltert hochgeladen. is das Absicht?
Soll der Code in der gefilterten Liste laufen?
Dein Code, den du oben gepostet hast, bringt bei mir ne Fehlermeldung 1004 und bricht ab.
Du schränkst den Bereich für die Formel auf G22:G999 ein, schreibst aber hier im Forum von 9999

Die Aussage…
Zitat:Das ist ein Makro Code.
Bzw. baue ich mir da einen Button dafür dann um die Abfrage starten zu können.
Also eine extra Funktion :[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]
Daher ein VB Code anstatt einem Verweis in der Formel.
…kann ich in deinem geposteten Code nicht entdecken

Code:
RNG.FormulaR1C1 = "=IF(RC[-2]<>"""",IF(ISNUMBER(MATCH(RC[-2],'" & Pfad & _
        "[" & Datei & "]" & Blatt & "'!C6,0)),""Nein"",""Ja""),"""")"
das ist für mich eine Vergleich-Formel ergänzt um den Bezug auf eine andere Datei

Nun meine Frage:
Bist du dir sicher das die Sachen, die gepostet hast, die Sachen sind, die du posten wolltest? 

Ich habe für gast123 die beiden Tabellenblätter in eine Datei kopiert + hochgeladen ohne Makros.
Statt deiner Formel habe ich mit =Vergleich() getestet
Keine Zelle aus "Maschinenliste Spalte E" stimmt mit irgendeiner Zelle in "Delivered 2018 Spalte F" überein, zumal in "Delivered" mehrere Nummern in der selben Zelle stehen.

Das geht nicht mit Vergleichen oder mit Match, sondern nur mit der Excel-Suche (Tastenkombi Strg+F) bzw. der ".find" Methode in VBA
weil die innerhalb aller Zeichen sucht, auch innerhalb eines Zellinhaltes
Und wenn ich die einsetzen sollte, schreibe ich gleich Ja bzw. Nein in die Zelle ohne den Umweg über eine Formel.
Und zwar nur in dem Bereich von Spalte E wo was drinsteht und in G nix drinsteht (so genau blick ich da noch ned durch was du haben willst bzw. wie du vorgehen willst, da bitte ich um genaue Ausführungen)
In deiner Maschinenliste steht in Zeile G22 ein Ja, obwohl die Nummer in Delivered 2017 nirgends vorkommt, selbst wenn man alle Filter raus macht

Ich mach da erst morgen weiter nach für mich befriedigende Antworten auf alle meine Fragen.
Vielleicht erbarmt ja sich ein anderer
Antworten Top
#13
Hallo Wastl

danke für deine Hilfe mit der Beispieldatei, aber die stürzt mir beim öffnen auch direkt ab!!  Null Chance!!
Öffnen konnte ich "Meine Datei zum Abgleich" aber auch mit mucken, einige Daten gingen verloren...

mfg  Gast 123
Antworten Top
#14
nochn Versuch für Gast
zuletzt gespeichert in Excel 2013 mit Parameter -xa


Angehängte Dateien
.xlsx   Maschinenliste1.xlsx (Größe: 258,24 KB / Downloads: 2)
Antworten Top
#15
Hallo Wastl

es ist wie verhext, die neue Datei stürzt auch wieder beim Öffnen ab!!

Waere es dir möglich die Daten mittels Kopieren in eine ganz neue Mappe rüberzuholen, am besten nur mit Werte einfügen.
Und die korrekten Tabellen Namen in der Mappe angeben.  Formatieren kann ich sie selbst,  Dann sollten alle Probleme raus sein.
Danke ....

mfg  Gast 123
Antworten Top
#16
neuerversuch


Angehängte Dateien
.xlsx   UltraTM_1701_1147.xlsx (Größe: 155,32 KB / Downloads: 3)
Antworten Top
#17
Hallo Wastl,

1. Hatte ja geschrieben das ich dann ja eben die Nein Maschinen mit einem Filter ausblenden kann um besser arbeiten zu können.
2. Das mit G22:999 ist richtig sollte 9999 sein. Habe da eben ne große Zahl genommen um Vorsorge zu treffen wenn die Liste länger wird.
3. Der Code ist eine Funktion die man ja aufrufen kann, in meinem Falle nutze ich diesen dann mit einem Button. Aber alle Funktionen tauchen ja in der makro liste auf. In dem Fall die Funktion JaNein
4. Also bei mir stehen bei Delivered 2017 nur eine Seriennummer pro Zeile in der Spalte  F drin. Nur beim Tabellenblatt 1 Overview stehen dort immer zwei drin, weil die Seriennummer das Fertigungswerk enthält und die Maschine bei uns erst richtig gebaut wird und dann ändert sich dadruch die Seriennummer.
Das ist nämlich auch eines meiner Probleme. Mit Strg+F nämlich manuell zum suchen funktioniert das ist aber immer ein rießen aufwand da ich immer wieder alle Maschinen suchen muss welche weg ist und welche nicht :(
Leider hatte ich auch die Datei zum Abgleich ausversehen gefiltert bei CU A1 wenn man da alle macht findet man auch die Maschinen die bei mir schon auf nein sind z.b. 201717009035032

Das sind eben meine Probleme da bin ich kein Profi darin eben gerade weil man aus einer anderen Datei etwas sucht und dann reagieren will darauf.

Manuell sieht es so aus was ich mache:

Ich nehme eine Maschine die bei mir auf Ja steht und kopiere die Seriennummer die bei mir in Spalte F steht und öffne dann die Datei_zum_Abgleich gehe dort auf Delivered 2017 z.b. nun gibt es auch noch Delivered 2018 und suche diese Seriennummer per STRG+F, finde ich diese Maschine dann dort stelle ich in meiner Liste auf Nein um.
So mache ich das jede Woche mit jeder Ja Maschine. Und es kommen immer wieder mehr dazu, da wir jede Woche neue Maschinen bekommen die gebaut werden.

Vielen Dank das du nicht schon aufgegeben hast.

Und Gast 123 auch für seine Mühen zu helfen.


Grüße René
Antworten Top
#18
Hi Rene,

Zitat:4. Also bei mir stehen bei Delivered 2017 nur eine Seriennummer pro Zeile in der Spalte  F drin.
Das ist leider falsch.
du hast auch "Delivered 2017" gefiltert. Mit dieser Filterung ist nur eine Seriennummer sichtbar
Wenn man den Filter weg macht, sieht man auch Maschinen die mit ZE anfangen, und da stehen fast immer mehr als eine Nummer in der Zelle.
Blush
Mein Code, den ich gewastlt habe findet 1 Übereinstimmung in Zeile 264
Als Datei nimmste am Besten die aus diesem Post:
http://www.clever-excel-forum.de/thread-...#pid106492

Und hier der Code, der in dieser Datei fix funktioniert:
Code:
Option Base 1
Sub wastl_rene()
Dim Ziel, Quelle
Dim ZielReihe As Long
Dim QuellReihe, Ausgabe
Dim iLng, MaschNr, jLng, test
' Anpassen, ich hab mir die beiden Bätter, um die es geht, in eine Datei kopiert
' Ich hab je eine Variable für ein sheet
Ziel = Sheets("Maschinenliste").Range("A1:AE9999")
Quelle = Sheets("Delivered 2017").Cells(1, 1).CurrentRegion
' hier suche ich jeweils die letzte Reihe
ZielReihe = UBound(Ziel, 1)
QuellReihe = UBound(Quelle, 1)

' Dimensionieren von Ausgabe -> kommt bei mir im test in Spalte AH
ReDim Ausgabe(ZielReihe, 0)


For iLng = 19 To ZielReihe
   
   MaschNr = Ziel(iLng, 5)
' Schleife verlassen wenn leerzelle kommt
   If MaschNr = "" Then Exit For
   For jLng = 2 To QuellReihe
' Eigentlicher vergleich
       test = InStr(1, MaschNr, Quelle(jLng, 6), vbTextCompare)
   
   Next jLng
   If test > 0 Then
       Ausgabe(iLng - 1, 0) = "ja"
   Else
       Ausgabe(iLng - 1, 0) = "Nein"
   End If
Next iLng

' Ich mache die Ausgabe in Spalte AH um nix an der Datei zu verändern
Sheets("Maschinenliste").Cells(1, 34).Resize(iLng, 1) = Ausgabe
' Excel braucht zum beschreiben einer zelle X Sekunden
' Excel braucht zum beschreiben von 250 Zellen X*250 Sekunden in der Schleife
' Excel braucht zum beschreiben 250 Zellen auf einmal X+0,2 Sekunden (gefühlt)
' Darum nur 1x schreiben

End Sub
Antworten Top
#19
Hallo Wastl,

ja stimmt hatte ich vergessen umzuschreiben im Post vorhin. Das ist das ändern der Seriennummer wegen des Werkes.


Habe dir Datei die bei dir verlinkt war genommen und den code versucht auszuführen darin.

Dort bekomme ich einen Laufzeitfehler 9

bei dieser Zeile:

ReDim Ausgabe(ZielReihe, 0)


Ich habe nur eine Frage zwecks des Codes. Dieser würde aber später auch gehen oder wenn wie jetzt gibt es noch Delivered 2018 wenn er aber darin sucht findet er die "alten" maschinen von 2017 nciht mehr was ja richtig ist, aber setzt diese dann nicht alle auf Ja oder? das  wäre schlecht dann, da diese ja schon 2017 aus dem Werk raus sind also sprich "Nein" sind.



Grüße René
Antworten Top
#20
Hi Rene,

Ups, sorry, lösche die erste Zeile im Code:
Option Base 1

Anpassen musste das auf dich natürlich analog dazu wie du es mit deinem Code gemacht hast:
Code:
    'Anpassen
    Set TB = ThisWorkbook.Sheets("Tabelle1")
    Pfad = "X:\Temp\Test\" ' mit \ am Ende
    Datei = "Datei2.xlsx"
    Jahr = InputBox("welches Jahr", "Delivered im Jahr", Year(Date))
    Blatt = "Delivered " & Jahr
    Set RNG = TB.Range("G22:G999")
    'Anpassen Ende
Ich geh mal davon aus, dass du das selber kannst

Mein Code lässt deine Spalte G völlig in Ruhe und trägt stattdessen in AH ein.
Beim schreiben hatte ich noch nicht verstanden wie diese Ja/nein in G zustande kommen. 
Und in Zeile 264 habe ich ein "ja", das einzige, und da stand auch schon vorher ein "Ja", wie auch immer Undecided

Habe noch eine Bitte:
Deine Antworten könnten ein paar mehr Kommas gebrauchen, so ohne muss ich einen Satz oft mehrmals lesen, bis mir klar wird, was du mir sagen willst
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste