Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Leere Zelle in Bereichen suchen. | Herbers Excel-Forum


Betrifft: Leere Zelle in Bereichen suchen. von: Hans
Geschrieben am: 11.12.2009 19:44:07

Hallo Leute,

ich habe ein Problem und bekomme es in VBA nicht gelöst.

Es stellt sich folgende Problemstellung :

Ich habe drei Bereich .. jeweils über nur eine Spalte.

Bereich 1 heisst "Wert1" und ist in Spalte A
Bereich 2 heisst "Wert2" und ist in Spalte B
Bereich 3 heisst "Wert3" und ist in Spalte C

sie sind jeweils unterschiedlich groß.

Nun will ich im Bereich "Wert1" die erste leere Zelle finden.
Wenn sie vorhanden ist soll dort was reingeschrieben werden.
Ist keine im Bereich Wert1 frei soll in Wert2 u.s.w. gesucht werden.

Kann mir da jemand bei helfen?

lg

Hans

  

Betrifft: AW: Leere Zelle in Bereichen suchen. von: Tino
Geschrieben am: 11.12.2009 20:05:19

Hallo,
kannst ja mal testen.

Function FindLeer(ByVal rngBereich As Range) As Range
    Set FindLeer = rngBereich.Find(What:="", After:=rngBereich(rngBereich.Rows.Count, rngBereich.Columns.Count), _
    LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
End Function

Sub TestFindLeerZelle()
Dim NextLeere As Range

Set NextLeere = FindLeer(Range("Wert1"))

If NextLeere Is Nothing Then _
Set NextLeere = FindLeer(Range("Wert2"))

If NextLeere Is Nothing Then _
Set NextLeere = FindLeer(Range("Wert3"))

If Not NextLeere Is Nothing Then
 MsgBox "nächste leere gefunden in " & NextLeere.Address
Else
 MsgBox "keine leere Zelle gefunden", vbCritical
End If

End Sub
Gruß Tino


  

Betrifft: AW: Leere Zelle in Bereichen suchen. von: Daniel
Geschrieben am: 11.12.2009 20:11:02

Hi

probier mal das hier:

Sub test()
Dim rng As Range
Dim i As Long
Dim ErsteLeereZelle As Range

For i = 1 To 3
    On Error Resume Next
    Set rng = Range("Wert" & i).SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then
        Set ErsteLeereZelle = rng(1)
        Exit For
    End If
Next

If i <= 3 Then
    ErsteLeereZelle.Value = "Dein Text"
Else
    MsgBox "keine leeren Zellen gefunden"
End If
End Sub

gruß, Daniel


  

Betrifft: etwas kürzer von: Daniel
Geschrieben am: 11.12.2009 20:13:58


Sub test()
Dim ErsteLeereZelle As Range
Set ErsteLeereZelle = Union(Range("wert1"), Range("wert2"), Range("Wert3")).SpecialCells( _
xlCellTypeBlanks)(1)
If ErsteLeereZelle Is Nothing Then
    MsgBox "keine Leerzellen gefunden"
Else
    ErsteLeereZelle.Value = "Dein Text"
End If
End Sub

funktioniert aber nur dann zuverlässig, wenn die Bereiche Wert1-Wert3 spaltenmässig in Reihenfolge nebeneinander liegen.

sonst kann nicht zuverlässig bestimmt werden, aus welchem Bereich die leere Zelle stammt, falls es in mehreren Bereichen eine leere Zelle gibt.



Gruß, Daniel


Beiträge aus den Excel-Beispielen zum Thema "Leere Zelle in Bereichen suchen."