Office: Daten aus Excel nach Excel importieren

Helfe beim Thema Daten aus Excel nach Excel importieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excelgötter! Gott sei dank ist Schatzi auf VBA umgestiegen *g* - so kann ich ihn weiter quälen! Folgendes: Mein VBA Code sollte mich bei... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von trottlbua, 21. Juli 2008.

  1. trottlbua Erfahrener User

    Daten aus Excel nach Excel importieren


    Hallo Excelgötter!

    Gott sei dank ist Schatzi auf VBA umgestiegen *g* - so kann ich ihn weiter quälen!

    Folgendes:

    Mein VBA Code sollte mich bei Klick auf einen Button fragen ob ich ein Worksheet wirklich aktualisieren möchte - bei ja - soll er mich nach der Datei suchen lassen wo die aktuellen Daten drin sind (Das WS aus der zu importierenden Datei nennen wir mal "Übersicht"). Sobald gefunden soll er das Worksheet "genaue Reinvestition" mit den in "Übersicht" gefundenen Werten überschreiben.

    Soweit klar?

    Vielen Dank für die Hilfe schon mal im Voraus!
     
    trottlbua, 21. Juli 2008
    #1
  2. miriki Erfahrener User
    Da fehlt es schon noch an einigen Details, aber grober Pseudo-Code:

    Code:
    Button_OnClick
    ok=msgbox
    if (ok=vbyes) then
        xls1=Application.GetOpenFilename
        if (xls1) then
            workbook.open xls1
            activeworkbook.worksheets("sheet1").activate
            activesheet.range("range1").copy destination:=thisworkbook.worksheets("sheet2").range("range2")
            workbooks(xls1).close
          else
            ' nichts?
        endif
      else
        ' nichts?
    endif
    Hilft das erstmal weiter? Zu den einzelnen Punkten (z.B. msgbox, getopenfilename usw.) läßt sich sich auch jeweils prima die F1-Taste benutzen.

    Gruß, Michael
     
    miriki, 22. Juli 2008
    #2
  3. trottlbua Erfahrener User
    Hallo!

    Danke für die erste Hilfe!

    Hab noch Probleme, und zwar:
    Code:
    Private Sub CommandButton1_Click()
    
    ok = MsgBox("Daten werden aktualisiert", vbYesNo, "Update")
    
    If (ok = vbYes) Then
        xls1 = Application.GetOpenFilename
        If (xls1) Then
            Workbook.Open xls1
            ActiveWorkbook.Worksheets("sheet1").Activate
            ActiveSheet.Range("range1").Copy Destination:=ThisWorkbook.Worksheets("sheet2").Range("range2")
            Workbooks(xls1).Close
          Else
            Exit Sub
            
        End If
      Else
        Exit Sub
        
    End If
    
    End Sub
    ich bekomme bei folgender Zeile einen Fehler:
    Code:
    If (xls1) Then
    Laufzeitfehler 13 - Typen unverträglich - ich verstehe nicht was passieren soll bei der Zeile!?! Kannst du mir bitte weiterhelfen?
     
    trottlbua, 23. Juli 2008
    #3
  4. miriki Erfahrener User

    Daten aus Excel nach Excel importieren

    Die Variable xls1 wird von GetOpenFilename mit einem Boolean-Wert ("wahr" oder "falsch") belegt, je nachdem, ob eine Datei ausgewählt wurde ("wahr"), oder ab "Abbrechen" gedrückt wurde ("falsch").

    die Zeile "if (xls1) then" ist nur eine Kurzform von "if (xls1=true) then". Und ich schätze mal, daß Du xls1 per DIM nicht als Boolean, sondern als irgendeinen anderen Typ (z.B. integer) deklariert hast.

    Gruß, Michael
     
    miriki, 23. Juli 2008
    #4
  5. trottlbua Erfahrener User
    hey - super schnelle Antwort!

    Hab sie jetzt definiert als boolean

    nächstes Problem:
    Code:
    xls1 = Application.GetOpenFilename
    Hier bleibt der Code hängen - wieder Laufzeitfehler 13

    Ideen?
     
    trottlbua, 23. Juli 2008
    #5
  6. miriki Erfahrener User
    Hmmm... Ich schrieb aber auch:
    Gruß, Michael
     
    miriki, 23. Juli 2008
    #6
  7. trottlbua Erfahrener User
    jaja - natürlich nachgesehen - in der Hilfe steht ich muss keine Werte (alle optional) bei getopenfilename hineinschreiben.

    Also - Code sieht jetzt so aus:
    Code:
    Private Sub CommandButton1_Click()
    Dim updatefile As Boolean
    boxoutput = MsgBox("Daten werden aktualisiert", vbYesNo, "Update")
    
    If (boxoutput = vbYes) Then
        updatefile = Application.GetOpenFilename("Tabellen (*.xls),*.xls")
        If updatefile Then
            Workbook.Open updatefile
            ActiveWorkbook.Worksheets("tabelle1").Activate
            ActiveSheet.Range("a1:z1000").Copy Destination:=ThisWorkbook.Worksheets("Tabelle2").Range("a1:z1000")
            Workbooks(updatefile).Close
          Else
            Exit Sub
            
        End If
      Else
        Exit Sub
        
    End If
    
    End Sub
    Also das Problem konnte ich nicht lösen.
    ThisWorkbook muss ich noch ersetzen - werde es mit einer Variablen versuchen die sich den Namen des Files in dem der Button ist merkt.

    Was ich auch nicht verstehe - wieso wird die variable updatefile als Boolean definiert - die soll sich doch den Pfad merken - oder?
     
    trottlbua, 23. Juli 2008
    #7
  8. miriki Erfahrener User

    Daten aus Excel nach Excel importieren

    Ähm, nicht ganz, aber da war ich auch etwas ungenau...

    Sie ist ein Variant (siehe OH letzter Absatz "Anmerkungen"), der bei Abbruch mit Boolean/false und bei Erfolg mit String/"Dateiname" belegt wird. Ist der String belegt, wird das aber auch als "true" in IF-Abfragen interpretiert. Ein "dim updatefile" oder "dim updatefile as variant" sollte da gehen.

    Das mit den 2 geöffneten workbooks, die man irgendwie auseinanderhalten muß, ist auch immer so ein Problem... Beim .open braucht man den kompletten Dateinamen inklusive Laufwerk und Pfad, beim workbooks() braucht man nur den Dateinamen selbst. Wenn es mit "active" und "this" nicht so recht klappen will, muß man den kompletten Dateinamen in seine Bestandteile zerlegen, also Laufwerk und Pfad abtrennen, um dann die Unterscheidung direkt mit workbooks() zu schaffen.

    Ich bin mir nicht sicher, ob es dafür fertige interne Routinen gibt. In Delphi gibt es dafür ExtractFilePath, ExtractfileName und Konsorten. In VBA habe ich mir gleichnamige Routinen selbst geschrieben. Ein bißchen Parsing von : und \ reicht da schon.

    Gruß, Michael
     
    miriki, 24. Juli 2008
    #8
  9. trottlbua Erfahrener User
    Hallo Michael!

    Hab es mit einem Kollegen mittlerweile geschafft - hier der fertige Code:

    Code:
    Private Sub CommandButton1_Click()
    
    Dim updatefile As Variant
    Dim boxoutput As Integer
    Dim Basisfile As Variant
    
    Dim wbimport As Workbook
    Dim wbactual As Workbook
    
    
     
    boxoutput = MsgBox("Sollen die Daten wirklich aktualisiert werden?", vbYesNo, "Update")
    
    If (boxoutput = vbYes) Then
        Set wbactual = Application.ActiveWorkbook
        
        updatefile = Application.GetOpenFilename("Tabellen (*.xls),*.xls")
        If updatefile <> False Then
            Set wbimport = Workbooks.Open(updatefile)
            wbimport.Activate
            Worksheets("Übersicht").Activate
            Basisfile = ActiveWorkbook.Name
            
              
                   
            ActiveSheet.Range("a1:i50").Copy
            wbactual.Activate
            Worksheets("Reinvest_explizit").Activate
             Range("A1").Select
                     
           Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Range("b16") = Basisfile
            Application.CutCopyMode = False
            wbimport.Close
          Else
         
            Exit Sub
            
        End If
      Else
        Exit Sub
        
    End If
    
    End Sub
    Danke für die Hilfe - werde gleich einen neuen Thread für eine andere Frage eröffnen *g*
     
    trottlbua, 24. Juli 2008
    #9
Thema:

Daten aus Excel nach Excel importieren

Die Seite wird geladen...
  1. Daten aus Excel nach Excel importieren - Similar Threads - Daten Excel Excel

  2. Excel icon fehlt

    in Microsoft Excel Hilfe
    Excel icon fehlt: Hallo zusammen ich habe das Icon aus Datei nicht um Daten abzurufen [ATTACH] was kann ich tun? bei Daten zusammenführen ist es vorhanden - ich möchte eigentlich alle Tabellenblätter in eine...
  3. Excel Zusammenführen

    in Microsoft Excel Hilfe
    Excel Zusammenführen: Guten Tag Sub Tabelle_zusammenführen() Dim i As Integer Dim Zusammenfassung As Worksheet Dim BereichZielTab As Range Set Zusammenfassung = Worksheets("Zusammenfassung") For i = 2...
  4. Daten von alter Liste in neue übertragen

    in Microsoft Excel Hilfe
    Daten von alter Liste in neue übertragen: Ich habe auf Excel eine Lagerliste aus meinem Warenwirtschaftssystem erstellt. Ich muss jede Woche eine aktuelle Lagerliste erstellen. Ich habe die Liste mit zusätzlichen Zeilen erweitert. Wenn...
  5. Excel Daten automatisch umsortieren

    in Microsoft Excel Hilfe
    Excel Daten automatisch umsortieren: Hallo zusammen, leider fehlt mir für meine Herausforderung das richtige Wording für eine gescheite Suche. Ich hoffe daher auf Eure Erfahrung. Die Herausforderung stellt sich wie folgt dar: Ich...
  6. Excel Kalender mit Daten versehen

    in Microsoft Excel Hilfe
    Excel Kalender mit Daten versehen: Hallo zusammen, ich habe ein etwas komplexeres Problem. Die angehängte Excel soll dabei zum Verständnis beitragen. Folgendes ist gegeben: Tabelle 1: ID-Nummern (in Reihenfolge) sowie ein Kalender...
  7. XY-Diagramm-Grafik mit zusätzlichen Daten erweitern

    in Microsoft Excel Hilfe
    XY-Diagramm-Grafik mit zusätzlichen Daten erweitern: Servus! Im Zuge meiner MA-Arbeit müsste ich bereits ermittelte Daten, welche als PDF vorliegen in Excel durch eigens ermittelte erweitern (Bild1). Da wir zu den eigentlichen Daten keinen Zugang...
  8. Import Daten aus Access Abfrage klappt nicht

    in Microsoft Excel Hilfe
    Import Daten aus Access Abfrage klappt nicht: Moin, ich habe ein Problem. Ich habe eine Datenbank in Access mit diversen Tabellen und Abfragen. Jetzt habe ich eine neue Abfrage erstellt und muß das Ergebnis täglich in eine Exceldatei...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden