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

Zugriff auf Variabel anderer Datei

Zugriff auf Variabel anderer Datei
12.03.2022 10:41:28
Florian
Moinsen,
kann ich mit VBA auch auf eine Konstante einer anderen Datei zugreifen, um zu prüfen, ob diese einen bestimmten Inhalt hat?
Hat jemand ein Codebeispiel dafür?
Danke euch!! :)

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriff auf Variabel anderer Datei
12.03.2022 10:55:38
{Boris}
Hi,
z.B. so:
In der "anderen" Datei (in meinem Beispiel: Mappe1.xlsm)

Public Property Get s() As String
s = "Ich bin die Konstante aus der anderen Mappe"
End Property
Und so greifst Du darauf zu:

Private Sub Zeige_meinen_Wert()
MsgBox Workbooks("Mappe1.xlsm").s
End Sub
Die "andere" Datei muss aber geöffnet sein.
VG, Boris
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:01:45
Florian
Ok, geht das auch ohne das ich in der anderen Datei diese Sub hinzufüge?
ich will nämlich auf die Konstanten von Dateien zugreifen, die schon im Umlauf sind und ich somit nicht mehr ändern kann. Dort habe ich die Konstanten so deklariert:

Public Const p_cstrAppStand As String = #2/10/2022#

Anzeige
Keine Ahnung...
12.03.2022 11:04:20
{Boris}
Hi,
...wie und ob das geht. Möglicherweise mit parsen durch die einzelnen Codezeilen im VBA-Projekt auf der Suche nach "p_cstrAppStand".
Ich stell auf offen.
VG, Boris
Teste mal:
12.03.2022 11:13:58
{Boris}
Hi,
lass mal laufen:

Sub finde_mich()
Dim VBComponente As Object
Const strFile As String = "Mappe1.xlsm" 'Hier den korrekten Zielmappennamen angeben
Dim SuchString As String
Dim Treffer As Integer
Dim i As Long
Dim CodeZeile As String
SuchString = "p_cstrAppStand" 'Hier den gesuchten String angeben - gesucht wird nach: enthält
For Each VBComponente In Workbooks(strFile).VBProject.VBComponents
' prüfen, ob das VBObject Codezeilen enthält
If VBComponente.CodeModule.countoflines  0 Then
For i = 1 To VBComponente.CodeModule.countoflines
CodeZeile = VBComponente.CodeModule.Lines(i, 1)
' prüfen, ob der Suchstring in der Codezeile vorkommt
If InStr(1, CodeZeile, SuchString)  0 Then
MsgBox CodeZeile, vbOKOnly, "Treffer!"
Exit Sub
End If
Next i
End If
Next VBComponente
End Sub
VG, Boris
Anzeige
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:15:21
onur
Das ist aber nicht Variabel, sondern, wie der Name schon vermuten lässt, KONSTANT, und kann somit nicht mehr verändert werden.
Was genau willst du denn erreichen und wozu? Vielleicht geht es auch viel einfacher.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:30:36
Florian
Ziel ist zu prüfen, ob die Datei, auf die ich zugreife (und letztlich Daten übernehme) einen bestimmten Versionsstand hat, den ich in einer Konstante gespeichert habe.
Für andere Ideen zur Lösung bin ich natürlich auch offen ;)
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:32:10
onur
ICH würde die Versions-Nr einfach in den Dateinamen übernehmen.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:50:59
Florian
Problem ist ja aber, dass die Quell-Dateien schon hundertfach in Umlauf sind und ich nicht weiss, ob jeder die Versionsnummer im Dateinamen hat stehen lassen.
Anzeige
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:55:14
onur
Sind die Quell-Dateien in den div. Rechnern immer im gleichen Ordner?
Wenn ja, kannst du mit einem Makro alle diese Dateien öffnen, Versionsnummer auslesen und in den Dateinamen einbauen lassen.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:10:01
Florian
Nein, jeder speichert die Datei so wie und wo er/sie will.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:11:41
onur
Aber er mus sie doch öffnen, oder?
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:28:35
Florian
Ja, die wird per VBA geöffnet, um Daten daraus auszulesen und in meine Zieldatei zu kopieren. Vor dem Kopieren will ich prüfen, ob die ausgewählte Datei einen bestimmten Versionsstand hat.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:30:00
onur
Genau dabei könnte man auch die Datei umbenennen, egal wo sie gespeichert wurde.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:30:44
Florian
Ich verstehe nicht, was Du meinst. Wer soll die Datei umbenennen?
Anzeige
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:33:47
onur
Aus "ZieldateiA.xlsm" z.B. "ZieldateiA-V02012022.xlsm" machen.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 15:09:35
Florian
Aber dann muss der Anwender ja die Datei immer korrekt benennen. Das macht zusätzlich Aufwand und ist ist fehleranfallig. Dann kann ich dem Datenimoort ja auch ohne jegliche Prüfung anstoßen in der Vermutung, daß sowieso immer die richtige Dateiversion ausgewählt wird.
AW: Zugriff auf Variabel anderer Datei
12.03.2022 22:01:00
onur
Tja, dann viel Spass noch.
AW: Zugriff auf Variabel anderer Datei
13.03.2022 00:17:23
Florian
Danke, Spass habe ich immer 😊
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:38:52
{Boris}
Hi,
ich habe Dir ja einen Code gepostet, der die entsprechende Konstante in den Codezeilen sucht (und findet). Für die Zukunft würde ich den Versionsstand irgendwo in der Mappe abspeichern (kannst das Blatt ja ausblenden). Vergib dieser Zelle noch einen einheitlichen Namen, z.B. Version - und Du kannst die Zellwerte ganz bequem per einfacher Zellverknüpfung abfragen. Dafür müssen die Quellmappen nicht mal geöffnet werden.

='C:\Users\boris\OneDrive\Dokumente\Excel\Forum Testdateien\Mappe1.xlsm'!Version
Pfad natürlich anpassen.
VG, Boris
Anzeige
AW: Zugriff auf Variabel anderer Datei
12.03.2022 11:52:06
Florian
Ja, das mach ich seit einer Weile auch so. Aber damals in den jungen Jahren war ich gedanklich noch nicht so weit :D
Liest Du eigentlich...
12.03.2022 11:57:38
{Boris}
Hi,
...alle Antworten? Für Deinen Status quo, der im Moment ja nicht zu ändern ist, hast Du einen Code bekommen, zu dem Du noch kein Wort gesagt hast.
VG, Boris
AW: Liest Du eigentlich...
12.03.2022 12:10:16
Florian
Den Code teste ich gleich noch :)
Das versteh wer will....
12.03.2022 12:30:52
{Boris}
Hi,
...Du diskutierst hier munter weiter - und am Ende läuft darauf hinaus, dass Du im Status quo den Versionsstand aus den Codezeilen auslesen musst. Nur diesen Code testest Du nicht.
Ich mach dann mal den Hajo und trink mir ein Papierkörnchen ;-)
VG, Boris
Anzeige
AW: Zugriff auf Variabel anderer Datei
12.03.2022 12:10:39
Daniel
Hi
Solche Informationen kannst du so ablegen
- auf einem Tabellenblatt in einer Zelle
Da kannst du auch drauf zugreifen, wenn die Datei noch geschlossen ist, per Formel mit externen Zellbezug.
- in einem Excel-Namen , den kann man auch in der geschlossenen Datei lesen
- in einer der BuiltInDocumentProperties
- in einer CustomDocumentProperty
DocumentProperties sind so Hinweise wie Autor, letzte Änderung usw., da gibt es auch ein Freitextfeld
CustomDocumentProperties sind dann eigene Eigenschaften.
Auf die CustomDocumenProterties kannst du nur per VBA zugreifen, sie sind für den Anwender nicht sichtbar.
Am einfachsten ist wahrscheinlich die Excelzelle.
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige