Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1648to1652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Listbox soll nur ausgefüllte Zellen anzeigen
15.10.2018 17:27:41
Andre
Hallo zusammen,
ich bin nicht so bewandert mit VBA und brauche mal Hilfe:
In einem Tabellenblatt sind in den Spalten I bis M Typen erfasst - anber nicht alle Felder sind ausgefüllt. D.h. in einer Zeile kann bereits in Spalte I ein Eintrag sein, in einer anderen Zeile aber erst in K.
Wenn ich nun die Kundennummer in einer Textbox bestätigen sollen mit die Einträge der jeweiligen Zeile in einer Listbox angezeigt werden.
Mit folgendem Code mache ich es jetzt, allerdings sollen nur die ausgefüllten Felder angezeigt werden:
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strFirst As String
With Sheets("Kunden")
Set rngBereich = .Columns("A:A")
Set c = rngBereich.Find(TextBox_KDNR, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strFirst = c.Address
Do
ListBox_GP.AddItem .Cells(c.Row, 9)
ListBox_GP.AddItem .Cells(c.Row, 10)
ListBox_GP.AddItem .Cells(c.Row, 11)
ListBox_GP.AddItem .Cells(c.Row, 12)
ListBox_GP.AddItem .Cells(c.Row, 13)
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address strFirst
End If
End With
Es fehlt scheinbar die Zeile oder die Option, dass nur ausgeüllte Felder ausgelesen werden.
Hat jemand einen Tip?
Gruß
Andre

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox soll nur ausgefüllte Zellen anzeigen
15.10.2018 18:00:57
Mullit
Hallo,
versuch's so:
Option Explicit

Public Sub NotTested()
Dim objCell As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strFirstAddress As String
Dim lngIndex As Long
With Worksheets("Kunden")
    Set rngBereich = .Columns("A:A")
    Set objCell = rngBereich.Find(What:=TextBox_KDNR.Value, LookIn:=xlValues, _
         LookAt:=xlPart, MatchCase:=False)
    If Not objCell Is Nothing Then
        strFirstAddress = objCell.Address
        Do
            For lngIndex = 9 To 13
               With .Cells(objCell.Row, lngIndex)
                   If Not IsEmpty(.Value) Then ListBox_GP.AddItem .Value
               End With
            Next
            Set objCell = rngBereich.FindNext(After:=objCell)
        Loop Until objCell.Address = strFirstAddress
    
    End If
End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Listbox soll nur ausgefüllte Zellen anzeigen
15.10.2018 18:12:04
Andre
Funktioniert!
Super und vielen Dank!
AW: ok, 1A, prima....owT
15.10.2018 18:19:57
Mullit
AW: Listbox soll nur ausgefüllte Zellen anzeigen
15.10.2018 18:07:35
Piet
Hallo
Probier bitte mal diese Aenderung aus. Für "xx" im Code muss die richtige Spalte Nr angeben werden.
D.h., die Spalte wo die Kunden Nummer steht. Bei Mehrfachauswertung zwei Spalten!
Würde mich freuen wenn es damit klappt ...
mfg Piet
Do
If .Cells(c.Row, xx).Value  "" Then
ListBox_GP.AddItem .Cells(c.Row, 9)
ListBox_GP.AddItem .Cells(c.Row, 10)
ListBox_GP.AddItem .Cells(c.Row, 11)
ListBox_GP.AddItem .Cells(c.Row, 12)
ListBox_GP.AddItem .Cells(c.Row, 13)
End If
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address  strFirst
oder Mehrfachauswertung:  - (zwei Zellen!!)
If .Cells(c.Row, xx)  "" And .Cells(c.Row, xx)  "" Then

Anzeige
AW: Listbox soll nur ausgefüllte Zellen anzeigen
15.10.2018 18:11:34
Andre
Hallo,
habe den Code von Mullit verwendet. Der geht.
Trotzdem Danke.

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige