Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
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
Inhaltsverzeichnis

Zellen in andere Mappe kopieren per Button

Zellen in andere Mappe kopieren per Button
Erik
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

AW: Zellen in andere Mappe kopieren per Button
06.01.2012 14:24:55
Reinhard
Hallo Erik,
sind denn MappeA.xls und MappeB.xls geöffnet?
Existieren auf ihnen die Blätter SheetA bzw. SheetB?
Gruß
Reinhard
AW: Zellen in andere Mappe kopieren per Button
06.01.2012 14:27:24
selli
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
AW: Zellen in andere Mappe kopieren per Button
06.01.2012 14:28:34
Josef

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 »

Anzeige
AW: Zellen in andere Mappe kopieren per Button
06.01.2012 14:47:58
Erik
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
Anzeige
AW: Zellen in andere Mappe kopieren per Button
06.01.2012 14:54:45
Josef

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 »

Anzeige
AW: Zellen in andere Mappe kopieren per Button
06.01.2012 15:02:53
Erik
Doch, danke für deine Mühe Sepp hat mir echt weiter geholfen aber mein code ist kürzer.
na ja, wenn du meinst! o.T.
06.01.2012 15:08:44
Josef
« Gruß Sepp »

@Sepp als Ausgleich
06.01.2012 15:19:00
Reinhard
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
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige