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

Per Eingabeüberwachung Daten aus anderm Workbook

Per Eingabeüberwachung Daten aus anderm Workbook
17.11.2012 09:01:47
Kai
Hallo zusammen,
ich möchte bei einem überwachtem Tabellenblatt bei Änderung der Inhalte auf die Daten einer anderen Arbeitsmappe zugreifen.
Hier mein leider nicht Erfolgreicher Versuch:

Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("A1:A600"))
If Target Is Nothing Then Exit Sub
pfad = ActiveWorkbook.Path
If Target.Value  "" Then
Workbooks.Open Filename:=pfad & "\tm2"
For i = 1 To 20
If Cells(i, 1) = Target.Value Then
eintrag = Cells(i, 3)
End If
Next i
Workbooks("tm2.xls").Close False
Cells(Target.Row, 7) = eintrag
End If
Set Target = Nothing
End Sub

Bin für jede Hilfe dankbar, vielleicht habe ich ja auch den falschen Ansatz und jemand hat eine bessere Idee.
mfg
Kai

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Eingabeüberwachung Daten
17.11.2012 10:33:18
Hajo_Zi
Hallo Kai,
Change wirkt nicht bei Formeln, da muss es
Private Sub Worksheet_Calculate()
was aufwendiger ist.
Schaue mal auf diese Seite
http://hajo-excel.de/vba_bild_formel.htm
da werden Bilder mittels Formeln eingefügt.

Im Change-Ereignis Daten aus anderer Mappe
17.11.2012 10:59:11
Erich
Hi Kai,
wo ist das Problem bei deinem Code?
"mein leider nicht Erfolgreicher Versuch" ist als Fehlerbeschreibung wenig hilfreich.
Was genau geht nicht? Fehlermdlungen? Wenn ja - in welcher Zeile?
Sollen wir das, was du schon weißt, erst an einem Nachbau ermitteln?
Schau dir das mal an:

Option Explicit               ' immer zu empfehlen!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Not Intersect(Target, Range("A1:A600")) Is Nothing Then
If Target().Value  "" Then
Workbooks.Open Filename:=ActiveWorkbook.Path & "\tm2.xls"
With ActiveWorkbook.Worksheets(1)
For i = 1 To 20
If .Cells(i, 1) = Target.Value Then
Application.EnableEvents = False
Cells(Target.Row, 7) = Cells(i, 3)
Application.EnableEvents = True
Exit For     ' falls Ende nach 1. Treffer
End If
Next i
End With
Workbooks("tm2.xls").Close False
End If
Set Target = Nothing
End If
End Sub
Ein Hauptproblem deines Codes:
Wenn du schreibst Cells(i, 1) oder Cells(i, 3) - welche Zellen sind dann gemeint?
VBA nimmt, da der Code zu einem Tabellenblatt gehört, die Zellen aus diesem Blatt.
Du meinst aber die Zellen in der gerade geöffnetenm fremden Mappe. Das musst du VBA dann auch sagen.
Noch eine Bemerkung:
Zellen gehören zu Blättern. Es reicht i. A. nicht aus, eine Mappe zu öffnen und dann Cells(1,1) zu verwenden.
A1 welches Blatts der Mappe soll es sein? Worksheets(1).Cells(1,1) bringt Klarheit.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Im Change-Ereignis ... korrigiert
17.11.2012 11:01:39
Erich
Hi Kai,
sorry, da fehlte der Punkt vor Cells(i, 3).
Noch mal:

Option Explicit               ' immer zu empfehlen!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Not Intersect(Target, Range("A1:A600")) Is Nothing Then
If Target().Value  "" Then
Workbooks.Open Filename:=ActiveWorkbook.Path & "\tm2.xls"
With ActiveWorkbook.Worksheets(1)
For i = 1 To 20
If .Cells(i, 1) = Target.Value Then
Application.EnableEvents = False
Cells(Target.Row, 7) = .Cells(i, 3)
Application.EnableEvents = True
Exit For     ' falls Ende nach 1. Treffer
End If
Next i
End With
Workbooks("tm2.xls").Close False
End If
Set Target = Nothing
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Im Change-Ereignis ... korrigiert
17.11.2012 20:40:10
Kai
Hallo Erich,
Danke der hilfe, trotz dürftiger Fehlerbeschreibung.
Das Problem war das, das Workbook geöffnet wurde, aber eben nicht auf die Daten zugegeriffen wurde.
Das hast Du richtig erkannt und mit deiner Hilfe funktioniert es jetzt auch.
Also nochmal danke für die schnelle und kompetente hilfe.
@ Hajo, danke auch für deine Mühe, aber es ging nicht um Formeln.

AW: Im Change-Ereignis ... korrigiert
18.11.2012 10:28:29
Hajo_Zi
Es Stand es werden Werte aus andereer Datei übernommen, wie macht man das ohne Formel?
Eine Formel beginnt mit "="
Gruß Hajo

Anzeige
Es geht nicht um Formeln
18.11.2012 10:39:17
Erich
Hi Hajo,
ich glaube, da bist du auf einem falschen Gleis.
Stell dir mal vor, in Kais Tabellenblatt steht überhaupt keine Formel.
In diesem ganzen Thread sind Formeln unwichtig.
Er will bei bestimmten Änderungen (z. B. Eingaben) Werte aus einer anderen Mappe übernehmen, aber
nicht per Formel, sondern per einfacher Zuweisung Cells(x,y) = ... in VBA.
Kais Problem ist nicht, dass Change bei Wertänderungen von Formel nicht ausgelöst wurd.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: Schönen Sonntag noch!

AW: Es geht nicht um Formeln
19.11.2012 00:31:53
Kai
Hallo Erich, hallo Hajo,
Erich hat es genau richtig erkannt und jetzt funktioniert es auch.
Aber trotzdem danke der mühe.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige