Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eine Spalte durchsuchen dann eine weitere

Eine Spalte durchsuchen dann eine weitere
Lutz
Hallo zusammen,
ich habe ein Problem und habe keine Ahnung wie ich das lösen soll. Daher wende ich mich nach unendlicher Suche an euch.
Also ich möchte eine Spalte nach meheren Begriffen durchsuchen lassen die alle mit P beginnen. Wenn alle diese Begriffe gefunden worden sind, soll ab einer anderen Spalte (also so in die Richtung...ab der Spalte wo das Jahr größer/gleich aktuelles Jahr ist ) jede zeile darauf untersucht werden ob diese gefüllt ist oder nicht. Ist die entsprechende Zeile nicht gefüllt dann soll sie gelöscht werden.
https://www.herber.de/bbs/user/81453.xlsx
Ich weiß nicht ob ich mich verständlich ausgedrückt habe?!
Ich bin für jeden Hinweis dankbar!
Einen schönen Abend noch!
Beste Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Eine Spalte durchsuchen dann eine weitere
16.08.2012 18:30:24
Josef

Hallo Lutz,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub loeschen()
  Dim rng As Range, rngDel As Range
  Dim vntCol As Variant
  Dim strFirst As String
  
  With Tabelle1
    vntCol = Application.Match(Year(Date), .Rows(1), 0)
    If IsNumeric(vntCol) Then
      Set rng = .Columns(3).Find(What:="P*", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, After:=.Cells(1, 3))
      If Not rng Is Nothing Then
        strFirst = rng.Address
        Do
          If Application.CountA(.Range(.Cells(rng.Row, vntCol), .Cells(rng.Row, .Columns.Count))) = 0 Then
            If rngDel Is Nothing Then
              Set rngDel = rng.EntireRow
            Else
              Set rngDel = Union(rngDel, rng.EntireRow)
            End If
          End If
          Set rng = .Columns(3).FindNext(rng)
        Loop While Not rng Is Nothing And strFirst <> rng.Address
      End If
    End If
  End With
  
  If Not rngDel Is Nothing Then rngDel.Delete
  
  Set rng = Nothing
  Set rngDel = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Eine Spalte durchsuchen dann eine weitere
17.08.2012 14:27:54
Lutz
Super danke Sepp!!
Könnte man den Code auch so modifizieren, dass er:
1. Wenn er das aktuelle Jahr und alle nachfolgenden Jahre gefunden hat, die Zellen links und rechts von dem Datum mit diesem verbindet (nicht in der Beispieldatei dargestellt)?
2.Ab dem akuellem Jahr nur in X Spalten nach leeren Zellen sucht?
Ich versteh nicht wie ihr das immer so schnell und einfach hin bekommt. Einfach super!
LG Lutz
AW: Eine Spalte durchsuchen dann eine weitere
17.08.2012 15:14:06
Josef

Hallo Lutz,
zu 2:

If Application.CountA(.Range(.Cells(rng.Row, vntCol), .Cells(rng.Row, vntCol + 5))) = 0 Then
wobei + 5 die Anzahl der Spalten ab dem aktuellen Jahr angibt.
Zu 1: Ich mag verbundene Zellen nicht und ich verstehe auch nicht, was mit wem verbunden werden soll.

« Gruß Sepp »

Anzeige
AW: Eine Spalte durchsuchen dann eine weitere
17.08.2012 16:16:52
Lutz
Hallo Sepp,
danke für 2.
Zu 1.: Möchte die jeweiligen drei Zellen (leer/Jahreszahl/leer) mit einander verbinden, damit der Code auch die Zelle rechts und links von dem Jahresdatum betrachtet und nicht nur die Spalte in dem das Jahr steht. Ich weiß nicht ob ich mich verständlich ausdrücke; daher versuche ich es mal anders:
- in einer spalte steht eine jahreszahl und in den darunter liegenden Zellen sind entweder werte drinne oder nicht (was der code ja auch wunderbar ausliest)
- links und rechts der Jahreszahl sind jeweils eine leere zelle. unter diesen zellen sind auch noch werte oder eben nicht eingetragen,welche noch mit zu der Jahreszahl gehören
Und jetzt hab ich mir gedacht, wenn ich über einen Code sage: verbinde die "Jahreszahlzelle" mit der Zelle links und rechts davon und dann dein Code drüber laufen lassen, dann müsste es eigentlich gehen.
Das ist der Hintergrund warum ich die Zellen verbinden möchte(manuell kann ich das nicht machen da sich die Tabelle jeden monat neu lädt). vielleicht denke ich auch einfach zu kompilziert und es gibt ne viel einfacherere Lösung.
LG Lutz
Anzeige
AW: Eine Spalte durchsuchen dann eine weitere
17.08.2012 16:21:57
Josef

Hallo Lutz,
wenn immer eine Leerzelle zwischen den Jahreszahlen steht, dann braucht man die Zellen deshalb nicht verbinden, außerdem wäre das dem Code egal, stattdessen starten wir halt im weiteren Code eine Spalte vor dem Datum
If Application.CountA(.Range(.Cells(rng.Row, vntCol - 1), .Cells(rng.Row, vntCol + 5))) = 0 Then


« Gruß Sepp »

Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige