132183
Goto Top

Nach Prüfung Farblich unterlegen und Summieren

Hallo

Vielleicht könnt ihr mir helfen.

Ich hab eine Liste in der steht in der Spalte E eine als Text formatierte Personalnummer und in Spalte F ein Name. Manche der Name und Personalnummer steht in der Liste 2-3 mal untereinander.

Jetzt würde ich eine kleines Programm brauchen das immer den Namen und dazugehörige Personalnummer mit den Namen und Personalnummer darunter vergleicht.

Sofern der Name zwei oder mehrmals vorkommt. Aber die Personalnummer daneben anders ist. Sollen die beiden Namen und Personalnummern in irgend einer Farbe unterlegt werden.

So in etwa saut so ein Fehler aus

1 I___________ I___________ I___________ I___________ I___________I___________________I___________ I___________ I
2 I___________ I___________ I___________ I_____32 ___ I 0548345 I Maria Musterfrau I_____10____I___________ I
3 I___________ I___________ I___________ I______0____ I 0548345 I Maria Musterfrau I_____15____I___________ I
4 I___________ I___________ I___________ I______0____ I 0222222 I Maria Musterfrau I______7 ____I___________ I
.
Jetzt müsste die Zellen E3 F3 und E4 F4 Farbig unterlegt werden. Bzw alle 6 Zellen wären auch ok und zusätzlich sollten die Zellen G2,G3,G4 Summiert werden. Und das Ergebnis in D2 Geschrieben werden , die anderen Zellen D3 und D4 bekommen eine null. Die Berechnung sollte die ganze liste betreffen nicht nur die werte mit Fehlern wenn das nicht geht dann reicht mir natürlich auch nur die Farbmarkierung.

Der sin ist, das durch kopieren manche der Benutzer der Liste, den Namen kopieren aber nicht die Personalnummer wenn sie eine neue Zeile erstellen und dann steht der Name zwar untereinander. Weil die liste sortiert ist, aber oft hat einer der Einträge eine andere Personalnummer. Weis auch nicht wie das dauernd passiert. Mit Farbiger Unterlegung würde ich es Schneller erkennen.

Wäre sehr nett, wen mir da jemand weiterhelfen könnte bin ziemlich unfähig in VBA.

Grüße Semmy

Content-Key: 331806

Url: https://administrator.de/contentid/331806

Printed on: April 19, 2024 at 08:04 o'clock

Mitglied: 132183
132183 Mar 10, 2017 updated at 19:45:07 (UTC)
Goto Top
Sorry hab die Buchstaben über den Spalten nicht richtig hinbekommen und die Grammatik ist auch nicht ganz Perfekt.
Mitglied: 132658
132658 Mar 10, 2017 updated at 19:01:05 (UTC)
Goto Top
Selten so eine Grütze gelesen. => Schnell in den Papierkorb damit! Ist ja peinlich, setzen 6-, Grundschule wiederholen!
Member: Spirit-of-Eli
Spirit-of-Eli Mar 10, 2017 at 19:12:43 (UTC)
Goto Top
Moin,

nutzt du nicht Excel? Ich bin da kein Profi drin, aber das dafür gibts mein ich ne Funktion.
Ich kann es Zuhause aber nicht nachschauen.

Gruß
Spirit
Mitglied: 132183
132183 Mar 10, 2017 updated at 19:26:46 (UTC)
Goto Top
Hab die bearbeiten Taste gefunden für den Text face-smile.

Du meinst sicher die bedingte Formatierung aber ich weis nicht wie ich sie für diesen Fall anlegen muss. Und die wird immer mitkopiert wenn jemand Zeilen oder Zellen Kopiert. Dann kennt man sich in den Einstellungen der bedingten Formatierung irgendwann nicht mehr aus und muss sie neu anlegen.

VBA wäre mir Ehrlich gesagt lieber weil das niemand aus versehen zerstören kann aber ich nehme natürlich auch eine Formel

Grüße Semmy
Member: Pjordorf
Pjordorf Mar 10, 2017 at 19:50:48 (UTC)
Goto Top
Hallo,

Zitat von @132183:
Ich hab eine liste in der steht in dieser liste stehen Einspalte E eine
Was hast du?

Manche der Name und Personalnummer steht in der liste 2-3 mal untereinander.
Tatsächlich immer und ausschließlich untereinander oder auch quer durch dein Excelblatt verstreut?

Jetzt würde ich eine kleines Programm brauchen das immer den Namen und dazugehörige Personalnummer mit den Namen und Personalnummer
Nennt sich Dublettensuche. Und wenn die eben nicht untereinander stehen?

Wenn der Name zwei oder mehr Mals vorkommt. Aber die Personalnummer daneben ist plötzlich ändert.
Wie kann ein und diesselbe Person mehrere Personalnummern haben? Solltest du nicht lieber schauen das die Personalnummern sortiert werden und du so Dubletten leichter aufspürst?

Sollen die beiden Namen und Personalnummern in irgend einer Farbe unterlegt werden.
Irgendeine noch nicht verwendete Farbe in dein Excelblatt oder dürfen die Farben auch mehrmals vorkommen?

So in etwa saut so ein Fehler aus
Du darfst ruhig von dein Excelblatt einen Auszug machen (Snippingtool oder Greenshot oder sonstein Bildschirmfotographierwerkzeug) und das Bild dann hier im Beitrag einfügen. Dazu dient das Kamerasymbol links vom Editor hier im Forum.

Jetzt müsste da Zellen E3 F3 und E4 F4 Farbig unterlegt werden.
Die gleiche Farbe oder verschiedene?

Der sin ist, das durch kopieren manche der Benutzer der Liste, den Namen kopieren aber nicht die Personalnummer wenn sie eine neue Zeile erstellen
Dann ist dein Excellblatt falsch aufgebaut wenn die welche die Werte eingeben dort schon fehlerhafte Daten eingeben können, oder du musst diejenigen dort besser Schulen.

und dann steht die der Name zwar untereinander weil die liste sortiert ist aber oft hat einer der eintrage eine andere Personalnummer.
Lasse nur zu das die Personalnummer eingegeben wird und der Personalname wird aus einer Liste automatischen eingetragen. Serweis ist dein Freund.
sverweis

Mit Farbiger Unterlegung würde ich es Schneller erkennen.
Erkennen zwar, aber gar nicht erst den Fehler zulassen ist die Lösung.

Wäre ser nett wen mir da jemand weiterhelfen könnte bin ziemlich unfähig in VBA.
Sverweis arbeitet auch ohne VBA und Zellen gar nicht erst beschreibbar zu haben, dazu braucht es auch kein VBA. Blattschutz ist dein Helfer.

Gruß,
Peter
Mitglied: 132183
132183 Mar 10, 2017 updated at 20:24:22 (UTC)
Goto Top
Hallo

leider kann ich am Aufbau der Tabelle nichts ändern, ich kann sie nur korrigieren bevor ich sie benutze. Ich bin dort der Praktikant. Die selbe Farbe reicht aus unterschiedliche Farben sind nur unnötige Arbeit.

Zitat von @Pjordorf:

Hallo,

Zitat von @132183:
Ich hab eine liste in der steht in dieser liste stehen Einspalte E eine
Was hast du?
Hab den Satz ja schon Korrigiert

Manche der Name und Personalnummer steht in der liste 2-3 mal untereinander.
Tatsächlich immer und ausschließlich untereinander oder auch quer durch dein Excelblatt verstreut?
Immer und ausschließlich untereinander.


Jetzt würde ich eine kleines Programm brauchen das immer den Namen und dazugehörige Personalnummer mit den Namen und Personalnummer
Nennt sich Dublettensuche. Und wenn die eben nicht untereinander stehen?
Ich wollte eigentlich vor dem Code zum einfärben und berechnen eine Sortierung laufen lassen die ich mit dem Recorder Aufgezeichnet habe.


Wenn der Name zwei oder mehr Mals vorkommt. Aber die Personalnummer daneben ist plötzlich ändert.
Wie kann ein und diesselbe Person mehrere Personalnummern haben? Solltest du nicht lieber schauen das die Personalnummern sortiert werden und du so Dubletten leichter aufspürst?
Die verschiedenen Personalnummern für die selbe Person entstehen durch die Benutzer ich bin noch nicht ganz dahinter gekommen wie sie das machen. ich nehme an durch Kopieren und nicht vollständiges markieren aber ich weis es nicht genau.


Sollen die beiden Namen und Personalnummern in irgend einer Farbe unterlegt werden.
Irgendeine noch nicht verwendete Farbe in dein Excelblatt oder dürfen die Farben auch mehrmals vorkommen?
Irgendeine Farbe zbsp. ein Kräftiges blau

So in etwa saut so ein Fehler aus
Du darfst ruhig von dein Excelblatt einen Auszug machen (Snippingtool oder Greenshot oder sonstein Bildschirmfotographierwerkzeug) und das Bild dann hier im Beitrag einfügen. Dazu dient das Kamerasymbol links vom Editor hier im Forum.

danke für den Tip werd ich mir merken

Jetzt müsste da Zellen E3 F3 und E4 F4 Farbig unterlegt werden.
Die gleiche Farbe oder verschiedene?

Die gleiche

Der sin ist, das durch kopieren manche der Benutzer der Liste, den Namen kopieren aber nicht die Personalnummer wenn sie eine neue Zeile erstellen
Dann ist dein Excellblatt falsch aufgebaut wenn die welche die Werte eingeben dort schon fehlerhafte Daten eingeben können, oder du musst diejenigen dort besser Schulen.
Wie gesagt, bin der Praktikant, die würden mir was Pfeifen. Ist nicht meine Mappe


und dann steht die der Name zwar untereinander weil die liste sortiert ist aber oft hat einer der eintrage eine andere Personalnummer.
Lasse nur zu das die Personalnummer eingegeben wird und der Personalname wird aus einer Liste automatischen eingetragen. Serweis ist dein Freund.
Eine gute Idee aber ich soll da auch kein Tabellenblatt dazulegen wo ich die zweite liste drauf hätte. Ich wollt die Mappe in eine zweite Kopieren und das Makro Rüberlaufen lassen. Um dann damit arbeiten zu können.


Mit Farbiger Unterlegung würde ich es Schneller erkennen.
Erkennen zwar, aber gar nicht erst den Fehler zulassen ist die Lösung.
Würd ich gern, aber wie gesagt. ich hab dort garnichts zu sagen.


Wäre ser nett wen mir da jemand weiterhelfen könnte bin ziemlich unfähig in VBA.
Sverweis arbeitet auch ohne VBA und Zellen gar nicht erst beschreibbar zu haben, dazu braucht es auch kein VBA. Blattschutz ist dein Helfer.
Ich darf auch nix schützen in der Mappe, also hilfst du mir oder ist es dir zu Blöd.

Grüße Semmy
Member: Pjordorf
Pjordorf Mar 10, 2017 at 20:59:21 (UTC)
Goto Top
Hallo,

Zitat von @132183:
leider kann ich am Aufbau der Tabelle nichts ändern, ich kann sie nur korrigieren bevor ich sie benutze. Ich bin dort der Praktikant. Die selbe Farbe reicht aus unterschiedliche Farben sind nur unnötige Arbeit.
Und wie willst du dann dein VBA in das Excell bekommen wenn du nichts darfst?

Ich wollte eigentlich vor dem Code zum einfärben und berechnen eine Sortierung laufen lassen die ich mit dem Recorder Aufgezeichnet habe.
Bedenke nicht nur die einzelne Spalte sondern immer den ganze Datensätze zu Sortieren.

aber ich weis es nicht genau.
Solltest du als zukünftiger Excel Experte dort aber rausbekommen um die Abläufe ins richtige Lot zu bringen.

Wie gesagt, bin der Praktikant, die würden mir was Pfeifen. Ist nicht meine Mappe
Sag denen doch ruhig das an deren aufbau und handhabung etwas massiv falsch läuft - dazu braucht es kein Experte, das kann dir jeder sagen der sich mit Excel und Daten auch nur mal 1 Tag beschäftigt hat.

Mit Farbiger Unterlegung würde ich es Schneller erkennen.
Start - Formatvorlagen - Bedingte Formatierung - Regeln zum Hervorheben von Zeilen - Doppelte Werte . farbe aussuchen und OK. Oder aber
Sub Doppelte()
    Cells.Select
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16751204
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 10284031
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("C14").Select  
End Sub
http://www.0711office.de/excel/DuplikateHervorhebenAddIn.htm
http://www.it-service-ruhr.de/tipp/excel-doppelte-datensaetze-finden
http://www.tabellenexperte.de/dublettensuche-mit-excel
https://support.office.com/de-de/article/Finden-und-Entfernen-von-Duplik ...
https://support.office.com/de-de/article/Filtern-auf-oder-Entfernen-von- ...

Gruß,
Peter
Mitglied: 132183
132183 Mar 10, 2017 updated at 21:47:43 (UTC)
Goto Top
Zitat von @Pjordorf:

Hallo,

Zitat von @132183:
leider kann ich am Aufbau der Tabelle nichts ändern, ich kann sie nur korrigieren bevor ich sie benutze. Ich bin dort der Praktikant. Die selbe Farbe reicht aus unterschiedliche Farben sind nur unnötige Arbeit.
Und wie willst du dann dein VBA in das Excell bekommen wenn du nichts darfst?
Naja wollt mehr die Daten in eine andere Datei Kopieren als den Code in die Datei einzupflanzen. Wobei die Datei ist sogar als xlsm abgespeichert. Würde wahrscheinlich niemand mitbekommen. Und wenn doch dann kann mich damit eher nicht in Verbindung bringen.

Ich wollte eigentlich vor dem Code zum einfärben und berechnen eine Sortierung laufen lassen die ich mit dem Recorder Aufgezeichnet habe.
Bedenke nicht nur die einzelne Spalte sondern immer den ganze Datensätze zu Sortieren.
Hab so aufgezeichnet.


aber ich weis es nicht genau.
Solltest du als zukünftiger Excel Experte dort aber rausbekommen um die Abläufe ins richtige Lot zu bringen.
werd ich noch, aber wie gesagt es ist das fehlerhafte kopieren der user. sie fügen Datenzeilen stücke ein, um andere zu Datenzeilen zu ändern und vergessen die P Nr. dabei weil sie nur auf den Namen und andere Daten Achten.

Wie gesagt, bin der Praktikant, die würden mir was Pfeifen. Ist nicht meine Mappe
Sag denen doch ruhig das an deren aufbau und handhabung etwas massiv falsch läuft - dazu braucht es kein Experte, das kann dir jeder sagen der sich mit Excel und Daten auch nur mal 1 Tag beschäftigt hat.
Naja vielleicht wenn ich etwas länger dort bin.

Mit Farbiger Unterlegung würde ich es Schneller erkennen.
Start - Formatvorlagen - Bedingte Formatierung - Regeln zum Hervorheben von Zeilen - Doppelte Werte . farbe aussuchen und OK. Oder aber
Sub Doppelte()
>     Cells.Select
>     Selection.FormatConditions.AddUniqueValues
>     Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
>     Selection.FormatConditions(1).DupeUnique = xlDuplicate
>     With Selection.FormatConditions(1).Font
>         .Color = -16751204
>         .TintAndShade = 0
>     End With
>     With Selection.FormatConditions(1).Interior
>         .PatternColorIndex = xlAutomatic
>         .Color = 10284031
>         .TintAndShade = 0
>     End With
>     Selection.FormatConditions(1).StopIfTrue = False
>     Range("C14").Select  
> End Sub
http://www.0711office.de/excel/DuplikateHervorhebenAddIn.htm
http://www.it-service-ruhr.de/tipp/excel-doppelte-datensaetze-finden
http://www.tabellenexperte.de/dublettensuche-mit-excel
https://support.office.com/de-de/article/Finden-und-Entfernen-von-Duplik ...
https://support.office.com/de-de/article/Filtern-auf-oder-Entfernen-von- ...

Also der Code ist im Grunde eine bedingte Formatierung über die ganze Tabelle aber das ist ja genau das was ich nicht machen will. In der Tabelle sind überall in den Datensätzen gleiche Werte vokalem Zahlen.

Es wird alles markiert nur die Namen und P.Nr nicht die aus nur einer Zeile bestehen, sich also nicht wiederholen fast der gesamte rest der Zeile dieser Datensätze aber dann doch. Ist jetzt eine Datenzeile (eine P Nr.) falsch dann verschwindet sie wieder in den nicht markierten abschnitten. Da es keine schleife ist kann ich da auch keine Berechnung anhängen.

Es würde ja nicht darum gehen Duplikate zu finden sondern Abweichungen. Man könnte es als bedingte Formatierung unter mehreren Kriterien betrachten, mit einer zusätzlichen Berechnung:

1 I___________ I___________ I___________ I___________ I___________I___________________I___________
2 I___________ I___________ I_____32 ___ I 0548345 I Maria Musterfrau I_____10____I___________ I
3 I___________ I___________ I______0____ I 0548345 I Maria Musterfrau I_____15____I___________ I
4 I___________ I___________ I______0____ I 0222222 I Maria Musterfrau I______7 ____I___________


Aber trotzdem danke für den Versuch, und danke für die links die Methoden hab ich größtenteils schon gekannt. Aber trotzdem Danke

Grüße Semmy
Member: Pjordorf
Pjordorf Mar 10, 2017 updated at 22:19:57 (UTC)
Goto Top
Hallo,

Zitat von @132183:
Wobei die Datei ist sogar als xlsm abgespeichert
Bedenke das heutige OSe und Officedokumente, speziell die mit Makros, oftmals gesperrt sind weil eben ein Makro auch ganz was anderes tun kann als auf den Bildschirm zu sehen ist.

Ist jetzt eine Datenzeile (eine P Nr.) falsch dann
Wer garantiert das die Personalnamen denn alle gleich geschrieben werden oder sind? Wer sagt das auch immer die richtige Personalnummer verwendet wird? Was hindert dort das jemand anstelle von "Maria Musterfrau" ein "Märia Musterfrua" eingetippelt werden kann oder das anstelle der "0548345" eben mehrmals ein "O548345" oder "0549345" gemacht wird" Was ist wenn 5 datensätze eben "0548345 Maria Musterfrau" haben und 5 Datensätze ein "Marai Musterfrau 0349345" habe? Welche sind dann richtig bzw welche Daten sind falsch? Stell dir vor an ein CNC Drehautomat kann jemand der 80 mm lange Stifte produzieren will mal eben 80 km einstellt (vertippt oder sonstwas). Das darf nicht passieren, daher den fehler an der Quelle eliminieren. Bei verwendung von Sverweis dort braucht auch nur noch die Personalnummer eingegeben werden, den Namen holt es sich selbst. Dann kann dort der Fehler das die Personalnummer nicht passend zum Personalnamen ist gar nicht mehr auftauchen - neben dem effekt das die Eingabe schneller ist und die Dublettensuche ganz entfällt.

Da es keine schleife ist kann ich da auch keine Berechnung anhängen.
Das ist nicht mal eben so gemacht und wird je nach Anzahl an Datenzeilen entsprechend beim ablaufen dauern.
Daten zuerst Sortieren (Personalnummer vorzugsweise da der dortige Text leicht in Nummern gewandelt werden kann)
Zwei unabhängige Zeilenzähler
Zellinhalt einlesen und merken
Nächste Zeile und den dortigen Zellinhalt mit den gespeicherten Zellinhalt vergleichen. Wenn gleich nächsten Zellinhalt mit vorhegerigen zellinhalt vergleichen. Wenn gleich Zellen farblich markieren
usw.
usw.
usw.
Noch eine kleine For - Next oder While Wend oder Do Loop drumherum, ein wenig Fehlerbehandlung und dein VBA kann loslaufen.

Es würde ja nicht darum gehen Duplikate zu finden sondern Abweichungen:
Abweichungen sind dann alles was keine Duplikate sindface-smile

https://support.office.com/de-de/article/Z%C3%A4hlen-der-Anzahl-eindeuti ...
http://www.klamm.de/forum/f68/excel-zaehlen-aller-doppelter-werte-35656 ...
http://www.supportnet.de/fresh/2007/11/id1628087.asp
https://support.office.com/de-de/article/Z%C3%A4hlen-wie-h%C3%A4ufig-ein ...

http://www.herber.de/forum/archiv/844to848/847078_Doppelte_zaehlen_per_ ...
http://www.ms-office-forum.net/forum/showthread.php?t=273675
http://www.office-loesung.de/ftopic518604_0_0_asc.php

https://msdn.microsoft.com/de-de/library/office/ee814737%28v=office.14%2 ...
http://www.excel-easy.com/vba.html
https://www.tutorialspoint.com/vba/
https://www.excel-pratique.com/en/vba.php
http://www.vba-tutorial.de/

Gruß,
Peter
Mitglied: 132183
132183 Mar 10, 2017 at 22:12:14 (UTC)
Goto Top
Im VBA wahrscheinlich: (glaub ich jedenfalls)

1. abgleich ob wert in F2 der erste wert ein zweites mal innerhalb dieser spalte vorkommt.
wenn nein abgleich ob die Personal Nummer in spalte E2 ein zweites mal in der spalte E vorkommt. wenn nein dann berechnen G2= E2 und weiter zum nächster Wert F3

2.abgleich ob wert in F3 ein zweites mal innerhalb dieser spalte vorkommt.
3.wenn ja dann abgleich ob der zweite Wert (F4) die selbe P Nr. hat wie der wert in F3 bzw die P. Nr von F3 wäre dann E3.

4.Wenn ja abgleich Ob der wert in der spalte ein drittes mal vorkommt.

5.wenn ja dann abgleich ob der dritte wert(F5) die selbe P Nr. hat. wie die zwei anderen werte

6 wenn nein Markierung der werte. F3 E3, F4,E4,F5,E5

7.Ob sich der nächste wert (F6) von den andern unterscheidet

8.wenn nein dann abgleich ob sich die P Nr.(E6) dieses Wertes mit den vorhergehenden P Nr E3-E5 übereinstimmt wenn ja dann E6 u.F6 ebenfalls Makieren.

usw.

9 wenn sich der nächste wert unterscheidet dann vorhergehende werte G3 bis G6 berechnen und in D3 eintragen.

10.Weiter zum nächsten wert.

So irgendwie müsste das doch gehen aber ich weis leider nicht wie man den Cod richtig schreibet

Wäre echt nett, wenn mir da jemand helfen könnte.

Grüße Semmy
Mitglied: 132183
132183 Mar 10, 2017 updated at 22:36:13 (UTC)
Goto Top
Hatte deinen Beitrag erst gesehen als ich meinen fertiggeschrieben hatte.

Mit einem Wort es ist aufwendig diesen code zu erstellen. Naja ok, dachte es wäre ne schnelle Sache für jemanden erfahrenen.

Alles klar, da kann man wohl nix machen. Danke für die Informationen ich hab zwar nicht viel Ahnung aber vielleicht Schaft ich es ja Selber.

Grüße Semmy
Mitglied: 132658
132658 Mar 11, 2017 updated at 08:19:33 (UTC)
Goto Top
Für nen 10er mach ich dir das fix und fertig im Handumdehen.

Gruß schnappi
Mitglied: 132183
132183 Mar 11, 2017 updated at 08:51:57 (UTC)
Goto Top
Hallo

Geht Klar, wenn möglich dann wäre es nett. wenn du den Code Kommentieren könntest (meine deinen Code) ich probier schon den ganzen morgen herum und es ist erst das hier dabei rausgekommen.

Sub Prüfen()

Dim letzteZ As Long
Dim i As Integer
Dim k As Integer
Dim zählerA As Long
Dim zählerB As Long
Dim strName1 As String
Dim strName2 As String
Dim PerN1 as Variant
Dim PerN2 as Variant
Dim wksBlatt As Worksheet
Set wksBlatt = Worksheets("Gesamt")  

zählerA = 2
zählerB = 3

With wksBlatt
    letzteZ = .Cells(Rows.Count, 5).End(xlUp).Row
    
    For i = 2 To letzteZ
           
        strName1 = Cells(zählerA, 5)
        PerN1 = Cells(zählerA, 4)
        strName2 = Cells(zählerB, 5)
        PerN2 = Cells(zählerB, 4)
        
Debug.Print PerN1 & " " & strName1  

            If strName2 = strName1 And PerN2 = PerN1 Then
            Debug.Print "GLEICH"  
            Else
            Debug.Print "NEIN"  
            End If
        
        zählerA = zählerA + 1
        zählerB = zählerB + 1
    
    Next i
End With
End Sub

Da erkennt er grade mal ob die Personalnummer und der Name in der darunterlegenden Spalte gleich sind aber von erfassen des Bereichs der gefärbt werden soll oder des Zusammenrechnens der zahlen in spalte G und eintragen beim spalte D noch keine Spur. Also noch ewig weit davon entfernt was ich erreichen will und womöglich überhaupt das falsche vorgehen.

Güße Simpel
Mitglied: 132658
132658 Mar 11, 2017 at 11:15:00 (UTC)
Goto Top
Code wurde per PN abgeliefert, schau in deinen Briefkasten.

Gruß schnappi
Mitglied: 132183
132183 Mar 11, 2017 updated at 18:56:09 (UTC)
Goto Top
Na toll 10er kassiert, fehlerhaften code bzw nicht richtig funktionierenden code abgeliefert und Account offenbar gelöscht . Perfekt, das hab ich davon.

Eine richtig hilfreiche Person hier ist @Pjordorf, er liefert jede menge infos. Aber der Kerl jetzt war ein Schuss in den Ofen. hmm also zurück zum Studium der links von @Pjordorf.
Member: Pjordorf
Pjordorf Mar 11, 2017 at 19:18:34 (UTC)
Goto Top
Hallo,

Zitat von @132183:
Na toll 10er kassiert, fehlerhaften code bzw nicht richtig funktionierenden code abgeliefert und Account offenbar gelöscht . Perfekt, das hab ich davon.
Hoffentlich erwartest du darauf kein Kommentar?

Wie weit ist denn der Quellcode gediehen? Du hattest ja selbst ja auch schon vielversprechend deinen Anfang gemacht. Vergiss erstmal das Code Optimieren und schön aussehen (nein, nicht das Strukturieren) sondern versuche deine Bedingungen zu erfüllen. Gilt dein Aufbau noch?
persdaten

Sowie dein Nach Prüfung Farblich unterlegen und Summieren ?
Was ist in F2 drin?

Gruß,
Peter
Mitglied: 132183
132183 Mar 11, 2017 updated at 21:16:46 (UTC)
Goto Top
Hallo

Ja der Aufbau ist noch so aber das Makro arbeitet eine spalte weiter rechts also musstest du um eine Spalte rüber um es zu testen. Oder noch bessern: https://drive.google.com/open?id=0B1ox6s2nL-CyMnVlTGZ3ZFlraU0 (links im Tabellen Blatt das was das Makro macht und rechts das was es eher machen sollte)

in F2 sind Zahlenwerte drin die den Namens block entsprechend Summiert werden müssen und dann immer in die oberste Zeile eines Blocks in C geschrieben werden.

Na toll 10er kassiert, fehlerhaften code bzw nicht richtig funktionierenden code abgeliefert und
Account offenbar gelöscht . Perfekt, das hab ich davon.
Hoffentlich erwartest du darauf kein Kommentar?
Nein, war mehr Frust (bin selbst schuld)

Das ist der Aktuelle Code:
Sub MarkDoublesAndSum()
    Dim cell As Range, ref As Range
    With ActiveSheet
        'ref wird immer die Zelle des ersten Eintrags von doppelten Werten zugewiesen  
        Set ref = .Range("F1")  
        'Ermittle den belegten Bereich in Spalte F  
        With .Range("F2:F" & .Cells(Rows.Count, "F").End(xlUp).Row)  
            'Für jede Zelle in Spalte F  
            For Each cell In .Cells
                'Wenn aktuelle Zelle unterschiedlich zur Referenzzelle  
                If ref <> cell.Value Then
                    Set ref = cell
                    'Spalte D Summe auf 0 setzen  
                    ref.Offset(0, -2).Value = 0
                    'Summe initial mit Wert aus G setzen  
                    ref.Offset(0, -2).Value = cell.Offset(0, 1).Value
                Else
                    'Doppelter Wert  
                    'Markiere Zellen mit Farbe  
                    cell.Offset(0, -1).Resize(1, 2).Interior.Color = vbMagenta
                    'Summiere Werte und schreibe die Summe in D  
                    ref.Offset(0, -2).Value = ref.Offset(0, -2).Value + cell.Offset(0, 1).Value
                End If
            Next
        End With
    End With
End Sub


Denk daran das der Code eine Spalte weiter rechts Arbeitet als die spalten auf deiner Abbildung aber deine Abbildung entspricht mehr meiner Tabelle. Ich werd mich hier im text aber trotzdem auf die Spaltenbelegung laut dem Codes beziehen. Also:

D=Summen,
E- Personalnummer
F=Namen
G=Zahlenwerte (für Summierung)

Im Moment ist es einfach nur wie eine bedingte Formatierung die Doppelte Namen findet.

  • Es fehlen noch einige dinge bzw. die Namen müssen korrigiert werden doppelte Leerzeihen und beistriche zwischen den Namen .

  • Im Moment findet er nur doppelte Werte im Bereich der Namen, Markiert diese zwar aber nicht den ganzen block. Also einfach alles Doppelte, das bekomm ich mit der bedingten Formatierung auch problemlos hin. Er sollte aber nur die fehlerhaften Blöcke von Namen Markieren.

  • Er Berechnet zwar die Summe aus den Zahlen aus G und schreibt das Ergebnis in D aber wenn in D schon was gestanden ist, dann setzt er den wert der Zellen wo dann eigentlich nichts mehr stehen sollte nicht auf null.

  • Es is wohl notwendig zwei farben zu verwenden, wenn fehlerhafte blocke an einender angrenzen.

  • Ich hab mir gedacht das ich die Farbmarkierung vielleicht einfach nur in spalte links neben der Personalnummer setze da man ja VBA Aktionen (wie ich rausbekommen hab) nicht über die rückgängig taste wider aufheben kann. Deswegen ist es wohl besser nur Zellen innerhalb einer Spalte einzufärben um etweillige andere Einfärbungen von Benutzern nicht zu gefährden.

Das ist der derzeitige Stand.

Grüße Semmy
Mitglied: 132692
Solution 132692 Mar 20, 2017 at 12:36:31 (UTC)
Goto Top
Sub MarkDoublesAndSum()
    Dim cell As Range, ref As Range, colorCurrent As Long, dic As Object
    Set dic = CreateObject("Scripting.Dictionary")  
    If MsgBox("Bitte eine Zelle in der Spalte ""Name"" markieren!" & vbNewLine & "Ist das aktuell der Fall?", vbYesNo Or vbInformation) = vbNo Then Exit Sub  
    
    With ActiveSheet
        'ref wird immer die Zelle des ersten Eintrags von doppelten Werten zugewiesen  
        Set ref = .Cells(1, Selection.Column)
        ' Farben setzen  
        colorsHighlight = Array(vbYellow, vbGreen)
        colorCurrent = colorsHighlight(0)
        
        'Ermittle den belegten Bereich der aktuell markierten Spalte  
        With .Range(.Cells(2, Selection.Column), .Cells(.Cells(Rows.Count, "F").End(xlUp).Row, Selection.Column))  
            'Für jede Zelle in Spalte F  
            For Each cell In .Cells
                'Wenn aktuelle Zelle unterschiedlich zur Referenzzelle  
                If cell.Value <> ref.Value And cell.Offset(0, -1).Value <> ref.Offset(0, -1).Value Then
                    Set ref = cell
                    'setze Summe auf 0  
                    ref.Offset(0, -2).Value = 0
                    'Summe initial mit Wert rechts neben Name  
                    ref.Offset(0, -2).Value = cell.Offset(0, 1).Value
                    'Dictionary auf doppelte Personalnummern prüfen  
                    If dic.Exists(cell.Offset(0, -1).Value) Then
                        If dic.Item(cell.Offset(0, -1).Value) <> cell.Value Then
                            cell.Offset(0, -1).Resize(1, 2).Interior.Color = IIf(colorCurrent = colorsHighlight(0), colorsHighlight(1), colorsHighlight(0))
                            cell.Offset(0, -1).Font.Color = vbRed
                            colorCurrent = IIf(colorCurrent = colorsHighlight(0), colorsHighlight(1), colorsHighlight(0))
                        End If
                    Else
                        ' Personalnummer und Name zu Dictionary hinzufügen  
                        dic.Add cell.Offset(0, -1).Value, cell.Value
                    End If
                ElseIf cell.Value = ref.Value And cell.Offset(0, -1).Value <> ref.Offset(0, -1).Value Then
                    'setze Summe auf 0  
                    cell.Offset(0, -2).Value = 0
                    'Markiere Block mit Farbe  
                    ref.Offset(0, -1).Resize(cell.Row - ref.Row + 1, 2).Interior.Color = IIf(colorCurrent = colorsHighlight(0), colorsHighlight(1), colorsHighlight(0))
                    colorCurrent = IIf(colorCurrent = colorsHighlight(0), colorsHighlight(1), colorsHighlight(0))
                    'Summiere Werte und schreibe die Summe  
                    ref.Offset(0, -2).Value = ref.Offset(0, -2).Value + cell.Offset(0, 1).Value
                Else
                    'Doppelter Wert  
                    If IsNumeric(cell.Offset(0, -2)) Then cell.Offset(0, -2).Value = 0
                    'Summiere Werte und schreibe die Summe  
                    ref.Offset(0, -2).Value = ref.Offset(0, -2).Value + cell.Offset(0, 1).Value
                End If
                
            Next
        End With
    End With
End Sub
Gruß p.
Mitglied: 132183
132183 Mar 21, 2017 at 19:39:57 (UTC)
Goto Top
Hallo Danke für den Code.

Das ist es zwar nicht ganz da er ja nur die fehlerhaften Markieren soll aber alle berechnen. aber der code hilft mir trotzdem sehr weiter.

Weil es zusätzlicher Lernstoff ist den ich mir stück für stück geben kann, vor allem dieses Dictionary Objekt scheint sehr vielseitig einsetzbar zu sein.

Also vielen dank es kann sich nur noch um jeher Handel face-smile und dann wird mein überragender Makiercode fertig. Mit jedem code werd ich etwas schlauer.

Grüße Semmy
Mitglied: 132692
132692 Mar 21, 2017 updated at 20:36:45 (UTC)
Goto Top
Zitat von @132183:
Das ist es zwar nicht ganz da er ja nur die fehlerhaften Markieren soll aber alle berechnen. aber der code hilft mir trotzdem sehr weiter.
Naja, markiert genau so wie du das in deinem Sheet markiert hast, aber mit dem Durcheinander hier weiß ja keiner mehr was überhaupt Sache ist und sein soll!!
Lerne VBA und machs halt selbst wenn einem hier nichts passt und man sein Vorhaben nicht vernünftig beim ersten mal erläutern kann.

Bitte nicht vergessen als gelöst zu markieren.Danke.

Gruß p.
Mitglied: 132183
132183 Mar 22, 2017 at 19:05:48 (UTC)
Goto Top
Lerne VBA und machs halt selbst wenn einem hier nichts passt und man sein Vorhaben nicht
vernünftig beim ersten mal erläutern kann.


Du hast mich glaub ich falsch verstanden, das sollte keine Beschwerde oder etwas in der Richtung sein. sondern mehr ein, Danke das du dir zeit genommen hast und dich dran gesetzt hast.

Gruß Semmy