Clever-Excel-Forum

Normale Version: VBA Columne prüfen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Freunde,
[attachment=40835]

ich möchte ein Macro namens Proof.

Es soll die Spalten 1 bis 29 nacheinander durchgehen, und die leeren Spalten finden, sie rot einfärben und zählen, und die Zahl im meinetwegen AO1 ausgeben..

Mein Versuch: Die Bereichsangabe ist schon mal definitiv falsch, weil je jede Columne durchgesucht werden soll.

Code:
Sub Prüfung()
Dim Zähler2 As Long
    For Column = 4 To 34
        If Not IsEmpty(Range("D4:D13")) Then
        With ActiveCell.EntireColumn.Cells(ColumnIndex:=Column)
            .Interior.ColorIndex = 6
            Zähler2.Value = 1
        End With
    Next Column
End Sub
Hallo,

bei deinem "Bildchen" trifft das aber auf keine der Spalten zu.

Code:
Public Sub aaa()
Dim loLetzte As Long, loSpalte As Long, i As Long, Zähler As Long

With Worksheets("DeinBlattname")
    loLetzte = .Cells(.Rows.Count, "C").End(xlUp).Row
    loSpalte = .Cells(3, .Columns.Count).End(xlToLeft).Column
    For i = 4 To loSpalte
        If WorksheetFunction.CountA(.Range(.Cells(4, i), .Cells(loLetzte, i))) = 0 Then
            .Range(.Cells(4, i), .Cells(loLetzte, i)).Interior.Color = vbRed
            Zähler = Zähler + 1
        End If
    Next i
    .Range("AO1") = Zähler
End With

End Sub

Gruß Werner
Danke Werner, es funktionierte wunderbar, nun hab ich, um Platz zu gewinnen, das aktive Feld 2 Zeilen nach unten verschoben, und schon geht es nicht mehr... ich habe die 4 durch 6-en ersetzt! Das war vllt zu forsch?

[attachment=40837]
hab die 6 nach dem For wieder auf 4 zurückgesetzt. Jetzt klappte es!
[attachment=40838]

Danke
Hallo, 19 

nicht die 4 durch 6 ersetzen, sondern...
Code:
loSpalte = .Cells(3, .Columns.Count).End(xlToLeft).Column
... die 3 durch 5. 21