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

knöpfe der MSG-Box ändern

knöpfe der MSG-Box ändern
13.06.2006 11:14:16
Anton
Hallo Leute,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: knöpfe der MSG-Box ändern
13.06.2006 19:33:59
Matthias
Hallo Anton,
Um zu Prüfen, ob die Mappe geöffnet ist, biete ich diesen Code an:

Function IstOffen(Mappe As String) As Boolean
Dim dummy As Workbook
On Error Resume Next
Set dummy = Workbooks(Mappe)
IstOffen = (Err.Number = 0)
End Function

Aber wieso fragst du (wenn die Mappe nicht offen ist) nicht nach, ob die Mappe (vom Makro) geöffnet werden soll? Ist denn das Verzeichnis nicht bekannt?
Gruß Matthias
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige