Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellen in andere Mappe kopieren per Button | Herbers Excel-Forum


Betrifft: Zellen in andere Mappe kopieren per Button von: Erik
Geschrieben am: 06.01.2012 14:11:47

Hallo zusammen,

ich würde gern über einen Button in eine anderen Excel-mappe ein paar Zellen hinein kopieren.
Hab hier schon was ausprobiert aber nach dem er die mappe öffnet passiert einfach nichts mehr. Er kopiert es nicht in die neu geöffnete Mappe.

Danke für Hilfe im voraus.

Hier mein Code bis jetzt:

Sub MappeOeffnen()

    Dim strOrdner As String, strdateiname As String
    Dim wbMappe As Workbook

    strOrdner = "C:\Dein\Ordner\"
    strdateiname = "Auswertung.xls"

    On Error Resume Next
    Set wbMappe = Workbooks(strdateiname)
    If Not wbMappe Is Nothing Then
        wbMappe.Activate
        MsgBox "Mappe ist bereits geöffnet !"
    Else
        If Dir(strOrdner & strdateiname) <> "" Then
            Set wbMappe = Workbooks.Open(strOrdner & strdateiname, UpdateLinks:=False)
        Else
            MsgBox "Folgende Datei existiert nicht : " & vbf & vbLf & _
                strOrdner & strdateiname, vbOKOnly + vbCritical, "Datei nicht gefunden !"
        End If
    End If

    Set wbMappe = Nothing

--> Bis hier TOP !!! Aber Kopiervorgang klappt nicht.

    Workbooks("MappeA.xls").Sheets("SheetA").Range("F10:H22").Copy
    Workbooks("MappeB.xls").Sheets("SheetB").Range("C10").PasteSpecial xlPasteValues

End Sub

  

Betrifft: AW: Zellen in andere Mappe kopieren per Button von: Reinhard
Geschrieben am: 06.01.2012 14:24:55

Hallo Erik,

sind denn MappeA.xls und MappeB.xls geöffnet?
Existieren auf ihnen die Blätter SheetA bzw. SheetB?

Gruß
Reinhard


  

Betrifft: AW: Zellen in andere Mappe kopieren per Button von: selli
Geschrieben am: 06.01.2012 14:27:24

hallo erik,

wie lauten denn die namen deiner mappen?
oben im code heisst die zu öffnende "Auswerung.xls"
und unten heisst sie "MappeB.xls"

das solltest du anpassen.

gruß selli


  

Betrifft: AW: Zellen in andere Mappe kopieren per Button von: Josef Ehrensberger
Geschrieben am: 06.01.2012 14:28:34


Hallo Erik,

wozu deklarierst du eine Objekt-Variable, weist ihr mit Set ein Objekt (Arbeitsmappe) zu und verwendest sie dann nicht?

Probiere es mal so.

Sub MappeOeffnen()
  Dim strOrdner As String, strdateiname As String
  Dim wbMappe As Workbook, bolWasOpen As Boolean
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  strOrdner = "C:\Dein\Ordner\"
  strdateiname = "Auswertung.xls"
  bolWasOpen = True
  
  On Error Resume Next
  Set wbMappe = Workbooks(strdateiname)
  On Error GoTo ErrExit
  If wbMappe Is Nothing Then
    bolWasOpen = False
    If Dir(strOrdner & strdateiname) <> "" Then
      Set wbMappe = Workbooks.Open(strOrdner & strdateiname, UpdateLinks:=False)
    Else
      MsgBox "Folgende Datei existiert nicht : " & vbLf & vbLf & _
        strOrdner & strdateiname, vbOKOnly + vbCritical, "Datei nicht gefunden !"
    End If
  End If
  
  If Not wbMappe Is Nothing Then
    ThisWorkbook.Sheets("SheetA").Range("F10:H22").Copy
    wbMappe.Sheets("SheetB").Range("C10").PasteSpecial xlPasteValues
    If Not bolWasOpen Then
      wbMappe.Close True
    End If
  End If
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "Sub 'MappeOeffnen'" & vbLf & String(40, "=") & vbLf & vbLf & _
        IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & "Fehlernummer:" & vbTab & _
        .Number & vbLf & vbLf & "Beschreibung:" & vbTab & .Description & vbLf, vbExclamation, "Fehler in Modul - Modul3"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .DisplayAlerts = True
  End With
  
  Set wbMappe = Nothing
End Sub






« Gruß Sepp »



  

Betrifft: AW: Zellen in andere Mappe kopieren per Button von: Erik
Geschrieben am: 06.01.2012 14:47:58

Hey super danke Sepp es klappt.
Mein Code sieht jetzt so aus:

Sub LadeButton_Click()

    Dim strOrdner As String, strdateiname As String
    Dim wbMappe As Workbook

    strOrdner = "C:\Dein\Ordner\"
    strdateiname = "MappeB.xls"

    On Error Resume Next 
    Set wbMappe = Workbooks(strdateiname)
    If Not wbMappe Is Nothing Then
        wbMappe.Activate
        MsgBox "Mappe ist bereits geöffnet !"
    Else
        'Wenn Mappe noch nicht geöffnet ist
        If Dir(strOrdner & strdateiname) <> "" Then
            Set wbMappe = Workbooks.Open(strOrdner & strdateiname, UpdateLinks:=False)
        Else
            MsgBox "Folgende Datei existiert nicht : " & vbf & vbLf & _
                strOrdner & strdateiname, vbOKOnly + vbCritical, "Datei nicht gefunden !"
        End If
    End If
    
    If Not wbMappe Is Nothing Then
        ThisWorkbook.Sheets("SheetA").Range("A17:D17").Copy
        wbMappe.Sheets("SheetB").Range("B20:E20").PasteSpecial xlPasteValues
    End If
  
    'Speicher für Objektvariable wieder freigeben :
    Set wbMappe = Nothing
    
End Sub

So, jetzt wäre noch super wenn ich den Button betätige das er es jedes mal eine Zeile drunter einfügt, wie das letzte mal. Also so, das er vorher in MappeB schaut und dann es nicht (wie hier B20:E20) sondern in B21:E21 reinschreibt beim nächsten mal klicken.

Danke noch mal an euch, das ihr so schnell geantwortet habt.
Gruß Erik


  

Betrifft: AW: Zellen in andere Mappe kopieren per Button von: Josef Ehrensberger
Geschrieben am: 06.01.2012 14:54:45


Hallo Erik,

gefällt dir meine Fehlerbehandlung nicht?

Sub MappeOeffnen()
  Dim strOrdner As String, strdateiname As String
  Dim wbMappe As Workbook, bolWasOpen As Boolean
  Dim lngNext As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  strOrdner = "C:\Dein\Ordner\"
  strdateiname = "Auswertung.xls"
  bolWasOpen = True
  
  On Error Resume Next
  Set wbMappe = Workbooks(strdateiname)
  On Error GoTo ErrExit
  If wbMappe Is Nothing Then
    bolWasOpen = False
    If Dir(strOrdner & strdateiname) <> "" Then
      Set wbMappe = Workbooks.Open(strOrdner & strdateiname, UpdateLinks:=False)
    Else
      MsgBox "Folgende Datei existiert nicht : " & vbLf & vbLf & _
        strOrdner & strdateiname, vbOKOnly + vbCritical, "Datei nicht gefunden !"
    End If
  End If
  
  If Not wbMappe Is Nothing Then
    With wbMappe.Sheets("SheetB")
      lngNext = Application.Max(10, .Cells(.Rows.Count, 3).End(xlUp).Row + 1)
      ThisWorkbook.Sheets("SheetA").Range("F10:H22").Copy
      .Cells(lngNext, 3).PasteSpecial xlPasteValues
    End With
    If Not bolWasOpen Then
      wbMappe.Close True
    End If
  End If
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "Sub 'MappeOeffnen'" & vbLf & String(40, "=") & vbLf & vbLf & _
        IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & "Fehlernummer:" & vbTab & _
        .Number & vbLf & vbLf & "Beschreibung:" & vbTab & .Description & vbLf, vbExclamation, "Fehler in Modul - Modul3"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .DisplayAlerts = True
  End With
  
  Set wbMappe = Nothing
End Sub






« Gruß Sepp »



  

Betrifft: AW: Zellen in andere Mappe kopieren per Button von: Erik
Geschrieben am: 06.01.2012 15:02:53

Doch, danke für deine Mühe Sepp hat mir echt weiter geholfen aber mein code ist kürzer.


  

Betrifft: na ja, wenn du meinst! o.T. von: Josef Ehrensberger
Geschrieben am: 06.01.2012 15:08:44


« Gruß Sepp »



  

Betrifft: @Sepp als Ausgleich von: Reinhard
Geschrieben am: 06.01.2012 15:19:00

Hallo Sepp,

danke sehr für die Fehlerroutine :-)
Dadurch fiel mir wieder "Erl" ein, womit ich früher nix anfangen konnte. Jetzt habe ich recherchiert,
fand Code von Nepu, ein Add-In das den Code nummeriert.
Erl bei nummeriertem Code funktioniert Klasse *begeistert bin*

Gruß
Reinhard


Beiträge aus den Excel-Beispielen zum Thema "Zellen in andere Mappe kopieren per Button"