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.

(VBA) If-Abfragen-Problem
#21
@frogger,

finden ist nicht "" sondern Nothing. Das umgeht Uwe in seinem Code auch schon in beiden Fällen.

@Easy,

ich bin noch am fummeln Smile Wenn Du Listen hast, wäre es im Prinzip angebracht, auch im Code damit zu arbeiten. Das hat dann auch den Vorteil, dass Du Dich z.B. nicht mehr nach der letzten Zeile umschauen musst ...

Du hast ja ein kleines Makro, wo Du prüfst, ob was gefunden wird. Das könnte dann so aussehen:

Code:
Sub Identischen_Namen_finden()
Dim finden As Range
Set finden = ThisWorkbook.Sheets("Mitarbeiter").ListObjects("Tab_Mitarbeiter1"). _
             ListColumns("Name").DataBodyRange.Find(what:="Wurst", lookat:=xlWhole)
If Not finden Is Nothing Then
    MsgBox "Gefunden"
End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#22
Prima.. und was dazugelernt! Danke Kuwer!
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#23
Ihr glaubt gar nicht, wie euphorisch ich gerade bin, dass es gelöst zu sein scheint .... ein Feldversuch mit allen Varianten steht noch aus aber das sind so super Lösungen hier.

@schauan
Das ist mir nun recht peinlich, aber ich wusste nicht, dass ich die Namen der intelligenten Listen auch in VBA ansprechen kann ... das macht vieles erheblich einfacher, da gebe ich dir vollkommen recht!!!!

Dann arbeitet man mit Listobjects ok ... noch mehr gelernt :). Wie gesagt, mein erstes VBA-Projekt, da geht sicher einiges besser ^^
Antworten Top
#24
Hallo Easy,

ich habe hier mal noch Uwe's Code auf die Listobjects angepasst, einige ursprünglichen codes auskommentiert und ein paar Kommentare dazu geschrieben.  

Code:
Sub Wunschloeschen_Andre()
 Dim finden As Range
 Dim finden2 As Range
 Dim Frage As Integer
 'Dim last As Long
 'Objekte
 Dim objLMit As ListObject, objLUrl As ListObject
 'last = ThisWorkbook.Sheets("Urlaubswuensche").Cells(Rows.Count, 1).End(xlUp).Row
 'Tabellenobjekte zuweisen
 Set objLMit = ThisWorkbook.Sheets("Mitarbeiter").ListObjects("Tab_Mitarbeiter1")
 Set objLUrl = ThisWorkbook.Sheets("Urlaubswuensche").ListObjects("Tabelle2")
 'Namen finden
 Set finden = objLMit.ListColumns("Name").DataBodyRange.Find(what:="Wurst", lookat:=xlWhole)
 Set finden2 = objLUrl.ListColumns("Name").DataBodyRange.Find(what:="Wurst", lookat:=xlWhole)
 'Sicherheitsfrage
 Frage = MsgBox("Der folgende Mitarbeiter und alle seine Urlaubsw?nsche werden unwiderruflich gel?scht: " _
         + Chr(13) + Chr(13), vbOKCancel + vbExclamation, "Mitarbeiter l?schen?")
 If Frage = vbOK Then
   If Not finden Is Nothing Then
     'finden.EntireRow.Delete shift:=xlUp
     'Zeile in Mitarbeiter loeschen, Zeilennummer um 1 korrigiert wegen
     'Mitzaehlung der Ueberschrift bei Find
     objLMit.DataBodyRange.Rows(finden.Row - 1).Delete
     If Not finden2 Is Nothing Then 'And last > 1 Then
       'With finden2.Parent
       With objLUrl
         .Range.AutoFilter field:=1, Criteria1:="Wurst"
         'hier (wieder) die sichtbaren Zellen loeschen
         .DataBodyRange.SpecialCells(xlCellTypeVisible).Delete 'shift:=xlUp
         .Range.AutoFilter
       End With
       'Unload Me
     End If
   End If
 End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#25
:100:  Wow!!! Danke
Antworten Top


Gehe zu:


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