mir ist gerade beim Löschen einer Zeile etwas passiert, das ich mir nicht erklären kann. Vielleicht kann mir hier jemand weiterhelfen ?!
Es geht darum, eine Zeile und ein Tabellenblatt nach Userinteraktion mittels VBA zu löschen.
Es geht auch darum, den Löschvorgang (Blattwechsel) nicht anzuzeigen, d.h. das Screenupdate auszuschalten. Dies funktioniert allerdings nicht, da das Blatt beim Löschen anscheinend aktiv sein muss. Beim "Activate-Befehl" wechselt dann die Blattansicht trotz ausgeschaltetem Screenupdate. Das, was ich allerdings überhaupt nicht verstehe, ist, dass beim Löschen (Delete-Befehl) des Blattes in eine andere von mir geschriebene Funktion "vorkommenZaehlen" gesprungen wird, die an völlig anderer Stelle für die Darstellung eines Diagramms verwendet wird und absolut garnichts mit dem Löschen des Blattes oder der Zeile zu tun hat. Wer kann mir das erklären ? Der Löschvorgang klappt übrigens trotzdem.
Die angesprochenen Codeabschnitte sind fett hervorgehoben:
Dim wertebereich, zelle As Range
Dim projektnr, stil, antwort, ZF_n, ZF_m, lastProject As String
Dim blatt As Worksheet
Dim n, i, projektnummer, projektnr_del, projektanzahl, zeilen_projektuebersicht_i, _
zeilen_projektuebersicht_e, zeilen_archiv As Integer
Dim test1, test2, test3 As Boolean
projektnr = InputBox("Welche Projektnummer soll gelöscht werden?" & vbCrLf & _
vbCrLf & "Bitte geben Sie die Nummer 3-stellig ein!" & vbCrLf & _
"Beispiele: 005, 043, 112", "Projekt löschen")
If projektnr = "" Then Exit Sub
projektnr_del = CInt(projektnr)
If projektnr Like "###" Then 'Eingegebene Projektnummer muss eine 3stellige Zahl sein z.B. _
005, 084, 721
'projektanzahl = Projekte_zaehlen
lastProject = Sheets("PXXX").Range("AA3").Value
zeilen_projektuebersicht_i = Zeilen_zaehlen("Projektübersicht intern")
zeilen_projektuebersicht_e = Zeilen_zaehlen("Projektübersicht extern")
zeilen_archiv = Zeilen_zaehlen("Archiv")
Set wertebereich = Worksheets("Archiv").Range("B6:B" & zeilen_archiv + 5)
If projektnr_del Application.ScreenUpdating = False 'Bildschirmupdate deaktivieren
Worksheets("Archiv").Activate
'Löschen des Projektes im Archiv
For Each zelle In wertebereich
If zelle.Value = projektnr Then
Rows(zelle.Row).Delete
zeilen_archiv = zeilen_archiv - 1
End If
Next
'Löschen des Projektblatts (P###)
Application.DisplayAlerts = False
Worksheets("P" & projektnr).Delete
Application.DisplayAlerts = True
'Hyperlinks in Projektübersicht und Archiv aktualisieren
'Hyperlinks_aktualisieren "Archiv", projektnr_del, zeilen_archiv
'Hyperlinks_aktualisieren "Projektübersicht intern", projektnr_del, _
zeilen_projektuebersicht_i
'Hyperlinks_aktualisieren "Projektübersicht extern", projektnr_del, _
zeilen_projektuebersicht_e
'Hyperlink und Projektnummer in Projekten mit höherer Projektnummer aktualisieren
' For i = projektnr_del To projektanzahl - 1
' projektnummer = Format(i, "00#")
' Worksheets("P" & projektnummer).Activate
' Range("E34").Select
' ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"\\DA-AIRBUS\.TRZL_PROJEKTE.TRZL_PROJEKTE.PROJEKTE.HAM\" & _
"Projektlandkarte_TRZL\Projektdokumentation\Projekt-" & _
projektnummer _
, TextToDisplay:="hier gehts zur -> Projektdokumentation"
' Worksheets("P" & projektnummer).Range("AA3").Value = projektnummer
' Next
'Laufende Nummer im Archiv updaten
LfdNummer_update Worksheets("Archiv").Range("A6:A" & zeilen_archiv + 5)
'Dokumentationsordner löschen, wenn leer, sonst muss das Löschen manuell nachgeholt _
werden.
Shell Environ$("COMSPEC") & " /c rmdir " & _
"\\DA-AIRBUS\.TRZL_PROJEKTE.TRZL_PROJEKTE.PROJEKTE.HAM\" & _
"Projektlandkarte_TRZL\Projektdokumentation\Projekt-" & _
projektnr
Application.ScreenUpdating = True
Potenzialuebersicht_update 'Potenzial Übersicht wird aktualisiert
GoTo_Menue
MsgBox "Das Projekt wurde erfolgreich gelöscht!"
Else
MsgBox "Das Projekt wurde nicht gelöscht!"
End If
Else
MsgBox "Ungültige Projektnummer!"
End If
Wer kann mir das erklären ?
Bin für jeden Tipp dankbar.
Gruß,
Ruben