Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gezielt Spalten ausblenden (teil 3)

Forumthread: Gezielt Spalten ausblenden (teil 3)

Gezielt Spalten ausblenden (teil 3)
26.08.2003 13:00:58
Thorsten
Hallo !
dank eurer hilfe bin ich gut vorangekommen.
Um gezielt einige Spalten auszublenden habe ich folgende
Programmierung benutzt:


Sub SpaltenAusblenden()
Dim Target, i As Integer
Target = Cells(12, 6) 'Spalte f12 in Arbeitsmappe 1
For i = 18 To 115     'Spaltenindex Spalte Q bis DK
If Sheets("Bal - Origen").Cells(2, i).Value >= Target Then
Sheets("Bal - Origen").Columns(i + 1).EntireColumn.Hidden = True
End If
Next i
End Sub


klappt auch alles ganz gut, allerdings treten folgende Probleme auf:

(a) beim ersten Mal:
wenn ich eine Zahl in Arbeitsmappe 1 angebe muss ich erst noch
"Makro Ausfuehren" aufrufen bevor die jeweiligen Spalten
in "Bal - Origen" ausgeblendet werden.

(b) bei nachfolgenden Veraenderungen:
wenn ich die Zahl in Arbeitsmappe 1 kontinuierlich veraendern moechte,
werden die Spalten in "Bal - Origen" NICHT AUTOMATISCH aus- bzw
eingeblendet. Es wird immer nur der ERSTE wert anerkannt (siehe a).

Wie kann ich beide Prozesse automatisch / dynamisch ablaufen lassen ?

Wer hat eine Idee ?

Thorsten
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gezielt Spalten ausblenden (teil 3)
26.08.2003 13:05:03
Stephan
Hi Thorsten !

Schreib Dein Makro mal unter MicrosoftExcelObjekte/Tabelle.. und füge ein

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ein. Das sagt Excel, dass es bei jedem Change-Ereignis die Prozedur ausführt.

Die erste Zeile Sub SpaltenAusblenden() musst du dann weglassen.

Gruß
Stephan
Anzeige
AW: Gezielt Spalten ausblenden (teil 3)
26.08.2003 13:59:12
Thorsten
danke funtioniert.
nur laeuft der prozess doch sehr langsam ab.gibt es dafuer auch noch eine hilfe ???
AW: Gezielt Spalten ausblenden (teil 3)
26.08.2003 13:12:34
ChrisL
Hi Thorsten

a) geht ganz einfach. Mach ein Workbook_Open Ereignis im Klassenmodul DieseArbeitsmappe.


Private Sub Workbook_Open()
Call SpaltenAusblenden
End Sub


Alt + F11, links Doppelklick auf DieseArbeitsmappe, Code einfügen.

Dann würde ich folgende Änderungen vornehmen:

Sub SpaltenAusblenden()
Dim Target, i As Integer
Target = Cells(12, 6) 'Spalte f12 in Arbeitsmappe 1
For i = 18 To 115 'Spaltenindex Spalte Q bis DK
If Sheets("Bal - Origen").Cells(2, i).Value >= Target Then
Sheets("Bal - Origen").Columns(i + 1).EntireColumn.Hidden = True
Else
Sheets("Bal - Origen").Columns(i + 1).EntireColumn.Hidden = False
End If
Next i
End Sub

Ferner würde ich die Variable nicht Target nennen, da dies ein geschützter Begriff ist (wird z.B. für Worksheet_Change Ereignisse verwendet). Eine kleine Fehlerbehandlung wäre auch nicht schlecht.

Sub SpaltenAusblenden()
Dim ZInhalt, i As Integer
On Error Goto ErrorHandler

ZInhalt = Cells(12, 6) 'Spalte f12 in Arbeitsmappe 1
For i = 18 To 115 'Spaltenindex Spalte Q bis DK
If Sheets("Bal - Origen").Cells(2, i).Value >= ZInhalt Then
Sheets("Bal - Origen").Columns(i + 1).EntireColumn.Hidden = True
Else
Sheets("Bal - Origen").Columns(i + 1).EntireColumn.Hidden = False
End If
Next i

Exit Sub
ErrorHandler:
MsgBox "Fehler, Makro konnte nicht ausgeführt werden."
End Sub

Schliesslich, wenn du das Makro bei JEDER Änderung einer Zelle ausgeführt haben willst, füg ein Worksheet_Change Ereignis ein, was sich aber u.U. negativ auf die Performance auswirken kann.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Call SpaltenAusblenden
End Sub


Alt + F11, links Doppelklick auf Tabelle, Code einfügen.

Gruss
Chris
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige