Collapse column

Autor Thema: Office 2016 CommandButton Import  (Gelesen 2667 mal)

Offline LBO

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2016
Office 2016 CommandButton Import
« am: November 24, 2015, 11:59:45 Vormittag »
Hallo Experten,

ich bin leider ein absoluter Neuling in VBA, ich hoffe ihr könnt mir hier helfen. Ich versuche eine Makro zu erstellen und zwar soll über das CommandButton ein Import einer externen Datei stattfinden. Ich bin in der Datei „Test_Import“ (C:\Users\bia5le\Desktop\Test_Import.xlsx) dort habe ich ein Button erstellt:

Private Sub CommandButton1_Click()
Call datei_import
End Sub

Nun will ich im Module „datei_import“ definieren, das wenn man den Button klickt die externe Datei „Umsatz 2014“ (C:\Users\bia5le\Desktop\Umsatz 2014.xlsx) in „Test_Import“ (C:\Users\bia5le\Desktop\Test_Import.xlsx) in der Tabelle1 ab der Zeile A14 den Inhalt einfügt.
Kann mir hier jemand helfen? :(

Vielen lieben Dank für jegliche Antwort.

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2016 CommandButton Import
« Antwort #1 am: November 24, 2015, 13:03:05 Nachmittag »
Moin,

fange doch einmal so an, wie die meisten von uns (Helfern) auch eingestiegen sind: Zeichne mit dem Makrorecorder genau das auf, was später geschehen soll. Diesen Code stellst du uns dann (idealerweise mit dem WorkBook) zur Verfügung und wir schubsen dich dann in die richtige Richtung  :)
Gruß
Günther

Offline LBO

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2016
Antw:Office 2016 CommandButton Import
« Antwort #2 am: November 24, 2015, 13:42:41 Nachmittag »
Hi,

 probieren wir es doch mal. Hoffe meine Logik ist verständlich (es tut mir leid bin absoluter neueinsteiger)  :)

Private Sub CommandButton1_Click()

Workbooks.Open Filename:=" C:\Users\bia5le\Desktop\Umsatz 2014.xlsx" /*der Pfad der Datei welche ich Kopieren will in Test_Import.xlsm

Sheets("Tabelle2").Copy After:=Workbooks("Test_Import.xlsm"). /*Tabelle 2 ist das zu kopierende Datenblatt welches ich in  Test_Import.xlsm einfügen will
Windows("Umsatz 2014.xlsx ").Activate /*der Namen der zu kopierenden Datei

 ActiveWindow.Close

End Sub


das habe ich mal aus einem anderen Forum und das an mein Beispiel angepasst, in /* ist meine erklärung was ich damit bezwecken will. Und kurz und knapp erklärt= Button soll geklickt werden, Datei "Umsatz 2014" soll in der Datei "Test_Import". Nur weiß ich nicht ob der code überhaupt brauchbar ist. Bin ich nah dran? und wie bekomme ich es hin das es die Ausgabe ab A14 beginnt.

Vielen dank, ich hoffe ich stell mich nicht zu doof an.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw: Antw:Office 2016 CommandButton Import
« Antwort #3 am: November 24, 2015, 19:09:32 Nachmittag »
Vielen dank, ich hoffe ich stell mich nicht zu doof an.

Hmmm,

warum machst du denn nicht genau das, was ich vorgeschlagen habe? Wenn du da Fragen hast gerne ...
Glaube mir, der Lerneffekt ist dann größer!
Gruß
Günther

Offline LBO

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2016
Antw:Office 2016 CommandButton Import
« Antwort #4 am: November 26, 2015, 16:20:05 Nachmittag »
Ich hab es jetzt durch Hilfe hinbekommen.

Falls jemand sowas ähnliches mal braucht:

Sub Button()
Dim wksZiel As Worksheet
  Dim wkbQuelle As Workbook, strQuelle As String
  Dim wksQuelle As Worksheet
  Dim Zeile_Q As Long
  Dim Zeile_Z As Long
  Dim Zeile_Z1 As Long
  Dim shpBild As Shape
  Dim ch As Object
     
  strQuelle = "C:Dateipfad" 'Quellenpfad eintragen
 
  If Dir(Pathname:=strQuelle) = "" Then
    MsgBox "Datei nicht gefunden!" & vbLf & strQuelle, vbOKOnly, "Import Daten"
  Else
    Set wksZiel = ActiveWorkbook.Worksheets(1) 'Register 1 wird als Ziel zum einfügen gewählt
    Application.ScreenUpdating = False
    With wksZiel
      Zeile_Z1 = 14
      Zeile_Z = .UsedRange.Row + .UsedRange.Rows.Count - 1
      If Zeile_Z >= Zeile_Z1 Then 'Bedingung das es ab Zeile 14 der Import ausgegeben wird
     
      For Each shpBild In ActiveSheet.Shapes 'Zuerst wird der Inhalt nach Bildern abgesucht und gelöscht
                If shpBild.Type = msoPicture Then
            shpBild.Delete
        End If
    Next
    Application.DisplayAlerts = False
    For Each ch In ActiveSheet.ChartObjects 'Alte Charts und Diagramme werden nach den Bildern gelöscht
        ch.Delete
    Next
        .Range(.Rows(Zeile_Z1), .Rows(Zeile_Z)).Clear
      End If 'Altinhalte werden zum Schluss gelöscht
    End With
    'Quelldatei soll auch schreibgeschützt öffnen
    Set wkbQuelle = Application.Workbooks.Open(Filename:=strQuelle, ReadOnly:=True)
    Set wksQuelle = wkbQuelle.Sheets(3) 'ggf. anpassen jeh nachdem welcher Register gezogen werden soll
    With wksQuelle
      Zeile_Q = .UsedRange.Row + .UsedRange.Rows.Count - 1
      .Range(.Rows(1), .Rows(Zeile_Q)).Copy wksZiel.Cells(Zeile_Z1, 1)
    End With
    Application.CutCopyMode = False
    wkbQuelle.Close savechanges:=False
    Application.ScreenUpdating = True
  End If
 
End Sub

Hier wird ein Button erstellt das eine Datei importiert, es werden die vorherigen Daten erst mal gelöscht (Inhalt, Bilder, Charts) und dann die Datei importiert. Ist bei mir jetzt Sinnvoll da ich knapp 30 verschiedene ExcelDateien brauch und somit eine Master Excel habe und die welche ich brauche einfach schnell importiere anstatt die immer wieder zu suchen. :) hoffe das hilft jemanden.

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.