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)

Frage Microsoft Microsoft Office

Mitglied: BerndVorwerk

BerndVorwerk (Level 1) - Jetzt verbinden

22.08.2014 um 14:49 Uhr, 8474 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
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 12 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 16 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...