Wenn dies dein erster Besuch hier ist, lese bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich registrieren, bevor du Beiträge verfassen kannst. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
funktioniert bei mir einwandfrei, wobei readmore auf dem rechner an der uni wirklich ein pest ist. sorry aber bei soviel werbung bin ich raus
wenn sich werte ändern, einfach alles wieder weiß markieren und das makro neu laufen lassen... wo ist das problem?
Du machst dabei halt genau den Fehler, auf den Slayer und ich hinweisen. Das Makro macht so keinen Sinn.
OT: Zudem ist Sheets(1).Activate & AnzZeilen = ActiveSheet.UsedRange.Rows.Count nicht schön ;)
Zitat von stickay
wenn die anlagennummern nicht einzigartig sind, welches merkmal ist es dann? irgendwas muss es ja geben, was die einträge deutlich kennzeichnet um mehrfacheinträge zu vermeiden
Es muss keine einzigartigen Werte geben, oftmals reicht es auch, dass sich eine Spalte in der Summe unterscheidet. Denke nicht, dass es hier eine Unique Spalte gibt.
Es muss keine einzigartigen Werte geben, oftmals reicht es auch, dass sich eine Spalte in der Summe unterscheidet. Denke nicht, dass es hier eine Unique Spalte gibt.
ich glaube aber nicht, dass er ein ergebnis wie in deinem screenshot haben möchte. die einträge 6-20 haben sich ja nicht geändert, sondern nur deren position in der tabelle.
ich denke er sucht eher sowas:
wobei idealerweise noch irgendwo auskunft gegeben werden könnte, welche zeilen gelöscht wurden
e: grad bemerkt, dass du mit dem screenshot nur den fehler voon ali darstellen möchtest, nvm ;)
Die einzige Zeile die einzigartig ist ist die Anlagenbezeichnung. Die sieht meistens so aus: XXX-AAA/123-XXX und hat ne eigene Zeile
Leider nur meistens, gibt welche die Weichen ab. Sind aber auf jeden FAll einzigartig.
Kann leider keine orginale hier posten, da würde man teilweise nicht ganz unsensible Daten rauslesen können.
Und ja, so wie Stickay das gezeigt hat sollte das im Idealfall aussehen
Die einzige Zeile die einzigartig ist ist die Anlagenbezeichnung. Die sieht meistens so aus: XXX-AAA/123-XXX und hat ne eigene Zeile
Leider nur meistens, gibt welche die Weichen ab. Sind aber auf jeden FAll einzigartig.
Kann leider keine orginale hier posten, da würde man teilweise nicht ganz unsensible Daten rauslesen können.
Und ja, so wie Stickay das gezeigt hat sollte das im Idealfall aussehen
Mit Zeile meinst du Spalte, denke ich?
Was heißt "weichen ab"? Ist dann die Spalte nicht gefüllt?
Die einzige Zeile die einzigartig ist ist die Anlagenbezeichnung. Die sieht meistens so aus: XXX-AAA/123-XXX und hat ne eigene Zeile
Leider nur meistens, gibt welche die Weichen ab. Sind aber auf jeden FAll einzigartig.
Kann leider keine orginale hier posten, da würde man teilweise nicht ganz unsensible Daten rauslesen können.
Und ja, so wie Stickay das gezeigt hat sollte das im Idealfall aussehen
Mit Zeile meinst du Spalte, denke ich?
Was heißt "weichen ab"? Ist dann die Spalte nicht gefüllt?
Sorry, ja natürlich Spalte.
Es gibt bei der Bezeichnung 3 Möglichkeiten: Sie folgt dem obigen Muster, sie folgt einem anderen Muster (in etwa XXX-12/001/EG/100/V1/1/x-xxx11-1-eg-111-typ1234-1) oder es ist leer (-- im Feld).
Beispiel hochladen ist schwierig, bin am Arbeitsrechner und hier sind praktisch alle Filehoster einschließlich Google Drive gesperrt.
Ist aber eig einfach genug, kann ich auch hier machen:
Nummer Bezeichnung X Y Z
1 XXX-AAA/123-XXX abc def 5
2 XXX-AAA/126-abc fgf oer 7
3 XXX-AAA/009-342 oas kd 1
5 -- rtz er 6
6 XXX-AAA/123-uz io po 5
So sieht das aus, nur obv mehr Spalten und mehr Zeilen.
Alles außer Bezeichnung ist nicht einzigartig. Alles kann sich ändern. Zeilen können gelöscht werden, Spalten bleiben immer bestehen.
Die "neue" Version wäre dann auf Tabellenblatt 2 und könnte so aussehen:
Nummer Bezeichnung X Y Z
1 XXX-AAA/123-XXX qwe rt 5
2 XXX-AAA/126-abc fgf oer 7
3 XXX-AAA/009-342 oas kd 1
5 -- rtz er 6
6 XXX-AAA/123-uz io po 5
Du hast ein Problem mit den leeren Anlagenbezeichnungen. Ich hab gerade bisschen was gemacht und mich dabei auf deine Aussage verlassen, dass es etwas einzigartiges gibt. Nun stellt sich heraus, dass es keine einzigartige Spalte gibt, prima.
So hätte es dann ausgesehen:
Funktioniert aber in deinem Fall nicht, durch die "--" Zeilen.
Die einzige Möglichkeit auf die schnelle sehe ich darin, die leeren Zellen (--) nicht zu berücksichtigen und für die manuelle Kontrolle zu markieren. Oder hast du eventuell 2 Spalten, die sich nie ändern und zusammen einzigartig sind? Oder 3?
Du brauchst irgendetwas einzigartiges, was nie doppelt vorkommt. Das kann auch ein String zusammengesetzt aus 2 oder 3 Spalten sein, hauptsache einzigartig.
Naja, du könntest mit SVerweis arbeiten auf die Spalte Bezeichnung, allerdings musst du natürlich die ohne Bezeichnung ("--") rauslassen. (z.B. =Wenn(A2 "--";SVerweis(....);"") ).
Hier mal ein Beispiel von mir, schnell hingezimmert. Noch nicht weiter mit geprüft, schaut auf den ersten Blick funktionsfähig aus, aber Killa kanns ja mal auseinander nehmen.
In Tabelle2 rechts die Tabelle ist nur zum Test der Formel gewesen.
For i = 2 To maxZahl1
bFound = False
For j = 2 To maxZahl2
If Sheets(1).Cells(i, iAnlagennummer).Value = "--" Then
bFound = True
Sheets(1).Range("A" & i & ":" & sLetztespalte & i).Interior.ColorIndex = 7
Exit For
End If
If Sheets(1).Cells(i, iAnlagennummer) = Sheets(2).Cells(j, iAnlagennummer) Then
bFound = True
Sheets(1).Cells(i, iAnlagennummer).Interior.ColorIndex = 4
Sheets(2).Cells(j, iAnlagennummer).Interior.ColorIndex = 4
For k = 1 To letzteSpalte
If k iAnlagennummer Then
If Sheets(1).Cells(i, k) = Sheets(2).Cells(j, k) Then
Sheets(1).Cells(i, k).Interior.ColorIndex = 4
Sheets(2).Cells(j, k).Interior.ColorIndex = 4
Else
Sheets(1).Cells(i, k).Interior.ColorIndex = 8
Sheets(2).Cells(j, k).Interior.ColorIndex = 8
End If
End If
Next k
Exit For
End If
Next j
If bFound = False Then Sheets(1).Range("A" & i & ":" & sLetztespalte & i).Interior.ColorIndex = 3
Next i
For i = 2 To maxZahl2
If Sheets(2).Cells(i, iAnlagennummer).Value = "--" Then
Sheets(2).Range("A" & i & ":" & sLetztespalte & i).Interior.ColorIndex = 7
End If
If Sheets(2).Cells(i, iAnlagennummer).Interior.ColorIndex = 2 Then
Sheets(2).Range("A" & i & ":" & sLetztespalte & i).Interior.ColorIndex = 6
End If
Next i
End Sub
Das einzige was du eventuell mal ändern musst, sind die oberen beiden Variablen. In deinem Falle müsstest du also noch die 4 in eine 2 ändern. Das S stimmt ja bei 19 Spalten. Hier der Link zu Pastebin, da ist es schöner formatiert.
SVerweis ist nicht verkehrt, allerdings für den Zweck mMn nicht geeignet, da du damit nicht so leicht sehen kannst, wenn Spalten wegfallen oder dazukommen.
Also bei iAnlagennummer = 2 wird praktisch alles rot, nur die -- werden lila. Neue Zeile unten wird Türkis.
Also entweder ich hab was falsch oder da läuft was schief.
Kommentar