Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

Mitteilung bzgl Ol-Xl/CP-Forum-Links

Mitteilung bzgl Ol-Xl/CP-Forum-Links
18.07.2015 15:07:56
Luc:-?
Hallo, Folks;
wie PH (Online-Excel) mitgeteilt hat, musste er das CodeProjekt-Forum abschalten und wird das demnächst auch mit dem Sonstiges-Forum tun, so dass alle Links dorthin nicht mehr fktionieren können.
Interessenten für die VerbundZellen-Problematik (VerbundZellen bilden und ggf wieder trennen) und ein managing tool für senkrechte VbZellen müssen die hiesige Archiv-RECHERCHE in Anspruch nehmen und sich durch die Treffer wurschteln, denn das Tool ist, dank {Boris}, auch hier vorhanden.
Oster-Fml-Interessenten müssen sich sputen, wenn sie sich für amos' über Jhdte exakte Ergebnisse liefernde Fml interessieren.
Gruß, Luc :-?

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

Betreff
Datum
Anwender
Anzeige
Alternativ können BTe in beiden UnterForen ...
18.07.2015 15:42:43
Luc:-?
vor dem 16.3.2015 noch über web.archive.org gefunden wdn.
Der VerbundZellen-BT ist dann hier zu finden.
Luc :-?

Wegen bekundeten Interesses folgt hier ...
21.07.2015 04:13:55
Luc:-?
…die ZweitVeröffentlichung der mit dem OX/CP-Forum unter­gegangenen UDF NoErrRange (weiter­gehende Ausführungen hierzu nebst Bspp sind ab hier im verlinkten Thread zu finden):
Rem Erzeugt ggf 1 unzusammenhängd Bereich (MehrfachAuswahl)
'   aus Bezug lt Arg1 ohne darin uU enthaltene FehlerWerte;
'   hilfreich b.Fktt, d.nur Bereiche ohne FWerte, aber auch
'   unzusammhängende verarbeiten können, bspw TEILERGEBNIS;
'   Datenfeld-verarbeitde Fktt kommen so idR ohne MxFmlForm
'   aus; Arg1 aus nur 1 Zelle wird unbehandelt übnommen, b.
'   VektorForm wird auch b.solitärer FktsVerwendg in MxFmln
'   richtig Ergebnis geliefert, b.MatrixForm müssen d.Werte
'   idR m.INDEX/Var2 aus d.unzushgd ErgebnisBereich gelesen
'   wdn; m.Arg2=WAHR/0 wird d.Ergebn auf sichtbare Zellen
'   beschränkt, wobei dies b.Ausblenden d.Zelle m.der d.Fkt
'   enthaltenden Fml dort Anzeige d.StandardFWerts bewirkt;
'   Achtung! Fkt benötigt b.ggf verlangter AutoAktualisierg
'   d.Nicht-Berücksichtigg ausgeblendet Zellen ExternAnstoß
'   in mindest 1er sie enthaltenden Fml - Arg2 dort ggf als
'   1^JETZT() o.ä. notieren -, damit sie auch unabhängig v.
'   evtl and Berechngg auf [F9] bzw Edit 1er beliebig Zelle
'   reagiert, was generell v.Arg2 abhängt: WAHR/0 -> par-
'   tielle Volatilität zur Erzielg dss speziell Verhaltens.
'   Vs1.2 -LSr.CyWorXxl -cd:20150710 -1pub:20150721herber(/11oxCp) -lupd:20150715n
Function NoErrRange(Bereich As Range, Optional ByVal nurVisZ As Boolean) As Range
Dim xZ As Range
Application.Volatile nurVisZ
If Bereich.Cells.Count = 1 Then Set NoErrRange = Bereich: Exit Function
For Each xZ In Bereich
If Not IsError(xZ) Then
If Not NoErrRange Is Nothing Then
If nurVisZ Then
If Not (xZ.EntireRow.Hidden Or xZ.EntireColumn.Hidden) Then _
Set NoErrRange = Union(NoErrRange, xZ)
Else: Set NoErrRange = Union(NoErrRange, xZ)
End If
ElseIf nurVisZ Then
If Not (xZ.EntireRow.Hidden Or xZ.EntireColumn.Hidden) Then _
Set NoErrRange = xZ
Else: Set NoErrRange = xZ
End If
End If
Next xZ
End Function
Die UDF kann nur als Argument von XlStandard-Fktt, die auch unzu­sammen­hängende Zell­Bereiche akzeptieren, verwendet wdn. Neuere Fktt wie ZÄHLENWENN und ihre neuesten Erweiterungen auf -S (ab Xl12/2007) gehören nicht dazu!
Luc :-?

Anzeige
Für alle Anwender, die das gern automatisieren ...
22.07.2015 03:24:07
Luc:-?
…würden, gäbe es noch eine Möglichkeit, die ohne Ergänzung des 2.Arguments mit einer volatilen StandardFkt und ohne [F9] bzw DoppelKlick auskommt. Diese basiert auf dem Ablauf manuellen¹ Aus-/Ein­blendens. Dabei müssen ja auch Zellen ausgewählt wdn, erst die auszu­blen­denden und dann idR irgend­eine andere. In beiden Fällen wird das Worksheet_SelectionChange-Ereignis² aus­gelöst, das hierfür genutzt wdn kann. Da man dabei nicht unbedingt ganze Zeilen oder Spalten markieren muss, ist das Tool etwas länger geworden als sonst erfor­derlich gewesen wäre. Wer nicht gewohnt ist, ganze Zeilen bzw Spalten für diesen Zweck zu markieren, sollte eine benannte Konstante des jewei­ligen Blattes³ definieren, die die Zahl der mindestens auszu­wäh­lenden Zellen angibt, bei der die Aktion ausgelöst wird, damit das nicht bei jedem Klick aufs Blatt geschieht. Anderen­falls fktioniert das nur bei Auswahl ganzer Zeilen bzw Spalten!
¹ Wer eine VBA-Prozedur dafür benutzt, sollte in diese an geeigneter Stelle ein .Calculate o.Ä. einbauen!
² Das ist auch mit dem Workbook_SheetSelectionChange der Mappe möglich, was man dann für alle oder nur ausgewählte Blätter einrichten kann; das muss sich derjenige aber selber so einrichten (für die ganze Application mit Auswahl­Möglichkeit nur für bestimmte Mappen/Blätter ist auch möglich)!
³ Diese kann für alle infrage kommenden Blätter gleich heißen; wichtig ist aber, dass sie für das jeweilige Blatt angelegt wird! Im Falle der unter ² genannten anderen Möglich­keiten, kann sie auch für die jeweilige Mappe angelegt wdn.

Die nachfolgenden Pgmm gehören in das Dokument-Klassen­modul des jewei­ligen Blattes. Dabei wurde die Ereignis­Prozedur bewusst kurz gehalten, damit darin ggf auch anderes untergebracht wdn kann. Die Aufruf­Bedingungen für die eigentl Prozedur können nach Bedarf angepasst wdn:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const adRelBer$ = ""    'Anm: Hier ggf GeltungsbereichsAdresse eintragen!
Dim relBer As Range
If adRelBer = "" Then Set relBer = Me.UsedRange Else Set relBer = Me.Range(adRelBer)
If Not Intersect(Target, relBer) Is Nothing Then Call HiddenRange(Target)
Set relBer = Nothing
End Sub
Rem Unterstützung d.UDF NoErrRange b.Aus/Einblenden v.Zeilen/Spalten
'   Vs1.1 -LSr:CyWorXxl -cd:20150721 -1pub:20150722herber -lupd:20150721n
Private Sub HiddenRange(ByVal Ziel As Range)
Const naSelMod$ = "minBlendZAnz"    'Anm: Anderen Namen hier übernehmen!
Static isReact(1) As Boolean, anzVorZ(1) As Long, adVorZiel$, selMod As Variant
On Error GoTo fx ': selMod = Empty  'Anm: Aktivieren ggf nur zum Testen, sonst …
If IsEmpty(selMod) Then                 ' …wird nur b.1.Aufruf/Sitzg ermittelt!
On Error Resume Next
If IsError(Me.Names(naSelMod)) Then
On Error GoTo fx: selMod = 0
Else: On Error GoTo fx: selMod = Mid(Me.Names(naSelMod).Value, 2)
If IsNumeric(selMod) Then selMod = CLng(selMod) Else selMod = 0
End If
End If
With Ziel
If Not (isReact(0) Or isReact(1)) Then
isReact(0) = .Address = .EntireColumn.Address Or _
.Address = .EntireRow.Address
If CBool(selMod) And Not isReact(0) Then
isReact(1) = .Cells.Count >= selMod
If isReact(1) Then
Application.EnableEvents = False
adVorZiel = .Address
anzVorZ(0) = .SpecialCells(xlCellTypeVisible).Count
Application.EnableEvents = True
End If
End If
ElseIf isReact(1) Then
On Error Resume Next
Application.EnableEvents = False
anzVorZ(1) = Me.Range(adVorZiel).SpecialCells(xlCellTypeVisible).Count
Application.EnableEvents = True
On Error GoTo fx: isReact(1) = anzVorZ(0)  anzVorZ(1)
If isReact(1) Then Me.Calculate
GoTo ex
Else: isReact(0) = False: Me.Calculate
End If
End With
If CBool(Err.Number) Then
fx:     MsgBox Err.Description, vbCritical, "Fehler " & CStr(Err.Number)
Aplication.EnableEvents = True
ex:     isReact(0) = False: isReact(1) = False: adVorZiel = ""
anzVorZ(0) = 0: anzVorZ(1) = 0
End If
End Sub
Da hier mit Aus-/Einschalten der Ereignis­Reaktion gearbeitet wird, ist es besser, wenn man sich sicher­heits­halber noch eine kleine Routine zum Wieder­ein­schalten der­selben zulegt → im Folgenden als Umschalten des aktuellen Zustands (FlipFlop) angelegt:
Sub EventFF()
With Application: .EnableEvents = Not .EnableEvents: End With
End Sub

Viel Erfolg! Luc :-?

Anzeige
hmm ...
22.07.2015 08:11:34
der
Hallo Luc,
... also ein erster Schnelltest ergab bei mir auch danach keine Änderung. Sprich, auch jetzt bedarf es bei noch [F9]
Vielleicht sieht es ja bei Robert besser aus?
Gruß Werner
.. , - ...

Es wird erst bei neuem Klick nach dem Aus- ...
22.07.2015 08:35:54
Luc:-?
…bzw Einblenden gerechnet, Werner,
anders lässt sich das auf diese Weise nicht regeln. Auch bei normalem Ablauf würdest du sicher nicht die Auswahl auf der Aus- bzw Einblendung belassen. Davon gehe ich hierbei nämlich aus.
Falls du das aber beachtet haben solltest, wirst du wohl tatsächlich auf roberts Test warten müssen. Bei mir klappt das auf beide Arten so wie beschrieben… ;-)
Morrn, Luc :-?

Anzeige
Korrektur: Habe beim letzten 'Application' ...
22.07.2015 08:47:02
Luc:-?
…(nach Marke fx:) ein p vergessen (kommt von nachträglichem Einfügen!)!
Luc :-?

Simple Automatisierungsalternative:
22.07.2015 10:46:17
Luc:-?
Wem das alles zu umständlich erscheinen mag, der kann eine Neuberechnung aller volatilen Fktt, so auch der Fmln mit UDF NoErrRange, auch mit einer Lösung erzwingen, die ursprünglich für einen anderen Zweck gedacht war (und kürzlich hier von mir vorgestellt wurde).
Nachteil: Die Neuberechnung wird bei jedem Wechsel der Auswahl veranlasst.
Vorteil:   Unter dem angegebenen bzw beliebig geänderten Namen wird stets auf die gerade ausgewählte Zelle verwiesen. Daran kann man diverse „Spielchen“ mit der BedingtFormatierung oder auch Anderes festmachen, wie bspw Adress- oder WertAusgabe. Dabei kann ein Zirkel­Bezugs­fehler zB mit folgenden Fmln vermieden wdn:
ZellAdressAngabe: =ADRESSE(ZEILE(AktZelle);SPALTE(AktZelle);4)
ZellWertAusgabe:   =INDEX(AktZelle;1)
Soll das nur für ein Blatt gelten, muss der Name auch für dieses Blatt definiert wdn und im Dokument­Klassen­modul des Blattes wird folgender PgmCode notiert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const naAktZAdr$ = "AktZelle" '→ Name -auch hier- beliebig wählbar!
    Me.Names(naAktZAdr).Value = "=" & Target.AddressLocal
End Sub
Soll es aber für alle (oder mehrere bestimmte) Blätter gelten, muss im Dokument­Klassen­modul der Mappe die Ereignis­Prozedur Workbook_SheetSelectionChange (mit den Standard­Parametern ByVal Sh As Object, ByVal Target As Range) angelegt wdn. Der Name wird dann für die Mappe definiert. Über den 1.Parameter kann dann ggf zusätzlich eine Blatt­Abfrage vorgenommen wdn.
Fmln, mit der durch ≠0-Angabe ihres 2.Arguments volatilen Version der UDF NoErrRange, wdn nach dem Aus-/Einblenden idR (außer bei Zeilen in Kombi mit TEILERGEBNIS) ebenfalls nicht sofort neu berechnet, aber nach erneutem Wechsel der Zell­Auswahl (auch ohne [F9]!).
Diese Alternative wäre zu bevorzugen, falls der ständig aktualisierte Verweis auf die jeweilige ZellAuswahl (nur die 1.Zelle - nicht die FolgeZellen - wird berücksichtigt!) tatsächlich benötigt wird. Ansonsten wäre die 1.Automati­sierungs­Variante wahr­scheinlich günstiger, da mit geringerer Berechnungs­frequenz.
Wer das zusätzliche UDF-Feature - Nicht-Berück­sichtigung ausgeblendeter Spalten (bzw Zeilen) - nicht nutzen will, benötigt keine der Automatisierungs­varianten, anderen­falls ist evtl aber auch der ursprüngl Vorschlag ([F9] bzw Klick in beliebige Zelle in Verbindung mit einer 1malig dem 2.Argument hinzu­gefügten volatilen Standard­Fkt) ausreichend.
Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige