Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellsteuerung

Zellsteuerung
20.12.2005 14:45:44
Jessi
Hallo Excelspezialisten
Hab hab ein Makro zur Zellsteuerung geschrieben. Mit hilfe diese Makros eine bestimmte Folge von Zellen nach betätigung der Entertaste durchlaufen. Funktioniert auch tadellos.
Jetzt hab ich aber das Problem das ich standartmäßig 5 aufeinanderfolgende Zellen ausgebelendet habe. Die Zellen werden je nah Inhalt von Zelle B20 ein- bzw. wiedr ausgeblendet.
Wenn ich Enter drücke soll er nicht eine ausbeblendete sondern die nächste eingeblendete Zelle auswählen. Gibt es da eine Möglichkeit das zu realisieren?
Danke schon mal im vorraus für eure Hilfe
Jessi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellsteuerung
20.12.2005 14:53:08
Dr.
Hi,
Du könntest mit der SpecialCells-Methode abfragen, ob der Typ "xlCellTypeVisible" ist und je nachdem reagieren.
AW: Zellsteuerung
20.12.2005 16:49:10
Jessi
Hallo
hab schon mal was von der Methode was gehört kann aber nicht wirklich was damit anfangen.
Könntest du es mir für eine Zelle zeigen. Ich lade mal den Code hoch.
Die Bedingung und Anweisung für ElseIf hab ich fertig nur der übersichtlichkeit nicht mit hochgeladen (ähnlich der vorhandenen nur mit anderen Werten und anderen Zeilen, die eingeblendet werden). Funktioniert auch, nur die Zellsteurung eben nicht.

Sub prozKorrekturfaktor()
'   Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
Rows("29:30").EntireRow.Hidden = False
Rows("31:35").EntireRow.Hidden = True
Range("C29:C30") = "x,xx"
Range("C31:C35") = "1"
Range("A26") = "Herstellungswert (NHK 2000) in €/m²:"
Range("A36") = "BGF in m²:"
Rows("53:54").EntireRow.Hidden = False
Rows("55:59").EntireRow.Hidden = True
'       m² oder m³
If Range("B20") = "30.1" Or Range("B20") = "30.2" Or _
Range("B20") = "31.1" Or Range("B20") = "31.2" Or _
Range("B20") = "31.3" Then
Range("A26") = "Herstellungswert (NHK 2000) in €/m³:"
Range("A36") = "BRF in m³:"
'       mit Korrekturfaktor Grundrissart und durchschnittliche Wohnungsgröße
'       Mehrfamilien-Wohnhaus
ElseIf Range("B20") = "3.11" Or Range("B20") = "3.12" Or _
Range("B20") = "3.13" Or Range("B20") = "3.21" Or _
Range("B20") = "3.22" Or Range("B20") = "3.23" Or _
Range("B20") = "3.32" Or Range("B20") = "3.33" Or _
Range("B20") = "3.42" Or Range("B20") = "3.53" Or _
Range("B20") = "3.73" Then
Range("C31,C32") = "x,xx"
Rows("31:32").EntireRow.Hidden = False
Rows("55:56").EntireRow.Hidden = False
'       ohne Korrekturfaktor regionale Anpassung, Ortsgröße
'       mit Korrekturfaktor Gebäudegröße und Unterbau
ElseIf ...
'       ohne Korrketurfaktor regionale Anpassung und Ortsgröße
'       mit Korrekturfaktor Gebäudegröße und Kotgrube
ElseIf ...
'       ohne Korrekturfaktor regionale Anpassung und Ortsgröße
'       mit Korrekturfaktor Gebäudegröße
ElseIf ...
'       mit Korrketurfaktor Gebäudegröße
ElseIf ...
End If
'   Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
End Sub


Sub Zellensteuerung_SWV()
If ActiveCell <> Range("C43") Then
enter = 0
End If
Select Case ActiveCell.Address
Case "$B$5"
Range("$B$6").Select
... 'Weite Zellen die mit Enter angesteuert werden
'  Wert in dieser Zelle entscheidet welche Zeilen eingeblendet werden
Case "$B$20"
prozKorrekturfaktor
Range("$B$21").Select
Case "$B$21"
Range("$C$26").Select
Case "$C$26"
Range("$C$27").Select
Case "$C$27"
Range("$C$28").Select
Case "$C$28"
Range("$C$29").Select
Case "$C$29"
Range("$C$30").Select
Case "$C$30"
Range("$C$31").Select
' Zelle die standardmäßig ausgeblendet ist
' wird durch die ElseIf anweisung von oben eingeblendet
Case "$C$31"
Range("$C$32").Select
... ' weitere Zellen die mit Enter angesteuert werden
Case "$C$43"
If enter = 1 Then
Range("$B$5").Select
enter = 0
Else
enter = enter + 1
End If
Case Else
Range("$B$5").Select
End Select
End Sub

Danke für deine hilfe
Jessi
Anzeige
AW: Zellsteuerung
21.12.2005 05:12:11
Reinhard
Hi Jessi,
kapier nicht ganz wofür wir diesen Code brauchen. Unngetstet:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim dazu As Long
dazu = 1
Call prozKorrekturfaktor
While Rows(Target.Row).Offset(dazu, 1).Hidden = True
dazu = dazu + 1
Wend
Target.Row.Offset(dazu, Target.Column).Select
End Sub
Und ggfs so abändern wegen der Übersichtlichkeit:
Select Case Range("B20")
Case "30.1", "30.2", "31.1" 'usw.
Range("A26") = "Herstellungswert (NHK 2000) in €/m³:"
Range("A36") = "BRF in m³:"
Case "3.11", "3.12" 'usw.
Range("C31,C32") = "x,xx"
Rows("31:32").EntireRow.Hidden = False
Rows("55:56").EntireRow.Hidden = False
Case ...
Case Else
End Select

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Zellsteuerung
21.12.2005 10:22:46
Jessi
Hallo Reinhard
Ich hab eine Excel-Mappe mit der diverse Berechnungen durch geführt werden. Zuvor muss aber der Anwender bestimmte Daten eingeben. Um ihm die Steuerung zu erleichtern hab ich ein Makro geschrieben mit dem er immer in die nächste Zelle gelangt in der er etwas ein geben muss.
Da aber bestimmte Zellen abhängig vom Inhalt der Zelle B20 ein- bzz. ausgeblendet werden brauch ich eine Möglichkeit zum Abfragen ob die Zelle ein. bzw. ausgeblendet ist.
Dein Rat mit CASE hab ich umgesetzt. Sieht allemal besser aus.
Aber Prozedur funktioniert nicht wirklich (vorletzte Zeile fehlt bei Row ein s, aber trotzdem läuft es nicht). Er bringt mir manchmal eine Fehlermeldung bei der While-Schleife, weiß nicht warum.
Ich möchte aber auch kein Doppelklick ausführen sondern mit Enter weiter gelangen.
Kannst du/ihr mir bitte noh mal helfen?
Danke
Jessi
Anzeige
If Rows(...).EntireRow.Hidden Then... Gruß owT
22.12.2005 03:22:50
Luc:-?
+FFT :-?
AW: If Rows(...).EntireRow.Hidden Then... Gruß owT
22.12.2005 03:25:17
Luc:-?
'cuse me :-?
Danke! Hat geklappt.
22.12.2005 11:29:15
Jessi
Habs selber schon so angefangen aber hatte in kleinen Syntaxfehler drinn und dachte das es so nicht geht. Aber nun funktioniertes es.
Danke für deine bzw. eurer Hilfe
Jessi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige