Anzeige
Archiv - Navigation
300to304
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
300to304
300to304
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige