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

Matrixformeln aufspüren

Matrixformeln aufspüren
22.10.2007 20:51:24
Jenny
Hallo, ihr Wissenden,
mit folgendem Makro kann ich mir alle Formeln im angegebenen Bereich auflisten lassen:

Sub Formeln()
Dim rngZ As Range
Dim intRow As Integer
For Each rngZ In Range("A1:D100").SpecialCells(xlCellTypeFormulas)
Cells(intRow + 1, 8) = rngZ.Address
Cells(intRow + 1, 9) = "'" & rngZ.FormulaLocal
intRow = intRow + 1
Next rngZ
End Sub


Gibt es auch eine Möglichkeit, sich ausschließlich die enthaltenen Matrixformeln auflisten zu lassen?
Seid im Voraus bedankt!
Grüße von Jenny im Excel-Land

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrixformeln aufspüren
22.10.2007 20:54:35
{Boris}
Hi Jenny,
dafür gibt es die HasArray-Eigenschaft:

Option Explicit
Sub Formeln()
Dim rngZ As Range
Dim intRow As Integer
For Each rngZ In Range("A1:D100").SpecialCells(xlCellTypeFormulas)
If rngZ.HasArray Then
Cells(intRow + 1, 8) = rngZ.Address
Cells(intRow + 1, 9) = "{" & rngZ.FormulaLocal & "}"
intRow = intRow + 1
End If
Next rngZ
End Sub


Grüße Boris

AW: Matrixformeln aufspüren
22.10.2007 21:02:17
Jenny
Mensch Boris,
du kannst doch kaum Zeit gehabt haben, den Beitrag bis zum Ende durchzulesen!
Aber nichts desto trotz: Läuft wie geschmiert!!!
(Jetzt wo ich's lese, kommt's mir auch irgendwie bekannt vor.)
Danke dir herzlich.

Anzeige
Das lag am Betreff
22.10.2007 21:19:00
{Boris}
Hi Jenny,
...ich bin gerade online gegangen und habe MATRIXformeln gelesen ;-) - und da hab ich direkt mal draufgeklickt. Was ein guter Betreff so alles ausmachen kann ;-))
Grüße Boris

AW: Das lag am Betreff
22.10.2007 21:27:00
Jenny
Hallo Boris,
aber eigentlich standst du auch in der Pflicht, denn schließlich bin ich erst durch euer "Zauberbuch" überhaupt auf Matrixformeln aufmerksam geworden ;-)
Also: Selber Schuld :-))

Du bist mir direkt sehr sympathisch...
22.10.2007 21:48:22
{Boris}
Hi Jenny,
...bin ich erst durch euer "Zauberbuch"...
;-))
Unser neues Werk ist auch inzwischen fertig geworden... (man möge mir diesen kleinen Hinweis bitte verzeihen... ;-)))))
Grüße Boris

Anzeige
lääängst gesehen...
22.10.2007 21:55:00
Jenny
...und schon auf dem Weihnachtswunschzettel vermerkt ;-)

AW: Du bist mir direkt sehr sympathisch...
22.10.2007 22:48:00
K.Rola
Hallo Schatz,
"...Unser neues Werk ist auch inzwischen fertig geworden......"
Meine Anschrift hast du sicher noch, oder?
Die Widmung könnte diesmal etwas persönlicher ausfallen, nach Allem,
was zischen uns war.
G + K K.Rola

Ja, da hast Du Recht...
25.10.2007 20:53:00
{Boris}
Hi Liebes,
...ich werde mir etwas ganz Besonderes für Dich ausdenken! :-)
G+K Boris

Matrixfunktionen auflisten - Ergänzung
23.10.2007 00:18:48
NoNet
Hallo Jenny,
in Ergänzung zu {Boris}' Makro schlage ich folgenden Code vor :
Option Explicit
Dim rngArray As Range, rngZ As Range
Dim intRow As Integer
Sub ArrayFunktionenAuflisten()
    For Each rngZ In Range("A1:D100").SpecialCells(xlCellTypeFormulas)
        If rngZ.HasArray Then
            If rngArray Is Nothing Then
                ArrayHinzufuegen
            ElseIf Intersect(rngArray, rngZ) Is Nothing Then
                ArrayHinzufuegen
            End If
        End If
    Next rngZ
    Set rngArray = Nothing
End Sub
Sub ArrayHinzufuegen()
    Cells(intRow + 1, 8) = rngZ.CurrentArray.Address
    If rngArray Is Nothing Then
        Set rngArray = rngZ.CurrentArray
    Else
        Set rngArray = Union(rngArray, rngZ.CurrentArray)
    End If
    Cells(intRow + 1, 9) = "{" & rngZ.FormulaLocal & "}"
    intRow = intRow + 1
End Sub
Das Makro listet nun ARRAY-Funktionen nicht mehr mehrfach (redundant) auf, falls sich diese auf einen MATRIX-Bereich beziehen.
Beispiel : In D1:D5 steht : {=HÄUFIGKEIT(A1:A20;B1:B5)}
Diese Funktion wird nun nur noch 1x aufgelistet (da "echte" MATRIX-Funktion !) und als Bereich wird nicht eine Zelle, sondern der Bereich D1:D5 angezeigt.
Gruß, NoNet
PS: Auch ich freue mich schon riesig auf das neue "excelformeln.de"-Rätselbuch

Anzeige
Und noch "intRow=0" an den Anfang des Makros _oT
23.10.2007 00:22:45
NoNet
_oT = ohne Text

AW: Und noch "intRow=0" an den Anfang des Makros _
23.10.2007 10:55:00
Jenny
Hallo NoNet,
vielen Dank für die Ergänzung!
Solche Formeln waren in meiner Tabelle gar nicht vorhanden, daher ist mir dieser Unterschied auch nicht aufgefallen.
Macht ja auch bei Funktionen wie MTRANS durchaus Sinn.
Hab's eingebaut :-)
Grüße von Jenny im Excel-Land

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige