Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
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
Inhaltsverzeichnis

Einträge in Tabelle in Schlaufe abarbeiten

Einträge in Tabelle in Schlaufe abarbeiten
Peter
Guten Tag
Mein Eintrag https://www.herber.de/forum/messages/1101903.html ist irgendwie zum Erliegen gekommen. Ich versuche, den für mich noch offenen Punkt zu formulieren.
In meinem Workbook habe ich eine Tabelle mit Namen "SpaltenEinAus".Dort stehen in Spalte A ab Zeile 2 Namen von benannten Bereichen. Nun möchte ich im nachfolgenden Code diese Namen in die Schlaufe For i = 1 to End übernehmen. Der erste zu übernehmende Bereichsname steht in Zelle A2, der letzte im letzten Eintrag in der Spalte A.
Wie bringe ich diese Namen in die nachfolgende Schlaufe?
Danke und Gruss, Peter
Sub SwitcherUnbenutzteSpalten
Dim rngC As Range, rngHide As Range, rngAll As Range, i As Integer
For i = 1 To End
Set rngAll = ?  hier müssen die einzelnen Einträge aus Spalte A übernommen werden
For Each rngC In rngAll.EntireRow.Cells
Next rngC
Next i
End Sub

AW: Einträge in Tabelle in Schlaufe abarbeiten
12.09.2009 18:18:29
Tino
Hallo,
bin mir nicht sicher ob ich dich richtig verstanden habe, vielleicht meinst Du so.
    Dim rngC As Range, rngAll As Range
With Sheets("SpaltenEinAus")
Set rngAll = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each rngC In rngAll
MsgBox Range(rngC.Text).Parent.Name & "!" & Range(rngC.Text).Address
'oder was anderes damit machen
Next rngC
Gruß Tino
AW: Einträge in Tabelle in Schlaufe abarbeiten
12.09.2009 18:56:07
Peter
Hallo Tino
Irgendwie habe ichs noch nicht geschafft, deinen Code in den unten aufgeführten zu integrieren. Ich sende dir mal die Beispielmappe - vielleicht kannst du mir ja helfen. Danke und Gruss, Peter
https://www.herber.de/bbs/user/64359.xls
Sub SwitcherUnbenutzteSpalten()
Dim rngC As Range, rngHide As Range, rngAll As Range, i As Integer
'für jeden in der Tabelle SpaltenEinAus enthaltenen Namen
'muss nachfolgender Code ablaufen
For Each rngC In rngAll.EntireRow.Cells
If rngC.Value = 0 Then
If rngHide Is Nothing Then
Set rngHide = rngC
Else
Set rngHide = Union(rngHide, rngC)
End If
End If
Next rngC
If Not rngHide Is Nothing Then
rngHide.EntireColumn.Hidden = Not rngHide.EntireColumn.Hidden
End If
Set rngHide = Nothing
Set rngC = Nothing
Set rngAll = Nothing
End Sub

Anzeige
AW: Einträge in Tabelle in Schlaufe abarbeiten
12.09.2009 19:11:33
Tino
Hallo,
also die Spalten sollen ein bzw. ausgeblendet werden.
So habe ich es verstanden.
Ohne Fehlerbehandlung:
Dim rngC As Range, rngAll As Range
With Application
.ScreenUpdating = False
With Sheets("SpaltenEinAus")
Set rngAll = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each rngC In rngAll
Range(rngC.Text).EntireColumn.Hidden = Not Range(rngC.Text).EntireColumn.Hidden
Next rngC
.ScreenUpdating = True
End With
Gruß Tino
AW: Einträge in Tabelle in Schlaufe abarbeiten
12.09.2009 19:49:52
Peter
Hallo Tinu
Wir sind nahe dran.
Allerdings blendet es mir jetzt in den einzelnen Tabellenblättern nur die erste Spalte ohne Inhalt auf der entsprechenden Zeile aus. Es müssten jedoch alle Spalten, die auf der entsprechenden Zeile kein Eintrag haben ausgeblendet werden.
Gruss, Peter
Anzeige
AW: Einträge in Tabelle in Schlaufe abarbeiten
12.09.2009 21:25:17
Tino
Hallo,
ok. versuche es mal hiermit.
Sub SwitcherUnbenutzteSpalten()
Dim rngC As Range, rngAll As Range
Dim RSpalten As Range, TempSpalte As Range
With Application
.ScreenUpdating = False
With Sheets("SpaltenEinAus")
Set rngAll = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each rngC In rngAll
Set RSpalten = Sheets(Range(rngC.Text).Parent.Name).Rows(Range(rngC.Text).Row)
On Error Resume Next
Set TempSpalte = RSpalten.SpecialCells(xlCellTypeBlanks).EntireColumn
On Error GoTo 0
If Not TempSpalte Is Nothing Then
TempSpalte.Hidden = Not TempSpalte.EntireColumn.Hidden
Set TempSpalte = Nothing
Else
Sheets(Range(rngC.Text).Parent.Name).Columns.Hidden = False
End If
Next rngC
.ScreenUpdating = True
End With
End Sub
Gruß Tino
Anzeige
AW: Einträge in Tabelle in Schlaufe abarbeiten
12.09.2009 21:34:02
Peter
Hallo Tino
Soeben habe ich - auch mit deinem Input - den Code anpassen können. "Herzstück", die Namen aus dem Sheet "SpaltenEinAus" in den anderen Teilcode zu übernehmen ist
For Each rngC In Range(strRangeName.Value).EntireRow.Cells 'einzelne Zellen des benannten Bereiches
In dieser Tabelle stehen zwar Namen der zu bearbeitenden Bereiche. Damit diese aber als Bereiche erkannt werden und dann wieder die ganze Zeile dort auf leere Felder (= ausblenden) untersucht wird, muss ich den Namen des Ranges übergeben.
Vielen Dank für deine Mithilfe!
Gruss, Peter
Sub SwitcherUnbenutzteSpalten()
Dim rngSource As Range, rngC As Range, rngHide As Range, strRangeName As Range, i As Integer
With Sheets("SpaltenEinAus")
Set rngSource = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
For Each strRangeName In rngSource    'einzelne Namen von benannten Bereichen
For Each rngC In Range(strRangeName.Value).EntireRow.Cells 'einzelne Zellen  _
des benannten Bereiches
If rngC.Value = 0 Then
If rngHide Is Nothing Then
Set rngHide = rngC
Else
Set rngHide = Union(rngHide, rngC)
End If
End If
Next rngC
If Not rngHide Is Nothing Then
rngHide.EntireColumn.Hidden = Not rngHide.EntireColumn.Hidden
End If
Set rngHide = Nothing
Set rngC = Nothing
Set strRangeName = Nothing
Next strRangeName
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige