knöpfe der MSG-Box ändern
13.06.2006 11:14:16
Anton
ich möchte einen möglichen Fehler (und damit den Abbruch des Makros) verhindern.
Es geht darum daß Daten von einer neuen Tabelle in eine geöffnete Datenbank eingetragen wird.
Es soll geprüft werden ob die Ziel-Datei geöffnet ist.
Wenn ja, dann Makro fortfahren,
wenn nein, dann MSGBOX mit zwei Buttons: "Ich öffne die Datei sofort", "Nein, bitte beenden"
Wenn der benutzer die Datei öffnen möchte, soll eine Warteschleife gestartet werden, die am Ende der Wartezeit das Makro neu startet.
Folgendes habe ich mal zusammengestopselt:
Sub Q_Umsetzen_In_Datenbank()
' Spalten A & B der aktiven Mappe werden in die offene Datenbak
' in die nächste freie Spalte übertragen.
Dim Spaltenanzahl%
If Workbook("D-Datei.xls").IsOpen Then
Columns("A:B").Select
Selection.Copy
Windows("Datenbank - D-Datei.xls").Activate
Sheets("Datenbank_01").Select
'letzte Spalte in 1 suchen
Spaltenanzahl = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
'hier muß die nächste freie Spalte gefunden werden
'und aktiviert werden
Cells(1, Spaltenanzahl + 1).Activate
ActiveSheet.Paste
Range("A1").Select
Else
weitermachen = MsgBox("Ist die Datenbak-Datei geöffnet?", vbOKCancel)
If weitermachen = vbOK Then
' Wenn "Ja", dann 25 Sekunden warten.
NeueStunde = Hour(Now())
NeueMinute = Minute(Now())
NeueSekunde = Second(Now()) + 25
WarteZeit = TimeSerial(NeueStunde, NeueMinute, NeueSekunde)
Application.Wait WarteZeit ' Warteschleife aufrufen.
Windows("Datenbank - D-Datei.xls").Activate
Sheets("Datenbank_01").Select
'letzte Spalte in 1 suchen
Spaltenanzahl = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
'hier muß die nächste freie Spalte gefunden werden
'und aktiviert werden
Cells(1, Spaltenanzahl + 1).Activate
ActiveSheet.Paste
Range("A1").Select
Else ' Wenn "Nein"
' Makro beenden.
Exit Sub
End If
End If
End Sub
Bitte wer kann mir weiterhelfen.
Insbesondere bei "If Workbook("D-Datei.xls").IsOpen" weiß ich nicht wie es richtig heißt.
Servus,
Anton