Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit VBA anderes Blatt gezielt Zellen auslesen ?

Forumthread: Mit VBA anderes Blatt gezielt Zellen auslesen ?

Mit VBA anderes Blatt gezielt Zellen auslesen ?
05.08.2002 23:20:44
Rudolf Knoblach
Mit VBA anderes Blatt gezielt Zellen auslesen ?
Geht das überhaupt ?

Hallo Vielleicht kann mir (blutigen Anfänger in Excel und VBA)
ein Excelspezialist weiterhelfen !

Ich habe folgendes Problem

ich möchte folgenden EXCEL Zelleneintrag der mir den Inhalt
einer Zelle der Tabelle1 in der Datei (..\PFAD\Preis.XLS) liest
und in die Zelle eines anderen Blattes übernimmt.
Als Excel habe ich es so gelöst:

='C:\PFAD\[Preis.XLS]Tabelle1'!A7

das funktioniert soweit

jetzt möchte ich das ganze in VBA nutzen so das ich
einen String den Inhalt einer Zelle einer beliebigen
Excel Datei zuweisen und verarbeiten kann. Jetzt soll
auch nicht mehr A7 als Zelle ausgewählt sein, sondern
mit den Variablen Zeile, Spalte und Datei.

Wer kann mir einen Tip geben ?

es soll dann ungefähr so ausehen :

inhalt = Ausdruck (Pfad, Datei , Spalte, Zelle)

Vielen Dank !

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mit VBA anderes Blatt gezielt Zellen auslesen ?
06.08.2002 00:00:51
Nike
Hi,
ich kann dir noch nicht so ganz folgen...
Also, wenn ich Deine letzte Beschreibung so anschaue,
dann bist du da noch sehr nah an einer Funktion im
Blatt selbst, das könnte z.B. die Funktion "Indirekt" sein,
schau dir mal dazu die Hilfe (F1) an.
Ansonsten ist mit VBA so ziemlich (fast) alles möglich ;-)
Bestes Beispiel sind die verrücktesten Lösungen , die hier
so besprochen werden...
Was du z.B. mit vba alles machen könntest, wäre einen
Dialog zu erzeugen, die den Benutzer auffordert eine Datei
(z.B. die Quelldatei) auszuwählen, die dann automatisch geöffnet
werden würde, als nächste würde entweder automatisch eine
bestimmte Zelle ausgewählt, der Inhalt kopiert und in eine
bestimmte Zelle eingefügt werden, auch wäre die Möglichkeit einer
Quellzellenauswahl bzw Zielzellenauswahl gegeben, wie Du siehst,
ist viel möglich mit vba...

Am besten du stöberst ein wenig im Archiv mit den Stichworten Öffnen Dialog...
Ich brauche wohl nicht gesondert zu erwähnen das die CD von Hans
recht empfehlenswert ist ;-)

Natürlich ist es für den Anfang nicht einfach eine komplexe
Logik zu programmieren, aber es ist auch nicht sehr sinnvoll
sich von Spezies Kilometerlange hochkomplexe Skripte
schneidern zu lassen, die man selbst nicht versteht...
Wenn es dann Zeit ist, Änderungen durchzuführen, wird`s kritisch ;-)

So ein etwas schwierigeres Ziel ist aber immer ein guter Aufhänger um sich in eine Materie hineinzuarbeiten...

Also, viel Spaß beim stöbern und lernen...

Bye

Nike

Anzeige
Re: Mit VBA anderes Blatt gezielt Zellen auslesen ?
06.08.2002 22:15:48
Rudolf Knoblach
Hallo Forum & Nike Spaß habe ich genug !
ich habe da was im forum gefunden unter

https://www.herber.de/forum/messages/145032.html

da heißt es am Ende
Function CLink(strLink As String)
CLink = ExecuteExcel4Macro(strLink)
End Function

Was ist bitte ExecuteExcel4Macro(strLink) ?

Ist dies ein Makro aus irgendeiner Standardbibliothek ?
oder hat dies jemand ?
Dies würde mir unwahrscheinlich weiterhelfen.
"Mein" aus stücken zusammengekupferter Code schaut jetzt so aus:


Private Sub CommandButton5_Click()
Dim speicher As Long, zeile As Long, spalte As Long
Dim dateipfad As String, inhalt As String
zeile = 12


With Worksheets(1).Cells(zeile, 3)
.Value = .Value + 1
zeile = .Value

dateipfad = "'[Haendler.xls]Tabelle1'!R" & zeile & "C" & spalte
inhalt = Clink(dateipfad)

End With
Worksheets(1).Application.Visible = True
Worksheets(1).Cells(zeile, 6).Value = inhalt
Worksheets(1).Select
End Sub
Function Clink(strLink As String)
Clink = ExecuteExcel4Macro(strLink)
End Function


Anzeige
Re: Mit VBA anderes Blatt gezielt Zellen auslesen ?
07.08.2002 02:52:06
Nike
Hi,

Was ist bitte ExecuteExcel4Macro(strLink)?
Das sind noch Übereste aus vergangenen Tagen,
als wir noch an PC`s mit Handkurbel saßen ;-)
Ne ne, Quatsch beiseite, das ist eine Funktion,
die aus unerfindlichen Gründen von MS mmer noch weiter
unterstützt wird, Sie stammt aus ner alten Version,
ob es nun 4 war oder 5 kann ich dir nicht sagen.
Sinn der Funktion ist es Werte aus ungeöffneten Dateien
quasi zu saugen...
Mir war diese Funktion noch nie geheuer, hab sie auch
nie eingesetzt, da mir das Risiko zu groß war bei
Zugriffskonflikten die Datei zu lynchen...

Funktioniert denn dein COde so wie du ihn da gepostet hast?

Bye

Nike

Anzeige
Re: Mit VBA anderes Blatt gezielt Zellen auslesen ?
08.08.2002 11:54:09
Rudolf Knoblach
Hallo Nike

leider funktioniert der Code nicht !
es gab einen Fehler das war aber weil der
Variable Spalte kein Wert zugewiesen war.

Wenigstens gibts keine Fehlermeldung mehr =:o)
Aber bewirken tut das Ding monentan nichts =:(

Der Sinn der Funktion ist es Werte aus ungeöffneten Dateien
quasi zu saugen...
wie du sagtst ist eigentlich der den ich brauche !
wäre mir dann auch egal wenns mit Kurbel funktioniert!
Oder weiß noch jemand einen Anlasser ?!

Oder gebt mir mal einen Tip welcher VBA Befehl das auch
kann !
Viel Spaß noch kann mann allen nur wünschen.

MFG

Rudi

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zellen mit VBA aus einem anderen Blatt auslesen und kopieren


Schritt-für-Schritt-Anleitung

Um mit VBA eine Zelle aus einem anderen Tabellenblatt auszulesen und in dein aktuelles Blatt zu kopieren, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne das VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (dein Arbeitsbuch)“ und wähle Einfügen > Modul.

  3. Gib folgenden Code ein:

    Sub ZelleAuslesenUndKopieren()
       Dim dateipfad As String
       Dim inhalt As Variant
       Dim zeile As Long
       Dim spalte As Long
    
       dateipfad = "C:\PFAD\Preis.XLS"
       zeile = 7
       spalte = 1
    
       ' Wert aus einer Zelle auslesen
       inhalt = Workbooks.Open(dateipfad).Sheets("Tabelle1").Cells(zeile, spalte).Value
    
       ' Wert in das aktuelle Blatt einfügen
       ThisWorkbook.Sheets("AktuellesBlatt").Cells(1, 1).Value = inhalt
    
       ' Schließe die Quelldatei
       Workbooks("Preis.XLS").Close False
    End Sub
  4. Anpassen der Variablen: Ändere dateipfad, zeile, spalte und den Namen des Zielblattes nach deinen Bedürfnissen.

  5. Führe das Makro aus: Drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den dateipfad und stelle sicher, dass die Datei existiert.
  • Fehler: "Zelle nicht gefunden"

    • Lösung: Vergewissere dich, dass zeile und spalte gültige Werte sind und die Quelldatei die entsprechende Tabelle enthält.
  • Fehler: "Makro kann nicht ausgeführt werden"

    • Lösung: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.

Alternative Methoden

  • Verwendung der INDIRECT-Funktion: Wenn du keine VBA-Lösung verwenden möchtest, kannst du in Excel die INDIREKT-Funktion nutzen, um Werte aus einer anderen Arbeitsmappe zu ziehen:

    =INDIREKT("'C:\PFAD\[Preis.XLS]Tabelle1'!A7")
  • Excel-Funktionen: Nutze Excel-Funktionen wie SVERWEIS oder INDEX und VERGLEICH, um Daten zwischen Tabellen zu verknüpfen.


Praktische Beispiele

  1. Einfaches Auslesen einer Zelle: Wenn du den Wert einer Zelle in der aktuellen Tabelle speichern möchtest, kannst du den oben angegebenen Code verwenden und die Werte für zeile und spalte anpassen.

  2. Zellen in Schleife auslesen: Du kannst auch eine Schleife nutzen, um mehrere Zellen auszulesen:

    For zeile = 1 To 10
       inhalt = Workbooks.Open(dateipfad).Sheets("Tabelle1").Cells(zeile, spalte).Value
       ThisWorkbook.Sheets("AktuellesBlatt").Cells(zeile, 1).Value = inhalt
    Next zeile

Tipps für Profis

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass dein Makro bei einem Fehler kontrolliert abbricht:

    On Error GoTo Fehler
    ' Dein Code hier
    Exit Sub
    Fehler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Verwendung von Variablen: Nutze Variablen, um deine Codezeilen dynamischer und leichter wartbar zu gestalten.


FAQ: Häufige Fragen

1. Was ist ExecuteExcel4Macro? ExecuteExcel4Macro ist eine ältere Funktion, die es ermöglicht, Werte aus ungeöffneten Excel-Dateien auszulesen. Sie ist jedoch nicht die sicherste Methode.

2. Wie kann ich sicherstellen, dass die Quelldatei geöffnet wird? Im obigen Beispiel wird die Datei mit Workbooks.Open geöffnet. Achte darauf, dass der Pfad korrekt ist. Wenn die Datei nicht geöffnet werden kann, wird ein Fehler angezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige