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 Columne prüfen
#1
Hallo Freunde,
   

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
Antworten Top
#2
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
Antworten Top
#3
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?

   
hab die 6 nach dem For wieder auf 4 zurückgesetzt. Jetzt klappte es!
   

Danke
Antworten Top
#4
Hallo, 19 

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


Gehe zu:


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