Office: Wenn - Eintrag vorhanden - darüber Querstich einfügen

Helfe beim Thema Wenn - Eintrag vorhanden - darüber Querstich einfügen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excel Freaks! Ich habe folgendes Problem. Ich muss gerade eine Excel Tabelle bearbeiten, die die gesamten Mitarbeiter des Konzernsbeinhaltet... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von strikerman, 26. März 2012.

  1. strikerman Erfahrener User

    Wenn - Eintrag vorhanden - darüber Querstich einfügen


    Hallo Excel Freaks!

    Ich habe folgendes Problem. Ich muss gerade eine Excel Tabelle bearbeiten, die die gesamten Mitarbeiter des Konzernsbeinhaltet --> mehrere tausend Einträge

    Ich soll jetzt jene Abteilungen herausfinden, die nur aus einem Mitarbeiter bestehen.

    Dazu hätte ich mir folgendes überlegt: Da jede Abteilung in der Liste immer mit dem Abteilungsleiter beginnt, soll Excel immer dann wenn in der Zelle von Spalte C ein Eintrag vorhanden ist, in der Zeile darüber einene Querstrich machen...

    Der derzeite Stand ist im beiligenden Excel File im Sheet 1 so wie es derzeit ist und im Sheet 2, so wie es sein sollte...

    Hoffe, dass es dafür im VBA irgendeine Lösung gibt.

    Damit könnte man das Problem schonmal gut veranschaulichen.
    In einem zweiten Schritt, wäre es noch cool jene Abteilungen rauszufiltern, die nur aus einem Mitarbeiter bestehen. Im Beispiel die Abteilung E. Allerdings gibts auch Abteilungen die keinen Leiter haben, also nur einen Eintrag in Spalte D, aber keinen Eintrag in Spalte C.

    Danke vielmals im Voraus.

    LG strikerman
     
    Zuletzt bearbeitet: 26. März 2012
    strikerman, 26. März 2012
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    Code:
    Sub Querstrich()
       Dim rngZelle As Range
       For Each rngZelle In Range("C3:C" & IIf(IsEmpty(Cells(Rows.Count, 1)), _
          Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)).SpecialCells(xlCellTypeConstants)
          With Range(Cells(rngZelle.Row - 1, 1), Cells(rngZelle.Row - 1, 4)).Borders(xlEdgeBottom)
              .LineStyle = xlContinuous
              .ColorIndex = 0
              .TintAndShade = 0
              .Weight = xlMedium
          End With
          If Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row + 1, 4) And Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row - 1, 4) _
             Then Range(Cells(rngZelle.Row, 1), Cells(rngZelle.Row, 4)).Interior.ColorIndex = 6
       Next rngZelle
    End Sub
    
    Die Abteilungen mit nur 1 Eintrag in Spalte C werden mit Hintergrundfarbe Gelb markiert

    Bis später,
    Karin
     
    Beverly, 26. März 2012
    #2
  3. strikerman Erfahrener User
    Hallo Karin,

    habe deine Formel bereits eingefügt und gespeichert, allerdings tut sich nichts. Muss ich noch irgendwas anderes drücken, damit das Makroa ausgeführt wird?

    LG strikerman
     
    strikerman, 26. März 2012
    #3
  4. Beverly
    Beverly Erfahrener User

    Wenn - Eintrag vorhanden - darüber Querstich einfügen

    Hi,

    du musst den Code in ein allgemeines Modul einfügen und dann über Extras -> Makros starten.

    Bis später,
    Karin
     
    Beverly, 26. März 2012
    #4
  5. strikerman Erfahrener User
    Hi,

    Leider funktioniert es nicht. Es kommt die Fehlermeldung: Objekt unterstützt diese Eigenschaft oder Methode nicht

    LG
     
    strikerman, 26. März 2012
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi,

    es ist immer günstig, genau zu beschreiben, wo ein Fehler im Code auftritt, dann ist wesentlich es einfacher, eine Lösung bzw. die Ursache zu finden - bei mir tritt dieser Fehler nämlich nicht auf, aber ich verwende. Excel2010.

    Lösche die Zeile .TintAndShade = 0 - diese Funktion gibt es erst ab Excel2007.

    Bis später,
    Karin
     
    Beverly, 26. März 2012
    #6
  7. strikerman Erfahrener User
    Hi Karin,

    Danke für den Hinweis. Funktioniert nun perfekt!!

    Ich hätte noch eine Frage/Bitte. Könntest du die Formel so adaptieren, dass immer beim ersten neuen Eintrag (neue Abteilung) in Spalte D eine Linie eingefügt wird (entweder for dem erste neuen Eintrag oder nach dem letzten)? Bin nämlich nun gerade draufgekommen, dass doch nicht alle Abteilungsleiter am Beginn ihrer Abteilung aufgelistet sind...

    Vielen Dank!

    LG Michael
     
    strikerman, 27. März 2012
    #7
  8. Beverly
    Beverly Erfahrener User

    Wenn - Eintrag vorhanden - darüber Querstich einfügen

    Hi Michael,

    das ist keine Formel sondern VBA-Code :)

    Code:
    Sub Querstrich()
       Dim rngZelle As Range
       For Each rngZelle In Range("D3:D" & IIf(IsEmpty(Cells(Rows.Count, 1)), _
          Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)).SpecialCells(xlCellTypeConstants)
          If Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row + 1, 4) Then
             With Range(Cells(rngZelle.Row, 1), Cells(rngZelle.Row, 4)).Borders(xlEdgeBottom)
                 .LineStyle = xlContinuous
                 .ColorIndex = 0
                 .Weight = xlMedium
             End With
             If Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row + 1, 4) And Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row - 1, 4) _
                Then Range(Cells(rngZelle.Row, 1), Cells(rngZelle.Row, 4)).Interior.ColorIndex = 6
          End If
       Next rngZelle
    End Sub
    
    Bis später,
    Karin
     
    Beverly, 27. März 2012
    #8
  9. strikerman Erfahrener User
    Hi Karin,

    Danke für deinen Vorschlag. In meinem vereinfachten hochgeladenen Beispiel funktioniert es perfekt. Allerdings hab ich in meinem eigentlich Beispiel an dem ich arbeite um einiges mehr Spalten stehen, als in dem hochgeladenen Beispielen.

    Hier das gesamte File. Vielleicht könntest du das Makro auf dieses nun anpassen. Leider kann ich das File nicht hochladen, da es selbst ohne die ganzen Daten zu groß ist. Von der Struktur schaut es genau gleich aus, allerdings befindet sich das Board Level des Abteilungsleiters in Spalte N, der Sheet hat läuft von Spalte A bis Spalte CD und bis inklusive Zeile 2965.

    Leider kann ich nicht garantieren, ob neue Spalten und/oder Zeilen hinzugefügt werden. Könntest du mir deshalb kurz erklären, wie man dann diese Paramter im VBA bei einer Erweiterung anpassen müsste?

    Vielen, vielen Dank für die Hilfe!

    LG Michael
     
    strikerman, 27. März 2012
    #9
  10. Beverly
    Beverly Erfahrener User
    Hi Michael,

    der Ausdruck

    Code:
    Cells(rngZelle.Row, 4)
    bezieht sich auf eine Zelladresse, wobei rngZelle.Row die fortlaufende Zeilnnummer ist und die "4" die Spaltennummer - das musst du entsprechend an deine geänderten Spalten-Bedingungen anpassen. Schau auch einfach mal in die VBA-Hilfe zum Stichwort Range.Cells-Eigenschaft

    Ich habe den Code noch mal mit einigen Kommentaren versehen, so kannst du besser nachvollziehen was vor sich geht und es wird dir leichter fallen, ihn an deine Bedingungen anzupassen.

    Code:
    Sub Querstrich()
       Dim rngZelle As Range
       ' Schleife über jede Zelle in Spalte D (ab Zeile 3 bis zur letzten belegten Zeile) welche einen Eintrag enthält.
       ' Da jede Zelle bis zur letzten Zeile gefüllt ist wird somit jede Zelle durchlaufen
       For Each rngZelle In Range("D3:D" & IIf(IsEmpty(Cells(Rows.Count, 1)), _
          Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)).SpecialCells(xlCellTypeConstants)
          ' der Inhalt der laufenden Zeile in Spalte D ist verschieden vom Inhalt der nächstfolgenden Zeile,
          ' folglich beginnt eine neue Abteilung und es soll ausgeführ werden was in der If-Anweisung steht
          If Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row + 1, 4) Then
             ' Zellbereich von Spalte A bis D der laufenden Zeile wird mit einem Rahmen unten versehen
             With Range(Cells(rngZelle.Row, 1), Cells(rngZelle.Row, 4)).Borders(xlEdgeBottom)
                 .LineStyle = xlContinuous
                 .ColorIndex = 0
                 .Weight = xlMedium
             End With
             ' der Inhalt der laufenden Zeile in Spalte D ist verschieden vom Inhalt der nächstfolgenden Zeile und
             ' vom Inhalt der vorangehenden Zeile, folglich hat die Abteilung nur 1 Eintrag und der Bereich von Spalte A
             ' bis Spalte D wird mit Hintergrundfarbe Gelb formatiert
             If Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row + 1, 4) And Cells(rngZelle.Row, 4) <> Cells(rngZelle.Row - 1, 4) _
                Then Range(Cells(rngZelle.Row, 1), Cells(rngZelle.Row, 4)).Interior.ColorIndex = 6
          End If
       Next rngZelle
    End Sub
    
    Bis später,
    Karin
     
    Beverly, 28. März 2012
    #10
  11. strikerman Erfahrener User
    Hallo Karin!

    Danke ich hab es bereits auf meine Bedürfnisse angepasst und es funktioniert perfekt. Hast mir sehr geholfen. Danke!

    LG Michael
     
    strikerman, 29. März 2012
    #11
Thema:

Wenn - Eintrag vorhanden - darüber Querstich einfügen

Die Seite wird geladen...
  1. Wenn - Eintrag vorhanden - darüber Querstich einfügen - Similar Threads - Eintrag vorhanden Querstich

  2. Falscher / übrig gebliebener Add-in Oulook Eintrag

    in Microsoft Outlook Hilfe
    Falscher / übrig gebliebener Add-in Oulook Eintrag: Hallo, kann man aus Outlook 2010 angeblich vorhandene Add-ins überhaupt noch entfernen, wenn geleugnet wird, dass man ohnedies Systemverwalter ist? Auf einem Rechner konnte ich durch...
  3. Zähle Einträge die in einen Uhrzeitbereich liegen

    in Microsoft Excel Hilfe
    Zähle Einträge die in einen Uhrzeitbereich liegen: Hallo zusammen, ich bin in excel absoluter beginner. ich habe mir für die steuerberechnung eine kleine tabelle angefertigt die diverse inhalte berechnet und ich diese zur abgabe an das finanzamt...
  4. Letzten Eintrag aus verschiedenen Zellen in A1

    in Microsoft Excel Hilfe
    Letzten Eintrag aus verschiedenen Zellen in A1: Hallo an alle, Brauche bitte Hilfe. Ich möchte, dass in Zelle A2 immer der letzte Eintrag aus Zelle B2 bis K2 steht. Das heißt, wenn ich in E2 zum Beispiel "456" schreibe, dann soll es in A2...
  5. Bedingte Formatierung, Leere Zelle ab best. Zeit einfärben und bei Eintrag Farbe weg.

    in Microsoft Excel Hilfe
    Bedingte Formatierung, Leere Zelle ab best. Zeit einfärben und bei Eintrag Farbe weg.: Guten Tag, ich habe, eigentlich, ein simples Problem und bekomme einfach nicht die Funktion korrekt geschrieben. Ich würde gerne eine Bedingte Formatierung durchführen für eine Zelle, die Bezug...
  6. VBA - Wenn Eintrag in Spalte vorhanden dann aktualisieren, sonst neue Zeile

    in Microsoft Excel Hilfe
    VBA - Wenn Eintrag in Spalte vorhanden dann aktualisieren, sonst neue Zeile: Hallo an Alle, ich habe ein Problem und finde keine Lösung in den Foren. Ich hoffe, dass mir jemand hier helfen kann. Ich habe in einer Datei zwei Blätter - eins "TC_Template" ist optisch wie...
  7. Listbox überprüfen ob Eintrag schon vorhanden ist

    in Microsoft Access Hilfe
    Listbox überprüfen ob Eintrag schon vorhanden ist: hallo ich brauche eine globale funktion mit der ich überprüfen kann ob in der angegebenen listbox der wert der listbox enthalten ist. doch leider gibt er mir immer einen fehler im kompilieren aus...
  8. Anbieten Text aus bereits vorhandenen Einträgen

    in Microsoft Excel Hilfe
    Anbieten Text aus bereits vorhandenen Einträgen: Hallo! Ich nutze MS Excel 2003 mit Windows XP. Seit einiger Zeit habe ich folgendes Problem: Ich habe früher immer genossen, dass ich in Tabellen, die teilweise sehr umfangreich sind und...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden