Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Letzter gleicher Wert in Spalte finden

Letzter gleicher Wert in Spalte finden
09.11.2007 21:28:35
Doc
Folgendes Problem beschäftigt mich:
Ich habe eine Tabelle mit folgender Struktur
A1 Projekt
A2 Projekt
A3 Projekt
A4 Projekt
A5 Projekt
A6 Auftrag
A7 Dienstleistung
A8 Dienstleistung
A9 Dienstleistung
A10 Dienstleistung
Meine Idee ist wenn z.b.ein neues Projekt angelegt werden muss, dass ich in der Tabelle die letzte Zelle mit dem Begriff "Projekt" finde und dort anschliessend eine neue Zeile unterhalb davon dazwischen einfüge.
Der Vorgang sollte auch mit Auftrag und Dienstleistung gleich funktionieren.
Hat jemand eine schlaue Idee
Besten Dank und Gruss
Doc

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzter gleicher Wert in Spalte finden
09.11.2007 21:34:33
Ramses
Hallo
Warum fügst du nicht einfach am Ende den Eintrag ein, und sortierst dann nach Spalte A ?
Wenn das nicht möglich ist, mal ohne VBA
Anhang eines Auftrages
"Ctrl"+"F"
Dienstleistung
"Crrl"+"Shift"+"+"
Du musst als Suchbegriff den jeweils NÄCHSTEN Eintrag suchen
Ansonsten geht das nur mit VBA.
Gruss Rainer

Anzeige
AW: Letzter gleicher Wert in Spalte finden
09.11.2007 21:46:00
Doc
Danke Rainer für Deinen Hinweis
Es sind mehrere User beim Abfüllen beteiligt und darum (der Ordnung halber) möchte ich diese per VBA lösen. Der User gibt den Begriff (z.b. Projekt) ein und dann geschieht der Eintrag entsprechen automatisch.
Gruss
Doc

AW: Letzter gleicher Wert in Spalte finden
09.11.2007 21:55:00
Ramses
Hallo
Welcher Eintrag ?
Deine bisherige Anforderiung lautet nur auf das einfügen einer neuen Zeile, von einem anderen Eintrag ist bisher nicht die Rede ?!
Hier mal die Einfüge Version
Option Explicit

Sub InsertRow()
    Dim i As Long
    Dim suchStr As String
    suchStr = InputBox("Welchen Eintrag möchten Sie vornehmen ?", "Eintrag")
    If suchStr = "" Then
        MsgBox "Kein Eintrag vorgenommen", vbCritical + vbOKOnly, "Abbruch"
        Exit Sub
    End If
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If UCase(Cells(i, 1)) = UCase(suchStr) Then
            Rows(i + 1).Insert
            Exit Sub
        End If
    Next i
End Sub

Gruss Rainer

Anzeige
AW: da fehlt noch was! Sorry
09.11.2007 22:19:20
Tino
Hallo,
sorry habe die eingabe des wertes noch vergessen, so war es richtig gemeint.
https://www.herber.de/bbs/user/47574.xls
Gruss
Tino

Anzeige
AW: da fehlt noch was! Sorry
09.11.2007 23:05:23
Doc
Hallo Tino
Danke für Deine Hilfe. Habe es angeschaut und bin der Meinung das dies die Lösung sein kann.
Ich lasse die Frage noch offen. Sobald ich dies eingebaut habe werde ich Dir mitteilen ob es erfolgreich war (was ich sehr stark annehme).
Nochmals Danke
Gruss
Doc

Anzeige
AW: da fehlt noch was! Sorry
14.11.2007 22:11:45
Doc
Hallo Tino
Volltreffer, genau mit dieser Lösung konnte ich mein Problem wie gewünscht lösen.
Besten Dank.
Gruss Doc

AW: Letzter gleicher Wert in Spalte finden
09.11.2007 23:29:00
Daniel
Hi
die letzte Zeile mit dem Begriff "Projekt" findest du über den Code:

Range("A:A").Find(what:="Projekt", after:=Range("A65536"), searchdirection:=xlPrevious)


zum einfügen einer neuen Zeile könntest du dieses verwenden


Range("A:A").Find(what:="Projekt", after:=Range("A65536"), searchdirection:=xlPrevious).entirerow.insert


Gruß, Daniel

Anzeige
AW: Letzter gleicher Wert in Spalte finden
14.11.2007 22:13:00
Doc
Daniel
Danke für Dein Vorschlag, aber mit der Lösung von Tino konnte ich mein Problem genau wie gewünscht lösen.
Doc
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Letzter gleicher Wert in Spalte finden


Schritt-für-Schritt-Anleitung

Um den letzten gleichen Wert in einer Spalte zu finden und eine neue Zeile darunter einzufügen, kannst du die folgende VBA-Lösung verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul hinzuzufügen.

  3. Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub InsertRow()
       Dim i As Long
       Dim suchStr As String
       suchStr = InputBox("Welchen Eintrag möchten Sie vornehmen?", "Eintrag")
       If suchStr = "" Then
           MsgBox "Kein Eintrag vorgenommen", vbCritical + vbOKOnly, "Abbruch"
           Exit Sub
       End If
       For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
           If UCase(Cells(i, 1)) = UCase(suchStr) Then
               Rows(i + 1).Insert
               Exit Sub
           End If
       Next i
    End Sub
  4. Schließe den VBA-Editor und kehre zu deiner Excel-Tabelle zurück.

  5. Drücke ALT + F8, wähle InsertRow aus und klicke auf Ausführen.

  6. Gib den Begriff (z. B. "Projekt") ein, und die neue Zeile wird automatisch eingefügt.


Häufige Fehler und Lösungen

  • Problem: Die VBA-Makros sind deaktiviert.

    • Lösung: Stelle sicher, dass die Makros in den Excel-Optionen aktiviert sind.
  • Problem: Der Code findet den letzten Eintrag nicht.

    • Lösung: Überprüfe, ob der Suchbegriff genau mit dem in der Zelle übereinstimmt (Groß-/Kleinschreibung beachten).
  • Problem: Es wird keine neue Zeile eingefügt.

    • Lösung: Vergewissere dich, dass der Code korrekt eingefügt und ausgeführt wurde.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die VERGLEICH- und INDEX-Funktionen nutzen:

  1. Verwende die VERGLEICH-Funktion, um die Zeilennummer des letzten Vorkommens eines Wertes zu finden:

    =MAX(WENN(A:A="Projekt";ZEILE(A:A)))
  2. Um den letzten Wert in der Spalte zu finden, kannst du INDEX verwenden:

    =INDEX(A:A;MAX(WENN(A:A="Projekt";ZEILE(A:A))))

    Dies funktioniert jedoch nur, wenn du die Formel als Matrix-Formel (mit STRG + SHIFT + ENTER) eingibst.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte A:

A1: Projekt
A2: Projekt
A3: Projekt
A4: Auftrag
A5: Dienstleistung

Mit dem oben beschriebenen VBA-Code kannst du bei Eingabe von "Projekt" eine neue Zeile unter der letzten Instanz von "Projekt" einfügen.


Tipps für Profis

  • Verwende klare Bezeichnungen für deine Makros, um die Wartbarkeit zu erhöhen.
  • Kommentiere deinen Code, um die Funktionsweise für andere Benutzer nachvollziehbar zu machen.
  • Teste deine Makros in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie finde ich den letzten Wert in einer Spalte ohne VBA? Du kannst die INDEX- und VERGLEICH-Funktionen verwenden, um den letzten Wert in einer Spalte zu finden.

2. Kann ich den Code anpassen, um mehrere Begriffe zu suchen? Ja, du kannst den Code anpassen, um mehrere Begriffe zu akzeptieren. Du müsstest jedoch die Logik in der Schleife anpassen, um die verschiedenen Suchbegriffe zu berücksichtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige