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

Prüfung in anderer Arbeitsmappe

Prüfung in anderer Arbeitsmappe
19.07.2008 12:13:10
Stefan
Hallo Freunde vom Excel-Forum,
Hat jemand einen Rat zu folgendem Problem:
Ich möchte in meiner Arbeitsmappe(1] eine Aktion ausführen wenn in einer Anderen Arbeitsmappe(2) in [Tabelle1!A1] der Wert "Wahr" steht!
'=========================================================================
Const Pfad As String = "C:\Desktop\"
Const Name As String = "Mappe1.xls"
If Pfad & Name & [Tabelle1!A1].Text= "Wahr" Then
'Aktion...
End If
'=========================================================================
Viele Grüße
Stefan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung in anderer Arbeitsmappe
19.07.2008 12:33:38
Daniel
Hi
Name ist ein VBA-Begriff und sollte daher nicht als Variablen- oder Constantenbezeichnugn verwendet werden, um Komplikationen und Verwechslungen auszuschließen.
die Frage ist, ob die Arbeitsmappe2 geöffnet oder geschlossen ist.
da es mit VBA nicht so ganz einfach ist, auf geschlossene Exceldateien zuzugreifen (zumindest kenne ich keine Möglichkeit), würde ich den Wert per Formel in die Arbeitsmappe1 einlesen:
bspw in Tabelle1!A1 folgende Formel eintragen:

='C:\Desktop\[Arbeitsmappe2.xls]Tabelle1'!$A$1


im Makro brauchst du dich dann nur auf diese Zelle beziehen und nicht auf die andere Arbeitsmappe.
auf diese Weise spielt es dann auch keine Rolle mehr, ob die andere Arbeitsmappe geöffnet oder geschlossen ist.


IF Sheets("Tabelle1").Range("A1").Value = "Wahr" then
bzw wenn der Wert als Wahrheitswert und nicht als  text drinsteht:
IF sheets("Tabelle1").range("A1").Value = TRUE


Gruß, Daniel

Anzeige
AW: Prüfung in anderer Arbeitsmappe
19.07.2008 16:36:39
Stefan
Daniel,
vielen Dank für die schnelle Antwort. Ja eine Möglichkeit wäre es schon den Wert einzulesen über z.B. Datenkonsolidieren.
Dennoch muss es auch möglich sein Wahrheitswerte in einer geschlossenen ungeschützten XLS-Datei abzufragen.
Auf Daten in anderen Arbeitsmappen kann man ja auch per Datenimport zugreifen.
Mein anliegen ist es Daten aus einer Exceldatei in eine Accessmappe zu importieren und zwar erst dann wenn sie vollständigt sind.
Gruß Stefan

AW: Prüfung in anderer Arbeitsmappe
19.07.2008 21:56:40
Daniel
Hi
generell mache ich es so, daß ich Excel-Dateien, aus denen ich Daten einlesen will, vorher öffne.
das vereinfacht die Makroerstellung und ist in der Regel auch deutlich schneller als das Zugreifen auf geschlossene Dateien (im Normalfall sind es ja etwas grössere Datenmengen, die da übertragen werden sollen)
andererseits, ist eine Fragestellung nicht eher ein Accesproblem?
dann wärest du hier im falschen Forum
Gruß, Daniel

Anzeige
Auf geschlossene Datei zugreifen ...
19.07.2008 22:36:00
Backowe
Hallo Stefan,
... hier mal ein Beispiel:
VBA-Code:
Option Explicit
Private Sub WerteAusGeschlossenerDateiAuslesen()
Dim rngZelle As Range
Application.ScreenUpdating = False
For Each rngZelle In ActiveSheet.Range("A1:B20")
  rngZelle = GetValue("J:\", "Test.xls", "Tabelle1", rngZelle.Address)
Next rngZelle
Application.ScreenUpdating = True
End Sub
Public Function GetValue(path$, file$, sheet$, range_ref$)
Dim arg As String
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) <> "" Then
  arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
    Range(range_ref).Range("A1").Address(, , xlR1C1)
  GetValue = ExecuteExcel4Macro(arg)
End If
End Function
Gruss Jürgen

Anzeige
AW: Auf geschlossene Datei zugreifen ...
20.07.2008 13:42:24
Stefan
Hallo Jürgen, vielen Dank für den Code
Mit ein klein wenig Umbau des Codes habe ich mein Problem gelöst.
Schönes Wochenende
Gruß Stefan

AW: Auf geschlossene Datei zugreifen ...
20.07.2008 14:46:03
Stefan
Noch einmal an Jürgen, wie gesagt deine Funktion läuft hervorragend.
Ich habe mir überlegt den Ausgabewert statt in Zelle [A1] besser in einer MsgBox anzeigen zu lassen ohne das er vorher in einer Zelle der aktiven Mappe abgelegt wird.
Hast du dafür auch eine Idee? Ich habe auch schon viel herumprobiert aber außer Fehlermeldungen nichts hinbekommen...
Gruß Stefan

MsgBox
20.07.2008 15:49:06
Backowe
Hallo Stefan,
VBA-Code:
Option Explicit
Private Sub WerteAusGeschlossenerDateiAuslesen()
MsgBox GetValue("J:\", "Test.xls", "Tabelle1", [A1].Address)
End Sub
Public Function GetValue(path$, file$, sheet$, range_ref$)
Dim arg As String
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) <> "" Then
  arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
    Range(range_ref).Range("A1").Address(, , xlR1C1)
  GetValue = ExecuteExcel4Macro(arg)
End If
End Function
Gruss Jürgen

Anzeige
AW: MsgBox
21.07.2008 16:41:00
Stefan
Hallo Jürgen, alles Ok
Vielen Dank und viele Grüße
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige