Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten autom. in andere Tabellen ein- u. auslesen

Daten autom. in andere Tabellen ein- u. auslesen
22.05.2008 09:39:00
M
Werte Forumsgemeinschaft,
ich habe folgendes Problem:
Ich habe ein mathematisches Optimierungsprogramm, was durch einen Button über Excel aktiviert wird und selbststandig Daten in eine externe xls Tabelle schreibt, die dann in eine Ausgangstabelle übertragen werden sollen.
Aus dieser Ausgangstabelle also sollen gezielt Werte aus anderen externen xls Tabellen eingelesen werden, wenn der Button gedrück wird.
Zuerst sollen beim "Klick" die Rechenwerte alle auf "null" gesetzt werden, wenn das externe Optimierungsprogramm durchgelaufen ist und in die externe Exceltabelle alle Werte geschrieben wurden, sollen diese in die Ausgangstabelle übertragen werden.
Darüber hinaus sollen direkt nach dem "Klick" Werte aus der Ausgangstabelle in eine andere externe Exceltabelle geschrieben werden.
Schließlich sollen auf Basis von entsprechenden Eingabewerten in der Ausgangstabelle entsprechende Zeilen oder Spalten automatisch erzeugt werden. Wenn als z.B. im Tabellenblatt 1 in der Zelle B8 der Wert 10 steht, sollen im Tabellenblatt2 der Ausgangstabelle automatisch 10 Zellen mit definierten Formatierungen und/oder Formeln erstellt werden.
Das ganze würde ich gern über ein Makro (falls möglich) erzeugen. Ich habe schon viel geschaut, finde aber auf die vielzahl der Einzelprobleme keine brauchbare Lösung. Ich würde mich über Hilfestellungen oder evtl. den Verweis auf vorhande und leicht anpassbare Makros sehr freuen.
Vielen Dank und viele Grüße
M. H.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten autom. in andere Tabellen ein- u. ausles
22.05.2008 11:34:46
Armin
Hallo,
ich verstehe zwar auch nicht was Du eigentlich für ein Problem hast, aber ich finde es schöner wenn mein Kommunikationspartner einen Namen hat.
Zu Deiner Frage VBA-Code läuft nur bei aktiven Sheet, also muss selbiges geöffnet sein. Das ist eigentlich bei vielen Programmen so außer bei Diensten. Deine Darstellungen machen mich nicht wirlich schlau vielleicht kannst Du ein Sheet hochladen mit einem Beispiel.
Gruß Armin

AW: Daten autom. in andere Tabellen ein- u. ausles
22.05.2008 13:23:05
fcs
Hallo M.H.,
machen kann man in Excel mit Daten vieles. Für so einen koplexen Ablauf, wie er dir vorschwebt, wirst du keine halbwegs fertige Lösung finden. Also Auflösen des Problems in Teilprobleme - das hast du ja schon weitestgehend gemacht - und Lösungen für die Einzelprobleme suchen. Das hast du versucht, aber merkwürdigerweise nichts gefunden.
1.:
  • Ich habe ein mathematisches Optimierungsprogramm, was durch einen Button über Excel aktiviert wird und selbststandig Daten in eine externe xls Tabelle schreibt

  • Das funktioniert also schon?
    Wie heißt die Datei, wie die Tabelle, Wo kann Excel diesr Datei finden?
    2.: Woran soll Excel erkennen, dass das Optimierungsprogramm die Berechnung abgeschlossen und die Exceldatei erstellt hat? Wie lange dauert so ein Optimierungs-Rechengang?
    Dies ist aus meiner Sicht das schwierigste Problem.
    3.: die dann in eine Ausgangstabelle übertragen werden sollen.
    Wie heist die Tabelle (pfad, Dateiname, Tabellenname? Jedesmal die gleiche oder jeweils eine neue? Welche Daten/Tabellenbereiche sollen von wo nach wo übertragen werden?
    4.: Aus dieser Ausgangstabelle also sollen gezielt Werte aus anderen externen xls Tabellen eingelesen werden, wenn der Button gedrück wird.
    Wie heißen diese tabellen, Pfad, Dateiname, Tabellennamen?
    Welche Zellinhalte sollen wo gelesen und wohin geschrieben werden?
    5.: Zuerst sollen beim "Klick" die Rechenwerte alle auf "null" gesetzt werden,
    Workbooks("MappeXYZ.xls").Worksheets("tabelleABC").Range("B2:K100")=0
    
    wenn das externe Optimierungsprogramm durchgelaufen ist und in die externe Exceltabelle alle Werte geschrieben wurden, sollen diese in die Ausgangstabelle übertragen werden.
    


    6.:

    
    Darüber hinaus sollen direkt nach dem "Klick" Werte aus der Ausgangstabelle in eine andere externe Exceltabelle geschrieben werden.
    


    Wann soll das genau passieren? Vor oder nach dem Einlesen der neuen Optimierungsrechnungs-Daten?
    Pfad, Datei-, Tabellennamen
    7.:

    
    Schließlich sollen auf Basis von entsprechenden Eingabewerten in der Ausgangstabelle entsprechende Zeilen oder Spalten automatisch erzeugt werden. 
    

    Wann werden die Werte eingegeben? Vor dem Start des Makros in eine Tabelle oder sollen Eingabewerte vom Makro abgefragt werden?
    8.:

  • Wenn als z.B. im Tabellenblatt 1 in der Zelle B8 der Wert 10 steht, sollen im Tabellenblatt2 der Ausgangstabelle automatisch 10 Zellen mit definierten Formatierungen und/oder Formeln erstellt werden.

  • Gibt es das Tabellenblatt schon? Welcher Zellbereich bzw. wie erkennt Excel den? Welches Format soll es sein? Wie lauten die Formeln?
    Das ganze würde ich gern über ein Makro (falls möglich) erzeugen. Ich habe schon viel geschaut, finde aber auf die vielzahl der Einzelprobleme keine brauchbare Lösung.
    Außer zum Punkt 2 der ist ggf. schwierig, findest du zu jeder Fragestellung (Wie finde Ich etwas, wie übertrage ich Werte zwischen Tabellen, wie formatiere ich, wie schreibe ich Formeln in Zellen) viele Antworten. Evtl. auch zu viele und für einen VBA-Anfänger etwas unübersichtlich
    Ich würde mich über Hilfestellungen oder evtl. den Verweis auf vorhande und leicht anpassbare Makros sehr freuen.
    Sobald du deine Fragen auf Teillösunen konzentrierst, wirst du anpassbare Teillösungen finden.
    Da der Punkt 2 ggf. schwierig zu bearbeiten ist würde ich an deiner Stelle 2 Buttons einsetzen. Dein bisherigen, der die Optinmierungs-Rechnung startet.
    Ein 2. Button für den Rest, der Ergebnisse der Rechnung in die tichtigen Tabellen verteilt und sonstige Aktionen ausführt.
    Da hier verschiedene Arbeitsmappen und Tabellenblätter in die Aktionen involviert sind solltest du unbedingt für jede Arbeitsmappe und jedes Tabellenblatt immer eine entsprechende Objekt-Variable deklarieren.
    Dim objWbQuelle as Workbook, objWbZiel as Workbook
    Dim objWksQuelle as Workbook, objWksZiel as Worksheet
    oder auch andere aussagekräftige VariablenNamen.
    An passender Position im Code werden dann diesen Variablen die entsprechenden Objekte zugewiesen.
    Nachfolgend ein Beispielcode mit verschiedenen Funktionen.
    Gruß
    Franz
    
    Sub aatest()
    Dim objWbQuelle As Workbook, objWbZiel As Workbook
    Dim objWksQuelle As Worksheet, objWksEin As Worksheet, objWksAus As Worksheet
    Dim lngFarbIndex As Long, bolRahmen As Boolean
    Dim objBereich As Range, lngZeile As Long
    Set objWbZiel = Workbooks("DateiABC.xls") 'Datei muss geöffnet sein
    Set objWksEin = objWbZiel.Worksheets("Eingabe")
    Set objWksAus = objWbZiel.Worksheets("Ausgabe")
    Set objWbQuelle = Workbooks.Open(FileName:="C:\Test\Berechnung20080522_01.xls")
    Set objWksQuelle = objWbQuelle.Worksheets(1)
    'werte in Ausgabe übertragen
    With objWksAus
    'Zellen auf 0 setzen
    .Range(.Cells(1, 2), .Cells(1, 3)) = 0
    .Range(.Cells(2, 2), .Cells(15, 12)) = 0
    'Werte eintragen
    .Cells(1, 2) = objWksQuelle.Cells(1, 1)
    .Cells(1, 3) = objWksQuelle.Cells(2, 1)
    Set objBereich = .Range(.Cells(2, 2), .Cells(15, 12))
    With objWksQuelle
    objBereich.Value = .Range(.Cells(3, 1), .Cells(16, 11)).Value
    End With
    End With
    'Formatierungen im Ausgabeblatt abhängig Zellwerten im Eingabeblatt ausführen
    Select Case objWksEin.Range("B10").Value
    Case Is 


    Anzeige
    AW: Daten autom. in andere Tabellen ein- u. ausles
    24.05.2008 23:45:00
    M
    Hallo Franz,
    vielen dank für die vielen sehr nützlichen hinweise. gibt es auch eine Möglichkeit, dass die Tabelle, aus der die Daten ausgelesen werden, nicht mit geöffnet wird. Kurzum, die Daten sollen eigentlich unbemerkt aus der Tabelle kommen.

    AW: Daten autom. in andere Tabellen ein- u. ausles
    25.05.2008 13:59:50
    fcs
    Hallo M H,
    washeißt unbemerkt? Wer soll nichts merken? Der Ersteller Datendatei? = Spionage
    Der Excelanwender der die Daten in seine Datei lädt? Warum nicht?
    Excel muss ja den Zugriff auf die Datei in irgendeiner autorisierten Form haben. Da weiss hinterher zumindest das Betriebssystem das eine Dateioperation stattgefunden hat.
    Für den Excelanwender kannst du den Einblick/Zugriff auf die Datei einschränken/verhindern indem du während der Makroausführung die Bildschirmaktualisierung deaktivierst, die Datei schreibeschützt öffnest, und unmittelbar nach dem Einlesen der Daten wieder schließt. Dann ist die Datei nur Sekunden oder Sekundenbruchteile geöffnet.
    Gruß
    Franz

    Anzeige
    AW: Daten autom. in andere Tabellen ein- u. ausles
    26.05.2008 09:57:00
    M
    Hallo Franz,
    und vielen Dank für die Antwort. Ja, letzteres, dass die Datei nur Bruchteile von Sekunden geöffnet ist, das ist das, was mir vorschwebt. Der Excelanwender soll keinen Einblick in die Datei haben, da dort nur Zahlen drin stehen, mit denen er ohne die genauen Strukturen und Berechnungsvorschriften zu kennen nichts anfangen kann. Deswegen erscheint es mir sinnvoll, dass die Datei nicht sichtbar ist - und wenn nur kurz, so dass eine Wahrnehmung eigentlich ausgeschlossen ist. Die frage ist nur, wie ich das in das Makro reinschreiben. Gibt es da fertige Quelltexte dazu?
    Vielen Dank und Viele Grüße
    Marc

    Anzeige
    AW: Daten autom. in andere Tabellen ein- u. ausles
    26.05.2008 11:22:00
    fcs
    Hallo Marc,
    wie du inzwischen schon gemerkt haben solltest gibt es für VBA-Excel sehr viele Beispiel Prozeduren/Subroutinen. Allerdings sind die wenigsten universell einsetzbar.
    Meistens sind Prozeduren auf eine ganz spezifische Anwendung zugeschnitten. Für die eigene Anwendung muss man diese dann anpassen, wobei manchmal "nur" ein Verzeichnis- oder Dateinamen geändert werden muss.
    Dazu muss man sich dann allerdings auch ein paar Grundlagen der Pogrammierung unter Excel-VBA erarbeiten.
    Nachfolgend ein Beispiel, wie man Daten aus einer geschlossenen Datei in eine bereits geöffnete Datei einlesen kann
    Gruß
    Franz
    
    Sub aaTest()
    'Beispiel zum Einlesen von Daten aus externer Datei
    Dim objWbQuelle As Workbook, objWbZiel As Workbook
    Dim objWksQuelle As Worksheet, objWksZiel As Worksheet
    Application.ScreenUpdating = False
    'Zieldatei und Blatt festlegen
    '  Set objWbZiel = Workbooks("Zieldatei.xls")
    Set objWbZiel = ThisWorkbook
    Set objWksZiel = objWbZiel.Worksheets("Tab1")
    'Quelldatei öffnen und Quellblatt festlegen
    Set objWbQuelle = Application.Workbooks.Open(FileName:="C:\Test\Mappe1.xls", _
    ReadOnly:=True)
    Set objWksQuelle = objWbQuelle.Worksheets(1)
    'Code-Beispiel zum Übertragen von Daten von Quelle nach Ziel
    objWksZiel.Cells(2, 1).Range("A1:P10").Value _
    = objWksQuelle.Cells(1, 1).Range("A1:P10").Value
    'Quelldatei wieder schliessen ohne zu speichern
    objWbQuelle.Close savechanges:=False
    Application.ScreenUpdating = True
    End Sub
    


    Anzeige

    128 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige