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

Array - Formel Problem

Array - Formel Problem
14.03.2006 16:52:40
Volker
Hallo Experten,
ich lese regelmäßig hier im Forum mit und habe heute eine Frage, für die ich in der Recherche keine passende Antwort gefunden habe.
Ich habe ein Problem mit einer Arrayformel, die ich per VBA erzeugen möchte.
Ziel: Ermittlung der letzten verwendeten Spalte in Zeile 23.
Lösungsansatz: Arrayformel aus dem Forum
So soll das Endergebnis aussehen:
{=MAX(('D:\Eigene Dateien\FinanzTools\Programme\ITO\Testordner\New Environment\Tool in Entwicklung\Projekte\[0001_Swissport_NCM_TPL_Desktop Services_270206.xls]Status'!$23:$23"")*SPALTE('D:\Eigene Dateien\FinanzTools\Programme\ITO\Testordner\New Environment\Tool in Entwicklung\Projekte\[0001_Swissport_NCM_TPL_Desktop Services_270206.xls]Status'!$23:$23))}
Das klappt auch, wenn ich die Arrayformel direkt in Excel eingebe.
Folgender Code funktioniert bei mir nicht:
Dateiname ist dabei variabel.

Sub testmakro()
pfad = "D:\Eigene Dateien\FinanzTools\Programme\ITO\Testordner\New Environment\Tool in Entwicklung\Projekte\"
projekt = "0001_Swissport_NCM_TPL_Desktop Services_270206.xls"
Range("E14").Select
Selection.FormulaArray = _
"=MAX(('" & pfad & "[" & projekt & "]Status'!R23<>"""")*COLUMN(" & "'" & pfad & "[" & projekt & "]Status'!R23))"
End Sub

Fehlermeldung:
Laufzeitfehler 1004
Die FormulaArray-Eigenschaft des Range-Objektes kann nicht festgelegt werden.
Muss ich was beachten bei der Erzeugung von Arrayformeln per VBA?
Hängt das mit dem langen Pfad zusammen?
Oder sehe ich den Wald vor lauter Bäumen nicht?
2. Problem:
Ich separiere ein Tabellenblatt in eine separate Arbeitsmappe und lösche anschließend jeglichen Code in der Arbeitsmappe (gefunden hier im Forum):
With ActiveWorkbook.VBProject
For Each vbc In .VBComponents
Select Case vbc.Type
Case 1, 2, 3: .VBComponents.Remove .VBComponents(vbc.Name)
Case 100
With vbc.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
Dieser Code arbeitet bei mir einwandfrei, läuft aber auf einem anderen Rechner nicht und führt zu einem Fehler.
Muß ich irgendwelche Verweise setzen oder was ist die Ursache?
Bin für jeden Hinweis dankbar und sage jetzt schon danke für die Hilfestellung.
Gruß
Volker

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array - Formel Problem
14.03.2006 17:05:52
{Boris}
Hi Volker,
vorab:
Die letzte verwendete Spalte in Zeile 23 erhälst du in VBA mit der schlichten Anweisung:
Range("IV23").End(xlToLeft).Column
Weiterhin sind deine endlosen Pfad recht unübersichtlich. Bau doch mal ne Beispielmappe mit einem Minipfad (direkt ans Laufwerk angebunden). Dann wird´s etwas transparenter.
Zudem ist die Funktion SPALTE() nur ein Platzhalter für die Zahlen von:bis. Dafür ist der gesamte Pfad uninteressant.
Also aus
SPALTE('D:\Eigene Dateien\FinanzTools\Programme\ITO\Testordner\New Environment\Tool in Entwicklung\Projekte\[0001_Swissport_NCM_TPL_Desktop Services_270206.xls]Status'!$23:$23)
wird
SPALTE($23:$23)
bzw. noch einfacher:
SPALTE($1:$1)
(denn das hat natürlich mit der Zeile 23 nix zu tun - ist eben nur ein Platzhalter für die Zahlen 1 bis 256).
Grüße Boris
Anzeige
AW: Array - Formel Problem
15.03.2006 08:42:36
Volker
Hallo Boris,
danke für den Hinweis mit der Range-Formel. Ich denke, die hilft mir nicht weiter, denn ich muß in die Tabelle eine Formel einzutragen, die über eine Verknüpfung in einer anderen Arbeitsmappe abfragt, welche Spalte dort als letzte Inhalte aufweist (in Zeile 23). Dadurch entstehen auch die langen Pfade. Da erschien mir die Array-Formel aus dem Forum hilfreich und bei direkter Eingabe klappt sie auch einwandfrei.
Ich werde Deinen Hinweis aufgreifen und es mal mit kurzen Pfaden probieren.
Gruß
Volker
AW: Array - Formel Problem
14.03.2006 17:18:45
IngGi
Hallo Volker,
zu deinem 2. Problem:
Ich vermisse in deinem Codeschnipsel die Deklaration für die Variable vbc. Kann es sein, dass das Makro bei dir nur deshalb läuft, weil bei dir "Option Explicit" nicht gesetzt ist, bzw. das Makro bei den Rechnern, bei denen "Option Explicit" gesetzt ist nicht läuft, weil die Variablendeklaration fehlt? Nur so ne Idee.
Gruß Ingolf
Anzeige
AW: Array - Formel Problem
15.03.2006 08:52:17
Volker
Hallo Ingolf,
ich denke, ob die Option Explicit gesetzt ist oder nicht, spielt keine Rolle. Wenn die Arbeitsmappe auf einem anderen Rechner gestartet wird, ist die Info, ob Variablendeklaration erforderlich oder nicht, im Modul enthalten.
Meines Wissens bewirkt die Einstellung im VBA-Editor unter Extras-Optionen-Variablendeklaration erforderlich lediglich, dass bei jedem neuen Modul die Anweisung Option Explicit bereits eingetragen ist.
Deswegen ist es ja merkwürdig, daß auf meinem Rechner das Proggi einwandfrei läuft, auf dem Zielrechner hingegen an dieser Stelle hängenbleibt.
Gruß
Volker
Anzeige
AW: Array - Formel Problem
15.03.2006 11:01:17
Volker
Hallo zusammen,
das Array-Problem hat sich erledigt. Das Problem war der Pfad. Meine (zugegebenermassen nicht erstklassige Lösung) sieht nun so aus, daß ich die jeweilige Datei öffne, die Arrayformel erzeuge und die Datei schließe. Dann enthält die Formel auch den Pfad und funktioniert.
Danke an alle Ratgeber.
Gruß
Volker
AW: Array - Formel Problem
16.03.2006 12:17:51
Volker
Hallo zusammen,
abschließende Meldung:
auch das zweite Problem ist gelöst: Es liegt an den Sicherheitseinstellungen. Unter Extras - Makro - Sicherheit muß auf dem Reiter 'Vertrauenswürdige Herausgeber' die Option 'Zugriff auf Visual Basic Projekt vertrauen' mit einem Haken versehen werden.
Gruß
Volker
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige