Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Tabellenblatt einlesen

VBA-Tabellenblatt einlesen
31.01.2007 21:03:33
Peter
Hallo Forum,
ich würde mich über Hilfe sehr freuen.
Danke im voraus Peter
-siehe Bsp-
https://www.herber.de/bbs/user/40041.xls
Ich möchte den Inhalt von 2 namensgleichen Tabellenblättern von
einer Quelldatei in die Zieldatei kopieren.
Dabei soll gleichzeitig eine Fehlerbehandlung durchgeführt werden.
1.es soll überprüft werden ob die Datei sich im vorgegebenen Verzeichnis befindet.
2.befindet sich die Datei im vorgegebenen Verzeichnis, soll die Datei geöffnet werden
3.ist die Datei nicht offen soll die Datei geöffnet werden
4.ist die Datei bereits offen soll überprüft werden ob sich in der Quelldatei ein namensgleiches Tabellenblatt befindet
5.der Kopiervorgang innerhalb der namensgleichen Tabellenblätter wird durchgeführt und danach die Quelldatei geschlossen
siehe Versuch:

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Tabellenblatt einlesen
02.02.2007 02:13:57
fcs
Hallo Peter,
mit folgenden Anpassungen werden die entsprechenden Prüfungen durchgeführt
Gruss
Franz

Option Explicit
Public QDatei As String, QPfad As String, Blatt As String
Sub DateiCheck()
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
QDatei = "Inventar.xls"
QDatei = "Datei1.xls"
QPfad = "D:\Abt\Zimmer"
Blatt = "Raum1" 'Name des Tabellenblatts dessen Inhalt kopiert werden soll
'********Existiert die Quelldatei ? ***************************************************
If Dir(QPfad & "\" & QDatei) = "" Then
MsgBox " Die Datei """ & QPfad & "\" & QDatei & """ existiert nicht"
End If
'********Arbeitsmappe offen ? *********************************************************
If DateiOffen(QDatei) = True Then
'********Pfad korrekt ? **********************************************************
If Workbooks(QDatei).Path = QPfad Then
MsgBox "Arbeitsmappe ist offen"
Else
MsgBox "Der Pfad der geöffneten Quelldatei stimmt nicht" & vbLf & vbLf _
& "Datei wird geschlossen und korrekte Datei geöffnet"
Workbooks(QDatei).Close savechanges:=False
Workbooks.Open (QPfad & "\" & QDatei)
End If
Else
MsgBox "Arbeitsmappe wird geöffnet"
Workbooks.Open (QPfad & "\" & QDatei)
End If
'********Tabellenblatt vorhanden ? ****************************************************
If Tabellevorhanden(Workbooks(QDatei), Blatt) = True Then
Call Kopieren
Else
MsgBox "Tabellenblatt """ & Blatt & """ in Quelldatei nicht vorhanden"
End If
Workbooks(QDatei).Close savechanges:=False
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
ERRORHANDLER:
MsgBox " Das Verzeichnis """ & QPfad & """ existiert nicht"
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Function DateiOffen(QDatei As String) As Boolean
'Prüfung ob Arbeitsmappe geöffnet
Dim wkb As Workbook
On Error GoTo Fehler
For Each wkb In Workbooks
If wkb.Name = QDatei Then
DateiOffen = True
Exit Function
End If
Next
Fehler:
DateiOffen = False
End Function
Function Tabellevorhanden(wkb As Workbook, Tabellenname As String) As Boolean
'Prüfung ob Tabellenblatt in Arbeitsmappe vorhanden
Dim wks As Worksheet
On Error GoTo Fehler
For Each wks In wkb.Worksheets
If wkb.Name = Tabellenname Then
Tabellevorhanden = True
Exit Function
End If
Next
Fehler:
Tabellevorhanden = False
End Function
Sub Kopieren()
Dim LRow As Long
Dim QSh As Worksheet, ZSh As Worksheet
Set QSh = Workbooks(QDatei).Worksheets(Blatt)
Set ZSh = ThisWorkbook.Worksheets(Blatt)
LRow = QSh.Cells(Rows.Count, 9).End(xlUp).Row
ZSh.Range(ZSh.Cells(1, 1), ZSh.Cells(LRow, 80)).Value = _
QSh.Range(QSh.Cells(1, 1), QSh.Cells(LRow, 80)).Value
ZSh.Columns.AutoFit
End Sub

Anzeige
Vielen Dank
04.02.2007 16:22:07
Peter
Hallo Franz,
Nochmals Danke.
Genauso hab ich es gemeint.
Werde ich gleich ausprobieren.
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge