Forum
Tipps
News
Menu-Icon

Excel VBA: Datenübernahme aus anderer Mappe abhängig von Änderung in einer Zelle

Hallo VBA-Programmierer,

ich benötige Hilfe bei folgendem Problem:
Ich habe in einer Arbeitsmappe verschiedene Daten zu Personen erfasst, wobei jeder Person eine Zeile zugeordnet ist und in den einzelnen Spalten die verschiedenen Daten erfasst sind. Jetzt möchte ich folgendes realisieren:
Die Daten einer Spalte sind veränderbar (Auswahllisten in den Zellen). Jetzt möchte ich bei Änderungen in den Zellen die Zelle rechts daneben mit Daten aus einer anderen Arbeitsmappe füllen, d. h. ich ändere z. B den Inhalt der Zelle A1 und in Abhängigkeit des Inhalts der Zelle holt sich Excel Daten aus einer anderen Mappe und füllt damit die Zelle B1. Die Zuordnung der Zellinhalte der einzelnen Mappen stellt dabei kein Problem dar. Vielmehr ist meine Frage, in welcher Ereignisprozedur ich die Anweisungen eingeben muss und wie dann die Übergabe der Daten aus Mappe 2 an Mappe 1 realisiert wird. Die Änderung der Zelle B1 soll auf die Änderung der Zelle A1 erfolgen.
Vielen Dank im Voraus. 


Antworten zu Excel VBA: Datenübernahme aus anderer Mappe abhängig von Änderung in einer Zelle:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... Du wirst ein Makro brauchen, um die Daten von Mappe 2 in Mappe 1 zu lesen oder zu kopieren.

Vielleicht hilft Dir dieser Ansatz:

http://www.office-loesung.de/ftopic48927_0_0_asc.php

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Da habe ich wohl bei meiner Problembeschreibung einen Fehler gemacht. Die Daten, welche ich in meine Tabelle einfügen will, befinden sich nicht in einer anderen Arbeitsmappe, sondern nur auf einem anderen Arbeitsblatt in der selben Arbeitsmappe.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... ich verstehe Deine Frage noch nicht.

Im Beispiel steht in Geraet.B1 ein Wert aus Fabrikat, abhängig vom Inhalt in Geraet.A1.

Wenn Geraet.A1 viele Werte annehmen kann, geht natürlich die Wenn-Dann-Sonst-Konstruktion nicht mehr.

Dann musst Du eine Routine schreiben, die für alle möglichen Werte in Geraet.A1 in Geraet.B1 die entsprechend aufzurufenden Zellen aus Fabrikat generiert.
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also ich will das Problem mal im Klartext schildern. In meiner Excel Arbeitsmappe geht es um Sportnormen. Im 1. Arbeitsblatt habe ich die Daten der einzelnen Personen (Spalte A - Name, Spalte B - Altersgruppe, Spalte C - Sportart, Spalte D - erforderliche Norm, Spalte E - erreichte Zeit). Die Daten in der Spalte C (Sportart) sind mittels einer hinterlegten Liste veränderbar. (z. B. Lauf, Schwimmen, Radfahren, ...). Die in Abhängigkeit von der Altersgruppe und der Sportart bestehenden Normzeiten stehen in einer zweiten Tabelle (je Altersgruppe eine Zeile, je Sportart eine Spalte. Wenn jetzt in Tabelle 1 bei einer Person die Sportart geändert wird (neue Auswahl aus Liste) soll das Programm die entsprechende Nomzeit aus Tabelle 2 holen und in die entsprechende Zelle der Spalte D der jeweiligen Person eintragen.
Ich hoffe dass jetzt mein Problem klar dargestellt ist.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... das sieht schon anders aus  ;D

Weil Du zwei Argumente zum Suchen des zutreffenden Wertes an Tabelle2 übergeben musst (Altersgruppe, Sportart), kannst Du Tabelle2 als Verweistabelle bauen und darauf in der Zelle der Tabelle1 je nachdem die Funktionen WVERWEIS, SVERWEIS oder VERWEIS anwenden.

Näheres in der Excell-Hilfe und in Tutorials  ;)

Edit: Übrigens kann die Verweistabelle ruhig mit in Tabelle1 liegen.

« Letzte Änderung: 31.07.12, 14:11:32 von hugenyn »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... kommste klar?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Danke für den Tipp, werde mich mal zur Verweisfunkion noch belesen müssen und es dann gleich mal ausprobieren. Sieht aber auf den ersten Blick wie die Lösung meines Problems aus. Vielen Dank.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

... gern geschehen.
Und wenn Du die Verweistabelle tatsächlich in einem anderen Tabellenblatt brauchst, änderst Du den Matrixteil der Verweisformel, hier
A13:E15
einfach auf
TabelleX.A13:TabelleX.E15
Viel Erfolg  ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Leider funktioniert die Funktion SVERWEIS nicht so ganz, wobei ich denke, dass es nicht an der Funktion liegt, sondern der Fehler wo anders sitzt. Wie ich bereits schrieb habe ich in den Zellen mit der Sportart eine Auswahlliste (Lauf, Walking, Schwimmen, Radfahren, Skilauf, ...) erstellt. Die Verweistabelle enthält die einzelnen Normzeiten abhängig von der Altersklasse. Wenn ich jetzt bei den einzelnen Personen die Sportart auswähle, so wird bei den Sportarten Lauf, Schwimmen und Skilauf die Richtige Normzeit in die entsprechende Spalte eingetragen. Wähle ich jedoch Walking so erscheint in der Zelle die Normzeit vom Skilauf und wähle ich Radfahren, so erscheint die Normzeit vom Lauf. Es sind jedoch in der Verweistabelle unterschiedliche Zeiten eingetragen. Das Problem tritt bei allen Altersklassen auf. Weiss vielleicht jemand, wo der Fehler liegt? 

« Letzte Änderung: 02.08.12, 12:41:58 von Earendil13 »

Die Funktion mal genau studieren. Sie hat noch mehr Parameter, darunter auch >Sortieren<  ;D


« Batch: Mindestlänge von eingabe Prüfen?Programmieren nur mit Editor »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Datenbank
Eine Datenbank (DBS), im englischen database, ist eine strukturierte Datensammlung und fungiert wie ein "digitales Archiv". Datenbanken dienen der effizienten Aufbewahrun...

Datenkompression
Siehe komprimieren. ...

Datenrate
Die Datenrate, oft auch als Datenübertragungsrate oder Datentransferrate bezeichnet, gibt an, wie viele Daten in einer bestimmten Zeiteinheit (meistens pro Sekunde) ...