Anzeige
Archiv - Navigation
1252to1256
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

On Error

On Error
Heinz
Guten morgen im Forum
Habe ein Problem,für die Fehlerbehandlung.
Wenn das Workbooks wkb1 ("Schichtvorlagen.xls")
Nicht vorhanden(geöffnet) ist, dann MsgBox "bla bla"
Code anhalten.
Könnte mir bitte jemand weiterhelfen?
Gruß
Heinz
Option Explicit
Sub Transponieren()
Dim wkb1 As Workbook, wkb2 As Workbook
Set wkb1 = Workbooks("Schichtvorlagen.xls")
Set wkb2 = Workbooks("Sortierer.xls")
Application.ScreenUpdating = False
wkb1.Sheets("Schichtplan Sortierer").Range("C6:K36").Copy
wkb2.Sheets("Jänner").Range("C500").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: On Error
03.03.2012 09:56:37
Hajo_Zi
Hallo Heinz,
wenn man weiss welcher Fehler ausgelöst wird kann amn das auch umgehen und keinen Fehler auslösen.
Option Explicit
Sub Transponieren()
Dim WsDatei As Workbook, BoVor As Boolean
Dim wkb1 As Workbook, wkb2 As Workbook
For Each WsDatei In Workbooks
If WsDatei.Name = "Schichtvorlagen.xls" Then
BoVor = True
End If
Next
If BoVor Then
For Each WsDatei In Workbooks
If WsDatei.Name = "Sortierer.xls" Then
BoVor = True
End If
Next
If BoVor Then
Set wkb1 = Workbooks("Schichtvorlagen.xls")
Set wkb2 = Workbooks()
Application.ScreenUpdating = False
wkb1.Sheets("Schichtplan Sortierer").Range("C6:K36").Copy
wkb2.Sheets("Jänner").Range("C500").PasteSpecial Paste:=xlPasteValues, Transpose:= _
True
Application.CutCopyMode = False
Application.ScreenUpdating = True
Else
MsgBox "Sortierer.xls nicht offen"
End If
Else
MsgBox "Schichtvorlagen.xls nicht offen"
End If
End Sub

Anzeige
AW: On Error
03.03.2012 10:59:23
Heinz
Hallo Haijo
Wenn die wkb1 = Workbooks("Schichtvorlagen.xls") NICHT geöffnet ist,läuft dein Code normal.
Ist aber wkb1 = Workbooks("Schichtvorlagen.xls") geöffnet bekomme ich bei Set wkb2 = Workbooks()
die Fehlermeldung "Typen unverträglich" Fehler 13
Gruß Heinz
If BoVor Then
Set wkb1 = Workbooks("Schichtvorlagen.xls")
Set wkb2 = Workbooks()

AW: On Error
03.03.2012 11:01:37
Hajo_Zi
Hallo Heinz,
beim zweite set fehlt die Datei hatte ich ausversehen verschoben, nicht kopiert
Set wkb2 = Workbooks("Sortierer.xls")
Gruß Hajo
Anzeige
AW: On Error
03.03.2012 11:20:13
Heinz
Hallo Hajo
Jetzt bekomme ich aber die Fehlermeldung, Die Paste SpecialMethode konnte nicht ausgefürt werden.
Gruß
Heinz
wkb2.Sheets("Jänner").Range("C500").PasteSpecial Paste:=xlPasteValues, Transpose:=True

AW: On Error
03.03.2012 11:23:07
Hajo_Zi
Hallo Heinz,
ich habe die Dateien nicht und ich sehe Sie auch nicht. Darum kann ich keine Aussage dazu treffen wo der Fehler legt. Eer liegt in der Datei, nicht im Code.
Gruß Hajo
AW: On Error
03.03.2012 17:33:04
Christian
hallo Hajozi,
das meinst du aber nicht ernst, oder?!
ich weiß, du hast es eher mit Formeln, aber ein bischen Logik sollte man auch bei VBA investieren...
Gruß
Christian
Anzeige
AW: On Error
03.03.2012 17:34:27
Hajo_Zi
Hallo Christian,
Deinen besseren Code habe ich wohl überlesen?
Gruß Hajo
@Hajo - schau dir einfach mal dein ...
03.03.2012 17:49:45
Christian
... Prozedere bei dem Boolean an.
Gruß
Christian
Ha, einfach toll, ...
03.03.2012 20:58:15
Luc:-?
…Christian,
aber woher weißt du das: ich weiß, du hast es eher mit Formeln
Er hat doch schon oft genug geschrieben, „ich bin nicht so der Formelmensch” ;-)
Gruß + schöSo, Luc :-?
AW: On Error
03.03.2012 21:11:23
Reinhard
Hallo Christian,
"du hast es eher mit Formeln, aber ein bischen Logik sollte man auch bei VBA investieren..."
ist für mich sehr vergleichbar damit daß ich irgendwo mein Auto einparke
und irgendeiner sagt mir dann
Du hast es eher mit der Straßenbahn, beim Autofahren/Einparken sollte man schon was können.
Wenn du da einen Fehler in Hajos Code siehst dann sag den Fehler doch.
Wozu diese Anmache? Alle hier machen Fehler.
Ommmmm
Gruß
Reinhard
Anzeige
AW: On Error
04.03.2012 09:56:05
Hajo_Zi
Hallo,
mein Lösung kam nicht zum Einsatz, aber fürs Archiv der korrekte Code.
Option Explicit
Sub Transponieren()
Dim WsDatei As Workbook, BoVor As Boolean
Dim wkb1 As Workbook, wkb2 As Workbook
For Each WsDatei In Workbooks
If WsDatei.Name = "Schichtvorlagen.xls" Then
BoVor = True
End If
Next
If BoVor Then
BoVor = False
For Each WsDatei In Workbooks
If WsDatei.Name = "Sortierer.xls" Then
BoVor = True
End If
Next
If BoVor Then
Set wkb1 = Workbooks("Schichtvorlagen.xls")
Set wkb2 = Workbooks("Sortierer.xls")
Application.ScreenUpdating = False
wkb1.Sheets("Schichtplan Sortierer").Range("C6:K36").Copy
wkb2.Sheets("Jänner").Range("C500").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Else
MsgBox "Sortierer.xls nicht offen"
End If
Else
MsgBox "Schichtvorlagen.xls nicht offen"
End If
End Sub
Gruß Hajo
Anzeige
AW: Rückfrage
03.03.2012 10:02:59
Gerd
Hallo Heinz,
weshalb willst Du die Datei "Schichtvorlagen.xls" nicht öffnen, wenn dies noch nicht erfolgt ist?
Gruß Gerd
AW: Rückfrage
03.03.2012 11:00:53
Heinz
Hallo Gerd
weshalb willst Du die Datei "Schichtvorlagen.xls" nicht öffnen, wenn dies noch nicht erfolgt ist?

Dazu müsste ich den Pfad eingeben.
Der ist aber in unserer Firma unterschiedlich.
Gruß
Heinz
AW: On Error
03.03.2012 10:03:09
Tino
Hallo,
hier eine Variante
Sub Transponieren()
Dim wkb1 As Workbook, wkb2 As Workbook
If Not Check_WB("Schichtvorlagen.xls") Then
MsgBox "bla bla"
Exit Sub
End If
End Sub
Function Check_WB(strName$) As Boolean
On Error Resume Next
Check_WB = Workbooks(strName).Name  ""
End Function
Gruß Tino
Anzeige
AW: On Error
03.03.2012 11:07:17
Heinz
Hallo Tino
Wenn die ("Schichtvorlagen.xls") geschlossen ist,läuft der Code normal.
Ist aber ("Schichtvorlagen.xls") geöffnet,bekomme ich bei wkb1.Sheets("Schichtplan Schrumpfer").Range("C6:G36").Copy
Die Fehlermeldung Objektvariable oder Withe-Blockvariable nicht festgelegt
Laufzeitfehler 91
Gruß
Heinz
'Schrumpfer
wkb1.Sheets("Schichtplan Schrumpfer").Range("C6:G36").Copy

AW: On Error
03.03.2012 11:22:19
Tino
Hallo,
dann stimmt was anderes nicht, evtl. die Tabelle?
Versuch mal diesen Code.
Sub Transponieren()
Dim wkb1 As Workbook, wkb2 As Workbook

If Not Check_WB("Schichtvorlagen.xls") Then
    MsgBox "Datei Schichtvorlagen.xls ist nicht offen"
    Exit Sub
ElseIf Not Check_Tab(Workbooks("Schichtvorlagen.xls"), "Schichtplan Schrumpfer") Then
    MsgBox "Die Tabelle Schichtplan Schrumpfer gibt es nicht"
    Exit Sub
End If

If Not Check_WB("Sortierer.xls") Then
    MsgBox "Datei Sortierer.xls ist nicht offen"
    Exit Sub
ElseIf Not Check_Tab(Workbooks("Sortierer.xls"), "Jänner") Then
    MsgBox "Die Tabelle Jänner gibt es nicht"
    Exit Sub
End If

Set wkb1 = Workbooks("Schichtvorlagen.xls")
Set wkb2 = Workbooks("Sortierer.xls")

Application.ScreenUpdating = False

wkb1.Sheets("Schichtplan Sortierer").Range("C6:K36").Copy
wkb2.Sheets("Jänner").Range("C500").PasteSpecial Paste:=xlPasteValues, Transpose:=True

Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Function Check_WB(strName$) As Boolean
On Error Resume Next
Check_WB = Workbooks(strName).Name <> ""
End Function

Function Check_Tab(oWB As Workbook, strTabName$) As Boolean
On Error Resume Next
Check_Tab = oWB.Sheets(strTabName).Index <> 0
End Function
Gruß Tino
Anzeige
Danke Hajo, Luc, Reinhard,Gerd L & Tino
04.03.2012 10:41:08
Heinz
Danke Hajo, Luc, Reinhard,Gerd L & Tino
Erstmals Danke für Eure Hilfestellungen.
Es funktionieren alle Codes.
Es lag nur daran,das der Blattschutz aktiviert war,ohne Blattschutz funktioniert alles.
Recht herzlichen Dank Euch allen.
Gruß
Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige