HERBERS Excel-Forum - das Archiv
gefüllte Zelle in einem Bereich suchen
Ron

Hallo Forum,
ich habe ein VBA-Problem, bei dem ich Hilfe brauch. Folgende Situation:
Ich habe eine Tabelle mit 6 Spalten und 300 Zeilen. In jeder Zeile steht nur 1 Wert in einer der 6 Spalten.
Ich möchte nun rausbekommen, wenn ich die 300 Zeilen über eine For-Nextchleife abarbeite, in welcher der 6 Spalten dieser Wert steht. Die Nummer der Spalte soll in einer Variable gespeichert werden. Denn mit dieser Variable bearbeite ich dann Folgemakros
Wie geht das?
Danke für eure Hilfe.
Gruß Ron

AW: gefüllte Zelle in einem Bereich suchen
selli

hallo ron,
wie genau stellst du dir das denn vor?
willst du 300 variable sammeln?
gruß selli
AW: gefüllte Zelle in einem Bereich suchen
Ron

Nein, es soll so laufen:
For x = ende_zeile To 0 Step -1
set bereich = Range("F" & ende_zeile & ":" & "L" & ende_zeile)
'suche nun in bereich welche von den 6 Zellen gefüllt ist
'gefunden: spalte =7
'nächstes makro welches die Variable spalte benutzt
Next x
AW: gefüllte Zelle in einem Bereich suchen
Jens

Hallo Ron
Du willst also 300 mal das gleiche Makro ('nächstes makro welches die Variable spalte benutzt ) mit einem anderen Variablen-Wert ablaufen lassen?
Gruß Jens
AW: gefüllte Zelle in einem Bereich suchen
Ron

Ja so hatte ich es mir zumindestens gedacht.
Das zweite makro mach nichts anderes als sich den wert (das ist ein Text) aus dieser spalte zu merken, in eine anderer Tabelle zu gehen, dort diesen Text, der eindeutig ist zu suchen und sich dazu einen passende Wert in ein array zu schreiben. Mit diesem Array rechne ich dann.
Das dürfte von der Laufzeit her net so lang dauern meine ich.
AW: gefüllte Zelle in einem Bereich suchen
Ron

Kann mir einer helfen bei dem Problem?
AW: gefüllte Zelle in einem Bereich suchen
Jens

Hi Ron
Könntest Du die Datei mal hochladen?
Gruß Jens
AW: gefüllte Zelle in einem Bereich suchen
Ron

Hallo Jens, danke schon mal für deine Hilfe, aber das Projekt hat sich im dem Sinne erledigt weil ich das anders lösen musste wegen Zeitdruck.
Trotzdem würde mich der VBA-Code interessieren wenn ich 5 Spalten haben und z.B 5 Zeilen, jede Zeile hat nur 1 Wert sprich ein Wert steht in A1, der zweite in C4, der Dritte in D3, der vierte in B4 und der fünfte in E5 und ich komme mit einer for next schleife für die 5 Zeilen, definiere über set jeweils den Bereich A1:E1, dann A2:E2 usw. wie ich dann raus bekomme welche der 5 Zellen nun gefüllt ist. Das ergebnis kann die Zelladresse sein oder die Spalte in der er den Wert gefunden hat, denn die Zeile kenne ich ja schon.
Weißt du wie sowas geht Jens?
Gruß Ron
AW: gefüllte Zelle in einem Bereich suchen
Jens

Hallo Ron
Vom Prinzip her funktioniert das hier:
Sub tt()
Dim LoZeile As Long
Dim LoSpalte As Long
Dim loLetzte As Long
loLetzte = 9
For LoZeile = 1 To loLetzte
For LoSpalte = 1 To 5
If Cells(LoZeile, LoSpalte) <> "" Then
MsgBox Cells(LoZeile, LoSpalte).Address 'Zelladresse
'MsgBox LoSpalte ' Spaltennummer
End If
Next
Next
End Sub
Gruß Jens
AW: gefüllte Zelle in einem Bereich suchen
Ron

ah ok so eine Lösung habe ich mir fast gedacht.
Aber mit dem Befehl
set bereich=Range("A1:E1")
Set zelle=bereich.find(irgendeine Zelle leer) das geht nicht irgendwie oder?
AW: gefüllte Zelle in einem Bereich suchen
Jens

Hi
Vielleicht noch so (ungetestet):
Sub tt()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Range("A1:E9")
For Each Zelle In Bereich
If Zelle <> "" Then MsgBox Zelle.Column
Next
Set Bereich = Nothing
End Sub
oder so:
Sub tt()
Dim Bereich As Range
Dim Zelle As Range
Dim loZeile As Long
For loZeile = 1 To 9
Set Bereich = Range("A" & loZeile & ":E" & loZeile)
For Each Zelle In Bereich
If Zelle <> "" Then MsgBox Zelle.Column
Set Bereich = Nothing
Next
Next
End Sub
Gruß Jens
AW: gefüllte Zelle in einem Bereich suchen
Ron

Du hast Recht Jens so geht es. Manchmal sieht man den Wald vor lauter Bäumen nicht.
Danke nochmals für deine Hilfe.
Gruß Ron
Danke für Rückmeldung (oT)
Jens