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
#11
Hallöchen,

der Fehler kommt wegen des Blattschutzes. Wenn Du Zeilen löschen willst, musst Du ihn vorher noch aufheben und am Ende wieder setzen..
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
@schauan,

das ist ein extrem guter Hinweis, dass ich da noch dran denken muss - allerdings ist hier kein Blattschutz aktiviert.

@schauan

Auch hier kommt der Delete-Methode des Rangeobjekts ... -Fehler :(
Antworten Top
#13
Hallöchen,

die gepostete Fehlermeldung ist aber ok?
Zitat:Die Delete-Methode des Rangeobjekts konnte nicht ausgeführt werden

Die deutet m.E. darauf hin, dass das Rangeobjekt zwar vorhanden ist, aber nicht darauf zugegriffen werden kann.  
Wenn nichts gefunden wird, kommt 'ne andere Meldung.

Klappt es denn mit Uwe's Code? Ich nehme an, mit dem zweiten @ meinst Du Uwe und nicht mich und es klappt nicht?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#14
Hallöchen,

ich nochmal. Es könnte auch sein, Du hast da eine Tabelle definiert und in der Zeile ist die Überschrift. Dann kommt auch so eine Meldung.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • EasY
Antworten Top
#15
Hi schauan,

hopla, genau ich meinte Uwe. Wenn ich mit F8 den Code nacheinander durchgehe, hängt es auch bei seinem Code einzig an dem Löschen des Urlaubswunsches und er spuckt mir den Delete-Methode ... - Fehler aus.


Ich bin wirklich am verzweifeln. Bislang habe ich alles, was ich geplant habe, irgendwie nach einer Zeit hinbekommen - an dem Problem hänge ich aber nun schon so lange :( ....
Ich habe jetzt eine Testdatei angehängt, in der alle sensiblen Daten gelöscht sein dürften. Auch schön ist es (noch) nicht. Vielleicht hilft es, einen Blick in die Datei zu werfen?


Angehängte Dateien
.xlsm   20180826_Urlaubskalender_fuer_Forum.xlsm (Größe: 115,68 KB / Downloads: 3)
Antworten Top
#16
Zitat:Geschrieben von schauan - 26.08.2018, 10:55 Hallöchen,

ich nochmal. Es könnte auch sein, Du hast da eine Tabelle definiert und in der Zeile ist die Überschrift. Dann kommt auch so eine Meldung.

Deswegen habe ich den Befehl des Löschens auch erst ab A2 bis last gesetzt. Oder reicht das so nicht? :/

P.S.: Bitte verteufelt mich nicht bzw lacht mich nicht aus - das ist mein erstes VBA-Projekt und die Codes sind sicher alles andere als aufgeräumt und strukturiert ... ABER: Sie funktionieren, bis auf die eine Ausnahme.
Antworten Top
#17
Die Variable Finden und Finden2 ="" desswegen der Fehler

das musst du abfangen mit " if finden is nothing or finden2 is nothing then exit sub"

des weiteren kannst du Zeilen, die nicht zusammenhängen, nicht auf einmal löschen! Das muss mit einer Schleife passieren!

wie in meinem Beitrag #8


Code:
Sub Wunschloeschen3()

Dim finden As Range
Dim finden2 As Range
Dim Frage As Integer
Dim last As Long
Dim i As Integer
last = ThisWorkbook.Sheets("Urlaubswuensche").Cells(Rows.Count, 1).End(xlUp).Row
Set finden = ThisWorkbook.Sheets("Mitarbeiter").Range("A2:A50").Find(what:="Hans", lookat:=xlWhole)
Set finden2 = ThisWorkbook.Sheets("Urlaubswuensche").Range("A1:A" & last).Find(what:="Hans", lookat:=xlWhole)
Frage = MsgBox("Der folgende Mitarbeiter und alle seine Urlaubsw?nsche werden unwiderruflich gel?scht: " + Chr(13) + Chr(13), vbOKCancel + vbExclamation, "Mitarbeiter l?schen?")

If finden Is Nothing And finden2 Is Nothing Then Exit Sub

Select Case Frage
   Case vbOK And finden2 Is Nothing
       
       ThisWorkbook.Sheets("Mitarbeiter").Rows(finden.Row).Delete shift:=xlUp
       Unload UserForm_Mitarbeiter_entfernen
   Case vbOK
       'ThisWorkbook.Sheets("Mitarbeiter").Rows(finden.Row).Delete shift:=xlUp
       ThisWorkbook.Sheets("Urlaubswuensche").Range("A1").AutoFilter field:=1, Criteria1:="Hans"
       
       For i = last To 2 Step -1
       If ThisWorkbook.Sheets("Urlaubswuensche").Rows(i).Hidden = False Then
       ThisWorkbook.Sheets("Urlaubswuensche").Rows(i).Delete
       End If
       Next
       
       ThisWorkbook.Sheets("Urlaubswuensche").Range("A1").AutoFilter
       Unload UserForm_Mitarbeiter_entfernen
End Select

End Sub

so klappts!
Eine Menge reden, aber nichts sagen können viele...
[-] Folgende(r) 1 Nutzer sagt Danke an Frogger1986 für diesen Beitrag:
  • EasY
Antworten Top
#18
@schauan

In meiner Variante mit der select case-variante (dürfte auch noch in dem Code der Datei vorhanden aber ausgeklammert sein) habe ich die Abfrage mit "finden2 is nothing" drin. Die Verzweigung läuft er auch richtig ab.
P.S.: Ich sehe gerade, du hast in den Modulen geschaut. Ich habe das Testmodul zum Testen angelegt, der richtige Code wird später dann in die Userform_Mitarbeiter_Loeschen eingebettet. Da steht der Code dann auch drin :)

Ah nein das gibt es ja nicht ... also nicht zusammenhängende kann man nicht löschen? SO einfach ist die Lösung? Danke :)

Ich werde dann mal deine Variante versuchen.
Antworten Top
#19
Hallo EasY,

ersetze die Zeile
          .Range("A2:A" & last).SpecialCells(xlVisible).EntireRow.Delete shift:=xlUp
durch
          .Range("A2:A" & last).EntireRow.Delete shift:=xlUp
Gruß Uwe
[-] Folgende(r) 2 Nutzer sagen Danke an Kuwer für diesen Beitrag:
  • EasY, Frogger1986
Antworten Top
#20
KUWER,

es funktioniert? WOW ... und ich dachte immer, dass genau dafür die Specialcells sind :). Ich teste dann weiter - für mich ist das erst einmal erledigt und ich bedanke mich bei euch allen mit einem riesen Der-Sonntag-ist-gerettet-Lächeln im Gesicht
Antworten Top


Gehe zu:


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