Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

mit VBA Zellen löschen
#21
Fehler beim Kompilieren:
Mehrfachdeklaration im aktuellen Gültigkeitsbereich
Antworten Top
#22
Hallo,

du hattest im Post #14 ein Makro ohne Sub ... und End Sub gepostet. Diese habe ich ergänzt und das mußt Du durch deine tatsächliche Version ändern. bzw. kürzen.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#23
das hab ich gemacht ^^, ich hab etwas angepasst, jetzt kommt kein Fehler.Funktionieren tut es trotzdem nicht Huh



Sub prcX()
  Dim x, rSuchErgebnis As Range
  Dim I As Long
  Dim rDaten As Range
 
  Application.ScreenUpdating = False
 
  With Worksheets("Zahlen zählen")
     
      Set rDaten = Range("TabelleRecherche")
      For I = rDaten.Rows.Count To 1 Step -1  ' Range("TabelleRecherche").Resize(Range("TabelleRecherche").Rows.Count, 1)
     
      If LCase(rDaten.Cells(I, 1).Value) = "x" Then
     
        Set rSuchErgebnis = .Range("A4:A" & .Cells(Rows.Count, "A").End(xlUp).Row).Find(what:=rDaten.Cells(I, 3).Value, LookIn:=xlValues, Lookat:=xlWhole)
        If Not rSuchErgebnis Is Nothing Then
            Do
              'namen vergleichen auch wenns ne fast direkte referenz ist
              If (rDaten.Cells(I, 3).Value & rDaten.Cells(I, 4).Value) = (rSuchErgebnis.Value & rSuchErgebnis.Offset(0, 1).Value) Then
                  rSuchErgebnis.Resize(1, 5).ClearContents 'Delete xlShiftUp 'zeile löschen
                  rDaten.Cells(I, 1).ClearContents  'x entfernen
              End If
             
              Set rSuchErgebnis = Range("A4:A" & .Cells(Rows.Count, "A").End(xlUp).Row).FindNext(rSuchErgebnis)
             
            Loop While Not rSuchErgebnis Is Nothing
        End If
      End If
     
      Next
     
  End With

End Sub
Antworten Top
#24
Hallo,

da fehlt in der Codezeile mit dem FindNext noch ein Punkt vor dem Range

Code:
Set rSuchErgebnis = .Range("A4:A" & .Cells(Rows.Count, "A").End(xlUp).Row).FindNext(rSuchErgebnis)
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#25
geht leider nicht. hier werden beide mit gleichen Nachnamen gelöscht.
Antworten Top
#26
Hallo,

Du suchst ja auch nur in einer Spalte.

Nachtrag:

Nach nochmaligen Betrachten deiner Tabellen, habe ich es bemerkt. Ändere den Code so ab

Code:
Sub prcX()
   Dim x, rSuchErgebnis As Range
   Dim I As Long
   Dim rDaten As Range
   Dim strFirstTreffer As String
  
   Application.ScreenUpdating = False
  
   With Worksheets("Zahlen zählen")
      
      Set rDaten = Range("TabelleRecherche")
      For I = rDaten.Rows.Count To 1 Step -1  ' Range("TabelleRecherche").Resize(Range("TabelleRecherche").Rows.Count, 1)
      
      If LCase(rDaten.Cells(I, 1).Value) = "x" Then
      
         Set rSuchErgebnis = .Range("A4:A" & .Cells(Rows.Count, "A").End(xlUp).Row).Find(what:=rDaten.Cells(I, 3).Value, LookIn:=xlValues, Lookat:=xlWhole)
         If Not rSuchErgebnis Is Nothing Then
            strFirstTreffer = rSuchErgebnis.Address
            Do
               'namen vergleichen auch wenns ne fast direkte referenz ist
               If (rDaten.Cells(I, 3).Value & rDaten.Cells(I, 4).Value) = (rSuchErgebnis.Value & rSuchErgebnis.Offset(0, 1).Value) Then
                  rSuchErgebnis.Resize(1, 5).ClearContents 'Delete xlShiftUp 'zeile löschen
                  rDaten.Cells(I, 1).ClearContents  'x entfernen
               End If
               Set rSuchErgebnis = .Range("A4:A" & .Cells(Rows.Count, "A").End(xlUp).Row).FindNext(rSuchErgebnis)
            Loop While strFirstTreffer <> rSuchErgebnis.Address
         End If
      End If
      
      Next
      
   End With

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Enclave
Antworten Top
#27
Objektvariable oder With-Blockvariable nicht festgelegt

Will nicht  16
Antworten Top
#28
Hallo,

für mich nicht reproduzierbar, da mir in deiner Datei in den entsprechenden Spalten auf den Tabellenblättern die Daten fehlen.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#29
Auf der Seite Recherche hast du 2x Spohn bei mir funktioniert es nicht^^


Angehängte Dateien
.xlsm   Mittagspausen_Muster.xlsm (Größe: 612,79 KB / Downloads: 1)
Antworten Top
#30
Hallo,

kann Spohn J auf der Seite Recherche zweimal vorhanden sein?
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste