Thema Datum  Von Nutzer Rating
Antwort
20.11.2014 07:42:53 Gast1450
NotSolved
20.11.2014 08:30:24 Jeansy
NotSolved
20.11.2014 09:14:56 Gast57545
NotSolved
20.11.2014 10:38:24 Gast1450
NotSolved
20.11.2014 12:34:10 Jeansy
NotSolved
20.11.2014 13:42:40 Gast57506
NotSolved
Rot Messdaten per Makro in geöffnetes Blatt einlesen
21.11.2014 08:23:11 Jeansy
NotSolved
21.11.2014 08:50:58 Gast21662
NotSolved
21.11.2014 09:22:22 Jeansy
NotSolved
21.11.2014 09:47:46 Gast59687
NotSolved
24.11.2014 09:45:38 Gast63153
NotSolved
24.11.2014 10:52:03 Gast47363
NotSolved
24.11.2014 14:46:49 Gast21924
NotSolved
25.11.2014 09:11:13 Jeansy
NotSolved
25.11.2014 10:51:29 Gast62889
NotSolved
26.11.2014 12:02:50 Gast24494
NotSolved

Ansicht des Beitrags:
Von:
Jeansy
Datum:
21.11.2014 08:23:11
Views:
1631
Rating: Antwort:
  Ja
Thema:
Messdaten per Makro in geöffnetes Blatt einlesen

Ok - ja jetzt íst es denke ich klar.

Dann habe ich nur noch zwei Fragen:

   Sind die Namen der Tabellen in Excel in allen Protokollen gleich?

   Sollen die Daten in allen Protokollen in die gleichen Felder ("Koordinate" z.B. A1:A10) bzw. haben die Felder in allen Tabellen den gleichen Namen?

 

Der Code könnte dann z.B. so aussehen:

public function copyData()
   Dim fd As FileDialog
   Dim file As String     
   Dim objApp, objWBSource, objWBTarget, objWSSource, objWSTarget As Object

   Set fd = Application.FileDialog(msoFileDialogOpen)    
   With fd
      'Mehrfachauswahl verbieten
      .AllowMultiSelect = False        
      .Title = "Zieldatei wählen..."
      'Filter löschen
      .Filters.Clear
      'Neue Filter hinzufügen
      .Filters.Add "Exceldateien", "*.xls; *.xlsm", 1    
      'Prüfen ob Abgebrochen wurde
      If .Show = -1 Then            
         file = .SelectedItems(1)        
      Else
         exit function       
      End If    
   End With         

    'Datei öffnen
    Set objApp = CreateObject("Excel.Application")
    Set objWBTarget = objApp.Workbooks.Open(file)

    Set objWBSource = ActiveWorkbook
    
    'Zieltabelle auswählen
    Set objWSTarget = objWBTarget.Worksheets("TARGET_SHEET_NAME")
    'Quelltabelle wählen 1.Zeile für eigenen Namen - 2. Zeile für aktive Tabelle
    Set objWSSource = objWBSource.Worksheets("SOURCE_SHEET_NAME")
    'Set objWSSource = ActiveSheet
    
    'Zellen Kopieren - Entweder einen ganzen Bereich z.B. Range("A1:A5") oder eine einzelne Zelle
    'z.B. Range("A1") oder eben über den Namen einer Zelle oder Zellbereichs Range("CELLNAME")
    'ggf. hier eine Schleife beginnen oder die nächsten Zeilen für jeden Datensatz einzeln
    'aufrufen
    'BEGIN COPY-PASTE-BLOCK
        'Quellworkbook aktivieren
        objWSSource.Activate 
        Application.CutCopyMode = False 
        objWSSource.Range("A1:A5").Copy 

        'und Einfügen an die passende Stelle
        objWSTarget.Range("A1").PasteSpecial 
    'END COPY-PASTE-BLOCK
    
   'Ziel speichern und schließen
   objWBTarget.Save 
   objWBTarget.Close 

   'Zurück zu Quelldatei wechseln
   objWBSource.Activate 
    
   'Speicher freigeben
   objApp.Quit
    
   Set objWSTarget = Nothing
   Set objWSSource = Nothing
   Set objWBTarget = Nothing
   Set objWBSource = Nothing
   Set objApp = Nothing
   Set fd = Nothing
end function

 Ich selbst habe noch nicht viel mit VBA in Excel gearbeitet, also gebe ich keine Garantie das es auf anhieb so funktioniert. Aber der Code sollte so oder so ähnlich aussehen. Wo du die Zeilen hinkopierst, weist du selbst am besten. Wenns nicht als Bereich oder über eine Schleife geht musst du leider den COPY-PASTE-BLOCK für jede Zelle einzeln aufrufen.

Hoffe ich konnte weiterhelfen.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
20.11.2014 07:42:53 Gast1450
NotSolved
20.11.2014 08:30:24 Jeansy
NotSolved
20.11.2014 09:14:56 Gast57545
NotSolved
20.11.2014 10:38:24 Gast1450
NotSolved
20.11.2014 12:34:10 Jeansy
NotSolved
20.11.2014 13:42:40 Gast57506
NotSolved
Rot Messdaten per Makro in geöffnetes Blatt einlesen
21.11.2014 08:23:11 Jeansy
NotSolved
21.11.2014 08:50:58 Gast21662
NotSolved
21.11.2014 09:22:22 Jeansy
NotSolved
21.11.2014 09:47:46 Gast59687
NotSolved
24.11.2014 09:45:38 Gast63153
NotSolved
24.11.2014 10:52:03 Gast47363
NotSolved
24.11.2014 14:46:49 Gast21924
NotSolved
25.11.2014 09:11:13 Jeansy
NotSolved
25.11.2014 10:51:29 Gast62889
NotSolved
26.11.2014 12:02:50 Gast24494
NotSolved