Microsoft Excel

Herbers Excel/VBA-Archiv

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

Kopieren vor schliessen | Herbers Excel-Forum


Betrifft: Kopieren vor schliessen von: Steve
Geschrieben am: 26.07.2012 18:33:39

Hallo zusammen,

Ich möchte gerne von Tabelle1.xlsx Zelle G25 von Blatt 1 und B35 von Blatt 2 vor dem schliessen (beim betätigen vom X oben rechts) in die Tabelle2.xlsm, in dem der VBA Code steht, in Blatt 2 Zelle S3 und T3 koppieren.

Gibt es da eine möglichkeit da in der Tabelle1.xlsx keine makros stehen?

Besten Dank für eure hilfe.

Steve

  

Betrifft: Doppelt von: Hajo_Zi
Geschrieben am: 26.07.2012 18:34:48

https://www.herber.de/forum/messages/1272781.html


  

Betrifft: AW: Kopieren vor schliessen von: Steve
Geschrieben am: 26.07.2012 19:40:03

Habe es schon gesehen das ich es doppelt gepostet habe, und auch schon geschrieben das es mi leid tut. :)

Aber könnte mir da Jemand einen tipp geben, ob es irgendwie funktioniert?

Grüsse steve


  

Betrifft: AW: Kopieren vor schliessen von: Hajo_Zi
Geschrieben am: 26.07.2012 19:54:25

Hallo Steve,

warum machst Du es nuicht über Verknüpfung?
Ansonsten geht es nicht.

Gruß Hajo


  

Betrifft: AW: Kopieren vor schliessen von: Josef Ehrensberger
Geschrieben am: 26.07.2012 20:46:03


Hallo Steve,

falls Tabelle2.xlsm beim Schließen von Tabelle1.xlsx geöffnet ist, dann ginge das schon.




« Gruß Sepp »



  

Betrifft: AW: Kopieren vor schliessen von: Steve
Geschrieben am: 26.07.2012 21:04:08

Hallo Josef,

Die tabelle ist offen, habe einen code laufen der kontrolliert wann die xlsx tabelle geschlossenwird um die Userform wieder anzuzeigen, nur glaube ich nicht das ich in diesem code etwas eibauen kann. Ich glaube etwas separates währe sinfoller.


  

Betrifft: AW: Kopieren vor schliessen von: Josef Ehrensberger
Geschrieben am: 26.07.2012 21:17:46


Hallo Steve,

füge in deine xlsm-Datei ein Klassenmodul ein, gib ihm den Namen "clsApp" und kopiere folgenden Code in das Klassenmodul.

' **********************************************************************
' Modul: clsApp Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public WithEvents xlApp As Excel.Application

Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
  If Wb.Name = theWorkbook Then
    If SheetExist(targetSheet, ThisWorkbook) Then
      With ThisWorkbook.Sheets(targetSheet)
        If SheetExist(sourceSheet1, Wb) Then .Range("S3") = Wb.Sheets(sourceSheet1).Range("G25")
        If SheetExist(sourceSheet2, Wb) Then .Range("T3") = Wb.Sheets(sourceSheet2).Range("B35")
      End With
    End If
  End If
End Sub



In ein allgemenes Modul kopierst du diesen Code. Hier nimmst du auch die Einstellungen bezüglich Datei- bzw. Tabellen-Namen vor.

' **********************************************************************
' Modul: basMain Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public ThisApp As New clsApp

'Einstellungen
Public Const theWorkbook As String = "Tabelle1.xlsx" 'Name der zu überwachenden Datei
Public Const targetSheet As String = "Blatt 2" 'Name der Zieltabelle
Public Const sourceSheet1 As String = "Blatt 1" 'Name der 1. Quelltabelle
Public Const sourceSheet2 As String = "Blatt 2" 'Name der 2. Quelltabelle
'Ende Einstellungen

Sub initialize()
  Set ThisApp.xlApp = Application
End Sub


Public Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
  Dim wks As Worksheet
  On Error GoTo ERRORHANDLER
  If Wb Is Nothing Then Set Wb = ThisWorkbook
  For Each wks In Wb.Worksheets
    If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
  Next
  ERRORHANDLER:
  SheetExist = False
End Function



In Das Modul "DieseArbeitsmappe" fügst du diesen Code ein.

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
  Call initialize
End Sub



Einstellungen vornehmen, Datei speichern, schließen und wieder öffnen > testen.




« Gruß Sepp »



  

Betrifft: AW: Kopieren vor schliessen von: Steve
Geschrieben am: 26.07.2012 21:39:58

Besten Dank Sepp, ich werde dir morgen bescheid geben ob alles funktioniert.

Grüsse Steve


  

Betrifft: AW: Kopieren vor schliessen von: Steve
Geschrieben am: 28.07.2012 17:13:09

Hallo Sepp,

Funktioniert Sehr gut, danke!!


Beiträge aus den Excel-Beispielen zum Thema "Kopieren vor schliessen"