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

Dateien automatisch öffnen für Indirekt()

Dateien automatisch öffnen für Indirekt()
26.06.2019 13:46:14
SvB01
Hallo Zusammen,
Ich habe folgendes Problem und wäre für jede Hilfe sehr dankbar.
Ich möchte aus verschiedenen Exceldateien der Selben Struktur Daten auslesen. Die Anzahl der Dateien beläuft sich jedoch auf über 300 und somit komme ich mit SVERWEIS und INDIREKT() alleine nicht weiter, welche ja voraussetzen, dass die Dateien geöffnet sind.
Gibt es entweder eine Alternative dazu oder eine möglichkeit per VBA die Dateien im Hinergrund zu öffnen, dann die Daten per SVERWEIS und INDIREKT () auszulesen und automatisch auch wieder zu schließen?
Bestens Dank im Vorraus!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Du könntest es z. B. auf diese...
26.06.2019 14:14:58
SvB01
Das sieht super aus, ich werde es mal so versuchen.
Vielen Dank dir!
LG
AW: Dateien automatisch öffnen für Indirekt()
26.06.2019 14:17:17
Daniel
Hi
kommt darauf an, wie das ganze aufgebaut ist.
wenn du so eine Strukur hast, dass die Formeln nur einmalig aufgebaut werden müssen und dann aber unveränderlich sind, könntest du auch so vorgehen.
Das beschriebene Vorgehen gilt für den Fall, dass bswp die Dateinamen in Spalte A stehen und in Spalte B der jeweilige SVerweis auf diese Datei erfolgen soll:
1. erstelle eine Formel, welche die später benötigten Formeln als Text erstellt: ="=..."
und ziehe sie in die erforderlichen Zellen.
2. überprüfe nochmal, ob die erzeugten Texte korrekte Formeln darstellen und alle referenzierten Dateien und Tabellenblätter auch vorhanden sind.
3. kopiere die Zellen und trage sie an gleicher Stelle als Wert ein
4. markiere den Zellbereich und ersetze das "=" durch "=".
bei diesem Ersetzen wird Excel dann die Texte in die entsprechenden Formeln umwandeln.
Gruß Daniel
Anzeige
AW: Dateien automatisch öffnen für Indirekt()
27.06.2019 15:50:12
SvB01
Hallo Daniel,
Das ist ziemlich simpel und deswegen genial, Danke!
Ich versuche gerade das mit VBA zu automatisieren, aber das ersetzen von z.B. " =" durch "=" mit Replace o.ä. krieg ich gerade nicht hin.
Eine kleine Hilfe für mich als VBA-Neuling wäre super klasse!
Danke
AW: Dateien automatisch öffnen für Indirekt()
27.06.2019 16:09:05
Daniel
Hi
wenn du das Ersetzen in einem Makro mit Replace durchführst, müssen die Texte für die Formeln der amerikanischen Schreibweise entsprechen, nicht der deutschen! Dh:
- englische Funktionsnamen
- Komma als Parametertrennzeichen
- Punkt als Dezimalzeichen bei Zahlen
wie der Formeltext aussehen muss, kannst du so ermitteln:
1. schreibe eine Formel normal von Hand in eine Zelle
2. lasse dir dann im Direktfenster die für VBA benötigte Schreibweise mit ?Selection.Formula ausgeben.
Gruß Daniel
Anzeige
AW: Dateien automatisch öffnen für Indirekt()
28.06.2019 10:21:54
SvB01
Hi Daniel,
Replace war nur das Erste, auf das ich gestoßen war. Sich die amerikanische Schreibweise ausgeben zu lassen hat zwar geklappt, aber diese kann ich nicht als Formeln in meine Zellen eingeben, diese werden nicht als Formeln erkannt.
Bei der Suche in anderen Foren und Beiträgen haben schon einige Leute zumindest ähnliche Probleme gehabt, die dann vorgeschlagenen VBA-Codes funktionieren aber alle nur bedingt.
Ich hab auch versucht vor dem = noch ein Leerzeichen einzugügen und dieses dann per Trim z.B. zu entfernen, aber das hat alles nicht so geklappt.
Es würde ja reichen, wenn ich zum Beispiel diese Leerzeichen zu Beginn der Zellen in der gesamten Spalte entfernen könnte, oder?
Hast du eine Idee, wie ich nun am besten meine Formeln "Aktivieren" kann? Das Problem an sich ist ja gar nicht einmal so komplex...
Vielen Dank Dir!
Lieben Gruß
Anzeige
AW: Dateien automatisch öffnen für Indirekt()
28.06.2019 10:29:00
Daniel
Hi
wenn du mit deutschen Formeltexten arbeiten willst, funktioniert Replace nicht.
das braucht amerikanische Formeltexte.
für deutsche Formeltexte zu aktivieren, müsstest du mit einer Schleife über die generierten Texte laufen und diese so in echte Formeln wandeln:
dim Zelle as Range
for each Zelle in Range(...)
Zelle.FormulaLocal = Zelle.Text
Next
gruß Daniel
Mein Vorschlag fktioniert auch lokal-deutsch! owT
29.06.2019 03:08:19
Luc:-?
:-?
Man kann feste Verweise auch anders erzeugen, ...
28.06.2019 01:37:54
Luc:-?
…SVB,
aber ebenfalls mit VBA. Auch hier könnte eine Methode eingesetzt wdn, die sonst u.a. für eine selbstkorrigierende EingabeZelle ver­wen­det wdn kann. Da es sich hierbei ebenfalls um eine physische Entkopplung von veranlassender Fkt in einer ZellFml (UDF) und dem eigentlichen Ausführungsteil handelt, fktioniert das. Dieser Effekt wurde zuerst im Zusammenhang mit der Xl-Fkt HYPERLINK fest­ge­stellt, die aber eigentlich nicht benötigt wird und folglich durch die zielgerichtetere UDF ersetzt wird. Da Fktt in ZellFmln normalerweise die Änderung anderer Zelle und von Formaten untersagt ist, sollte man das Folgende sparsam einsetzen, obwohl es durchaus möglich ist, mehrere dieser Fmln auf einem Blatt bzw in einer Mappe zu verwenden. Es muss nur dafür gesorgt wdn, dass die ÜbernahmeFml (mit der UDF) nicht unnötig ausgelöst wird. Dazu kann auch die Verbindung der jeweils 3 benötigten Zellen beitragen. Die Fml-Zellen wdn dadurch bedingt geschützt und können nur noch gelöscht wdn (alle, mit der LöschTaste). Um die Rechnung zu wiederholen, darf dann nur der in der EditZeile sichtbare Inhalt durch Markieren und Löschen entfernt wdn. Sollen die andere Fml oder der transportierte Wert geändert wdn, muss der ZellVerbund vorübergehend aufgelöst wdn (Warnung kann ignoriert wdn)! Die VerbundZelle muss durch Übertragung des Formats einer MusterVerbundZelle (FormatPinsel!) gebildet wdn!
Auflistung:
A1 allgemeiner Teil des VerweisTextes → 'pfad\[#]blatt'!zelle
(ggf mit =ZELLE("dateiname") bzw =ZELLE("dateiname";zelle) ermittelt)
A2ff die (hier vollständigen) relevanten Dateinamen
VerbundZelle (oder 3 beliebig positionierte EinzelZellen, hier für den 1.Dateinamen)
1.Zelle: hier E2, ursprünglich leer
2.Zelle: hier F2, Übernahme-Fml =WENN(E2="";SendTo(E2;G2;1))
3.Zelle: hier G2, VerweisText-Bereitstell-Fml =WECHSELN(A$1;"#";A2)
(A2 kann natürlich durch eine Fml ersetzt wdn, die einen bestimmten Namen aus der Auflistung auswählt.)
Die UDF SendTo und ihre per vbMethode Evaluate physisch entkoppelte Hilfsprozedur Sent wdn in einem allgemeinen Modul (ggf auch eines aktiven AddIns) angelegt:
Option Explicit
Dim actState As Boolean

Rem Senden von ZellInhalt per ZellFml an andere Zelle
'   Vs2.2 -LSr -cd:20170202(Neufass) -1pub:20170202h -lupd:20190627t
Function SendTo(ZBereich, QBereich, Optional alsFormel As Boolean) As Boolean
actState = TypeName(ZBereich) = "Range" And TypeName(QBereich) = "Range"
If actState Then
If alsFormel Then
Evaluate "Sent(" & QBereich.Address & "," & ZBereich.Address & ",True)"
Else: Evaluate "Sent(" & QBereich.Address & "," & ZBereich.Address & ")"
End If
End If
SendTo = actState
End Function

Rem HilfsProzedur zur UDF SendTo
'   Vs2.2 -LSr -cd:20170202(Neufass) -1pub:20170202h -lupd:20190627t
Private Sub Sent(Von As Range, Nach As Range, Optional alsFormel As Boolean)
On Error GoTo fx
actState = Not (Von Is Nothing Or Nach Is Nothing)
If actState Then
If Nach.MergeCells Then Set Nach = Nach.MergeArea.Cells(1)
If alsFormel Then
Nach.FormulaLocal = "=" & Von: SendKeys "{F9}"
Else: Nach = Von
End If
Exit Sub
End If
fx: actState = False
End Sub
Morhn, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige

198 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige