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

VBA-Sverweis in externe Datei

VBA-Sverweis in externe Datei
17.11.2008 11:37:49
Stephan
Hallo zusammen,
ich habe mal wieder ein Problem.
Und zwar soll mit u. a. Code ein Sverweis auf eine externe Datei durchgeführt werden. Allerdings gibt es folgende Fehlermeldung: "Fehler beim kompilieren: Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft." Er markiert zusätzlich den Begriff "Workbooks". Dieses Makro habe ich derzeit einem Button zugewiesen, es soll aber nach Eingabe einer Auftragsnummer in Zelle C7 selbstständig ablaufen (Worksheet Selection_Change?!). Könnt ihr mir vielleicht weiterhelfen? Grüße, Stephan

Sub Sverweis()
[C8] = Application.VLookup(Range("C7"), Workbooks("T:\Bon\Pro\Avful\ planning.xls", Worksheets(" _
Tabelle1").Range("A5:P65536"), 2, False))
End Sub


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Sverweis in externe Datei
17.11.2008 12:01:00
Arthur
Hallo Stephan,
vermutlich fehlt Dir die Datei Plugin.ocx (sollte unter \Windows\system32 stehen. Im macroeditor kannst Du das unter References sehen, da steht unter Tools-references wahrscheinlich "Missing" beim Eintrag für Microsoft Active-X plugin.
Gruss
Arthur Dent
AW: VBA-Sverweis in externe Datei
17.11.2008 12:34:00
Stephan
Hallo Arthur,
danke zunächst für deinen Tipp. Du hast recht, mir fehlt dieses Plugin. Ich habe versucht es nachzuladen, aber dann kommt eine Fehlermeldung "Fehler beim laden einer dll". Was kann man denn in so einem Fall machen? Danke! Gruß, Stephan
AW: VBA-Sverweis in externe Datei
17.11.2008 12:35:00
Erich
Hallo Stephan,
wo geht die Klammer von Workbooks( wieder zu?
Probier mal

Sub Sverweis()
[C8] = Application.VLookup(Range("C7"), _
Workbooks("T:\Bon\Pro\Avful\ planning.xls").Worksheets("Tabelle1"). _
Range("A5:P65536"), 2, False)
End Sub

Vielleicht muss das Leerzeichen vor planning noch weg?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: VBA-Sverweis in externe Datei
17.11.2008 13:05:00
Stephan
Hallo Erich,
Danke für deinen Tipp. Ich habe es getestet, aber weder mit noch ohne Leerzeichen bei planning haut es hin. Stattdessen Fehlermeldung: Laufzeitfehler 1004 - Index außerhalb des gültigen Bereichs
Grüße, Stephan
AW: VBA-Sverweis in externe Datei
17.11.2008 13:26:34
Arthur
Hallo Stephan,
zunächst mal zum plugin.ocx Ich hatte den Fehler häufiger als ich ein Tool für viele User gebastelt hatte. Ich helfe mir dann immer damit, dass ich die Datei einfach direkt nach :\Windows\system32 kopiere. Danach funzt es i.d.R einwandfrei.
Zum Makro:
Probier doch mal die Vlookupformel händisch in C8 zu schreiben. Öffne dazu Deine Datei planning xls, und verwende die Formel sverweis (auf deutsch) bzw Vlookup auf Englisch also in etwa so:
= VLookup(C7;'T:\Bon\Pro\Avful\ [planning.xls]'Tabelle1';A5:P65536;2, False)
Dran kannst Du erkennen, ob es an Deinem Macro oder vielleicht an Deinen Daten liegt.
Gruss
Arthur Dent
Anzeige
AW: VBA-Sverweis in externe Datei
17.11.2008 14:42:00
Stephan
Hallo Arthur,
ich habe es wie von dir vorgeschlagen getestet. Bei VLookup und False zeigt er #NAME? an und beim SVERWEIS mit 0 für Falsch funktioniert es. Das ist schon sehr merkwürdig, aber er mag das Englisch wohl nicht. Gruß, Stephan
AW: VBA-Sverweis in externe Datei
17.11.2008 16:25:45
Erich
Hi Stephan,
mein voriger Beitrag war Müll.
Probier mal

Sub Sverweis()
With Range("C8")
.Formula = "=VLookup(" & Range("C7") & "," & _
"'T:\Bon\Pro\Avful\[planning.xls]Tabelle1'!A5:B65536, 2, False)"
.Formula = .Value
End With
End Sub

Wenn du die .Value-Zeile weglässt, bleibt die Formel in C7 stehen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: VBA-Sverweis in externe Datei
18.11.2008 11:54:33
Stephan
Hallo Erich,
Danke für deinen Vorschlag! Es funktioniert!
Es ist jetzt so, dass ich im Tabblatt "Tabelle1" mehrere Zellen habe, die bei einem Eintrag in die Zelle C7 automatisch den Sverweis ausführen sollen. Also ich gebe in Zelle C7 eine AuftragsNr. ein und in den Zellen C8,C9,C10,C15,C24,C27,C31 und C32 soll das Sverweis-Makro automatisch ausgeführt werden. Dazu müßte ich dieses Makro ja in ein Worksheet SelectionChange Ereignis packen. Könntest du mir dazu vielleicht einen Tipp geben, wie das auszusehen hat? Vielen Dank! Grüße, Stephan

Sub Sverweis()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveSheet.Unprotect Password:="xxx"
Application.Calculation = xlCalculationManual
With Range("C8")
.Formula = "=VLookup(" & Range("C7") & "," & "'T:\Bon\Pro\Afvul\[planning.xls]Tabelle1'! _
A5:P65536, 2, False)"
.Formula = .Value
End With
ActiveSheet.Protect Password:="xxx"
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Anzeige
AW: VBA-Sverweis in externe Datei
18.11.2008 17:39:00
Erich
Hi Stephan,
etwas Grundsätzliches verstehe ich an der ganzen Geschichte nicht:
Warum schreibst du nicht einfach die SVERWEIS-Formeln in die Zellen C8, C9 usw.?
Bei Änderung von C7 passen sich die Ergebnisse dann automatisch an.
Du brauchst hierfür kein Makro. Welches Ziel verfolgst du also mit dem Makro?
Noch eine Frage: Was meinst du mit
"in den Zellen C8,C9,C10,... soll das Sverweis-Makro automatisch ausgeführt werden"
Wenn in alle diese Zellen die selbe Formel geschrieben würde, hätten alle das selbe Ergebnis.
Was sollte sich pon Zelle zu Zelle ändern?
Und noch eine Frage:
In der Formel steht der Bereich A5:P65536. Ausgewertet (wegen der Spalte 2) wird aber maximal
A5:B65536, also nur bis Spalte B.
Noch eine Anmerkung zum bisherigen Code:
Statt

With Range("C8")
.Formula = "=VLookup(" & Range("C7") & "," & _
"'T:\Bon\Pro\Afvul\[planning.xls]Tabelle1'!A5:P65536,2,False)"
' kannst du auch einfach schreiben:
.Formula = "=VLookup(C7," & _
"'T:\Bon\Pro\Afvul\[planning.xls]Tabelle1'!A5:P65536,2,False)"
.Formula = .Value
End With

Dann steht nicht der Wert von C7 (als Zahl oder Text) in der Formel, sondern der Name der Zelle.
(Dann brauchst du nur noch ".Formula = .Value" wegzulassen...)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: VBA-Sverweis in externe Datei
19.11.2008 15:50:00
Stephan
Hallo Erich,
danke für deine Tipps! Da ich jetzt meinen Arbeitsplatz verlasse, bekommst du morgen direkt ein Feedback und ein paar Antworten auf deine berechtigten Fragen. Grüße, Stephan

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige