Alle Beiträge von mic91668

Windows Explorer

auf Windows Server 2019

Auf einem Windows Server 2019 sind die Taskbar und jedes geöffnete Windows Explorer-Fenster im gleichen explorer.exe Prozesses. Das Killen dieses einen Prozesses führt dazu, dass sowohl alle Windows Explorer-Fenster, als auch die Taskbar gekillt werden. Dem entsprechend ist das Attribut „MainWindowTitle“ des Prozesses auch 0 oder leer.

auf Windows 10

Auf Windows 10 ist das anders: da ist die Taskbar in einem eigenen Prozess und jedes Fenster. Bei Letzteren ist das „MainWindowTitle“ mit dem Wert besetzt, der auch als Titel tatsächlich das Fenster schmückt:

Der Prozess für die Taskbar ist im „MainWindowTitle“ ebenfalls leer.

Kille Explorer-Fenster ohne Taskbar zu verlieren

Powershell:

taskkill /f /IM explorer.exe
Start explorer.exe

Windows Explorer als Admin ausführen

Auf Windows Server 2022

  • cmd als admin ausführen
  • start explorer in cmd eingeben

VBA: Leere Spalten in Excel löschen

Als leere Spalten gelten im Folgenden solche, deren Zellen entweder leer oder 0 sind. Die Spaltenüberschriften werden hierbei natürlich nicht betrachtet.

Sub LoescheLeereOderNullSpalten()
    Dim LastCol As Long
    Dim CurrentCol As Long
    Dim rng As Range
    Dim cell As Range
    Dim IsZeroOrEmpty As Boolean
    Dim ws As Worksheet
    Dim MaxRow As Long

    ' Setzen Sie das aktive Arbeitsblatt
    Set ws = ThisWorkbook.ActiveSheet

    ' Ermitteln Sie die letzte Spalte mit Daten
    LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

    ' Ermitteln Sie die maximale Zeilennummer für das gesamte Arbeitsblatt
    For CurrentCol = 1 To LastCol
        Dim tempLastRow As Long
        tempLastRow = ws.Cells(ws.Rows.Count, CurrentCol).End(xlUp).Row
        If tempLastRow > MaxRow Then MaxRow = tempLastRow
    Next CurrentCol

    ' Loop rückwärts durch die Spalten
    For CurrentCol = LastCol To 1 Step -1
        
        ' Setzen Sie den Bereich für die gesamte Spalte von der ersten bis zur maximalen Zeile
        Set rng = ws.Range(ws.Cells(2, CurrentCol), ws.Cells(MaxRow, CurrentCol))
        
        IsZeroOrEmpty = True ' Standardmäßig annehmen, dass die Spalte nur 0 oder leer ist
        
        ' Loop durch jede Zelle im Bereich
        For Each cell In rng
            If Not IsError(cell.Value) Then
                If cell.Value <> "" And cell.Value <> 0 Then
                    IsZeroOrEmpty = False
                    Exit For
                End If
            Else
                IsZeroOrEmpty = False
                Exit For
            End If
        Next cell

        ' Wenn die gesamte Spalte leer oder 0 ist, löschen Sie die Spalte
        If IsZeroOrEmpty Then
            ws.Columns(CurrentCol).Delete
        End If
    Next CurrentCol
End Sub

Um den Code auszuführen:

  1. Drücken Sie ALT + F11, um den VBA-Editor zu öffnen.
  2. Einfügen eines neuen Moduls durch Rechtsklick im Projektfenster > Einfügen > Modul.
  3. Fügen Sie den obigen Code in das Modulfenster ein.
  4. Schließen Sie den VBA-Editor.
  5. Führen Sie die Prozedur LoescheLeereSpalten aus, indem Sie ALT + F8 drücken, die Prozedur auswählen und Ausführen klicken.