Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBA: mehrere Zellen aus anderer Datei auslesen (ohne diese zu öffnen)

Mitglied: BerndVorwerk

BerndVorwerk (Level 1) - Jetzt verbinden

22.08.2014 um 14:49 Uhr, 9080 Aufrufe, 1 Kommentar

Hallo an alle,
ich muss mich mal wieder mit einer Frage an alle Excel Experten wenden.
Ich möchte per Makro mehrere Zellen einer anderen Exceldatei, die im selben Ordner abgelegt ist, auslesen.
Mit folgendem Makro funktioniert das für eine Zelle einwandfrei.

  • Private Sub Worksheet_activate()
    • Range("A10") = GetValue([a1], [a2], [a3], [a4])
  • End Sub

  • Private Function GetValue(path As String, file As String, sheet As String, ref As String) As String
    • Dim arg As String

    • path = ActiveWorkbook.path
    • file = "test1.xls"
    • sheet = "Tabelle1"
    • ref = "B1"

  • arg = "'" & path & "\[" & file & "]" & sheet & "'!" & _
      • Range(ref).Range("A1").Address(, , xlR1C1)

  • GetValue = ExecuteExcel4Macro(arg)
  • End Function

Ich muss leider gestehen, dass ich den Code im Detail nicht verstehe (ist nur kopiert ) So verstehe ich die [a1], [a2], ... hinter GetValue nicht, ebenso erzeugt die Zeile
      • Range(ref).Range("A1").Address(, , xlR1C1)
      Fragezeichen auf meiner Stirn.

      Wie muss ich den Code ändern, wenn ich nicht nur eine Zelle auslesen/einfügen möchte, sondern mehrere. (ausgelesen wird aus Datei "test1", eingefügt wird in Datei "Ziel")
      Im Detail:
      Quelle (Tabellenblatt)Quelle (Zelle)Ziel (Tabellenblatt)Ziel (Zelle)
      Tabelle1A1Tabelle1A10
      Tabelle3D5Tabelle1E2
      Tabelle4F2Tabelle2B3

      Die Zellen aus denen kopiert wird und eingefügt werden soll sind also vollkommen unabhängig voneinander. Daher vermute ich, dass man die ganze Prozedur mehrmals hintereinander ausführen muss. Es sollen aber alle Zellen automatisch bei Aktivierung des Tabellenlattes 1 (WorksheetActivate) gefüllt werden.
      Vielleicht könnt ihr mir helfen.
      Freundicher Gruß,
      Bernd
Mitglied: colinardo
22.08.2014, aktualisiert um 19:44 Uhr
Hallo Bernd,
wenn du es damit machen willst sähe das für deinen Fall so aus:
01.
Private Sub Worksheet_Activate() 
02.
    Dim strPath As String, strFile As String 
03.
    strPath = "C:\Quellpfad" 
04.
    strFile = "Quellesheet.xlsx" 
05.
    Worksheets(1).Range("A10").Value = GetValue(strPath, strFile, "Tabelle1", "A1") 
06.
    Worksheets(1).Range("E2").Value = GetValue(strPath, strFile, "Tabelle3", "D5") 
07.
    Worksheets(2).Range("B3").Value = GetValue(strPath, strFile, "Tabelle4", "F2") 
08.
End Sub 
09.
 
10.
Private Function GetValue(ByVal path As String, ByVal file As String, ByVal sheet As String, ByVal ref As String) As String 
11.
    Dim arg As String 
12.
    arg = "'" & path & "\[" & file & "]" & sheet & "'!" & Range(ref).Address(, , xlR1C1) 
13.
    GetValue = ExecuteExcel4Macro(arg) 
14.
End Function
Du kannst die Zellen natürlich auch direkt via Formel miteinander verknüpfen, das Makro macht auch nichts anderes als das es diese Formel erst auswertet und dann nur den jeweiligen Wert in die Zelle ohne Formel einträgt.

Eine Verknüpfung zu einer Zelle in einem anderen Sheet via Formel sieht ja immer so aus:
='C:\Pfad\zur\[Quelle.xlsx]Tabelle1'!$A$1
Range(ref).Address(, , xlR1C1)
das hier macht nichts anderes als einen Zellbezug in die R1C1 Zellbezugsschreibsweise von Excel umzuwandeln. Diese beschreibt die Position einer Zelle anhand von Zeilen und Spaltenpositionen. Beispiel: Eine Zelle B3 würde in R1C1-Schreibweise so aussehen R3C2 (Row 3 Column 2 )

Grüße Uwe

p.s. Bitte nutze in Zukunft Code-Tags für deinen Quellcode: <code> Quellcode </code>. Merci.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
VBA Excel Mehrere Dateien auslesen
Frage von abuelitoMicrosoft Office7 Kommentare

Hallo an Alle, ich habe folgendes Problem: Ich habe einen Ordner, in diesem befinden sich mehrere xls-Dateien (ca. 2.000) ...

VB for Applications

Zellen aus anderer Excel-Mappe mit vba auslesen

gelöst Frage von speedy132VB for Applications3 Kommentare

Hallo zusammen, Ich habe eine Arbeitsmappe in der ich Werte aus einer anderen geschlossenen Arbeitsmappe auslesen möchte. Das ganze ...

VB for Applications

Excel VBA Eine oder mehrere Zellen Verschieben

gelöst Frage von batchnewbieVB for Applications2 Kommentare

Hallo, Ich habe in A1 eine Dropdown Liste mit den Werten 1, 2, 3. In A2, A3, A4 usw. ...

Microsoft Office

Bestimmte datenbereiche in excel auslesen aus mehreren excel dateien ohne zu öffnen vba

Frage von Controlling786Microsoft Office

Hallo Excel bzw. VBA Profis!!!! Also ich hab folgendes Problem: - Ich habe mehrere Excel-Dateien im Monat, diese enthalten ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 6 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 12 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server24 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...