Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
292to296
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
292to296
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SendKeys

SendKeys
16.08.2003 14:58:17
Norbert
Hallo VBA-Profis,
ich brauche dringend Eure Hilfe !
Das Problem : innerhalb einer Schleife öffne ich diverse Dateien, schreibe bestimmte Werte aus ihnen in ein Datenblatt, schließe die jeweilige Datei und aktualisiere anschließend eine Pivot-Table, die ihre Daten (u.a. Liefertermine) aus dem Datenblatt bezieht. Klappt alles soweit bestens, aber ...
Beim Schließen der einzelnen Dateien reicht SaveChanges:=false nicht aus, da sie infolge einer Workbook_BeforeClose-Prozedur eine Rückmeldung erwarten. Diese fange ich im obigen Programm über SendKeys ("no") ab. Dieses "no" erscheint dann in der Pivot_Table in 2 Spaltenüberschriften (statt des Liefertermines), einmal sogar nur verstümmelt als "n.". Im Datenblatt selbst ist das "no" jedoch in der Lieferterminspalte nicht zu entdecken. Das "Daten aktualisieren" bringt auch keine Abhilfe !
Wer kann mir bitte helfen ?
Gruß
Norbert

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SendKeys
16.08.2003 15:22:16
Ramses
Hallo
... ohne Code ist das ein Blindflug.
Zeig doch mal den Code den du hast zum öffnen und die Workbook_Before_Close Procedur.
Gruss Rainer

AW: SendKeys
16.08.2003 17:49:37
Norbert
Hallo Rainer,
hoffe, das hilft Dir !
LoadFile(Datei, Pfad) 'prüft, ob Datei vorhanden oder geöffnet
If Status = "nein" Then
Exit Sub
ElseIf Status = "" Then
Workbooks.Open FileName:=Pfad & Datei
Else
Workbooks(Datei).Activate
End If
Die Auto_Close-Prozedur von "Datei" ...

Private Sub Workbook_BeforeClose(cancel As Boolean)
Dim FilialBereich As Range
On Error Resume Next
Application.OnKey "{F1}"
Application.OnKey "+{Left}"
Application.OnKey "+{Right}"
Application.OnKey "^{Left}"
Application.OnKey "^{Right}"
Application.StatusBar = ""
Set Leiste = Application.CommandBars("cell")
On Error Resume Next
For Each cbc In Leiste.Controls
If Left(cbc.Caption, 1) = "A" _
Or Left(cbc.Caption, 1) = "B" _
Or Left(cbc.Caption, 1) = "C" Then
cbc.Delete
End If
Next
Set FilialBereich = ActiveSheet.Columns("AH:DZ")
If FilialBereich.EntireColumn.Hidden = False Then
ActiveSheet.Unprotect ("xxx")
FilialBereich.EntireColumn.Hidden = True
ActiveSheet.Range("E22:O22").Select
Selection.Font.ColorIndex = 2
ActiveSheet.Range("P22:U22").Select
Selection.Locked = True
ActiveSheet.Protect ("xxx")
End If
If ActiveSheet.Range("Lieferant") <> LiefName Then
Antwort = MsgBox("Es wurden nach der Erfassung Details geändert !" _
& Chr(13) & Chr(13) _
& "Sollen die Änderungen  in der" _
& Chr(13) _
& "Orderdatenbank erfaßt werden ?", _
36, "Auftragserfassung")
End If
Application.ScreenUpdating = True
Application.DisplayFullScreen = False
End Sub

Danke schon jetzt für Deine Bereitschaft, Dich in mein Problem zu vertiefen
Norbert

Anzeige
AW: SendKeys
16.08.2003 18:28:30
Ramses
Hallo,
damit komme ich nicht klar:
LoadFile(Datei, Pfad) 'prüft, ob Datei vorhanden oder geöffnet
If Status = "nein" Then
Exit Sub
ElseIf Status = "" Then
Workbooks.Open FileName:=Pfad & Datei
Else
Workbooks(Datei).Activate
End If
Ist das eine eigene Funktion "LoadFile" ?
Mit "ElseIf" und "Else" erreichst du doch das gleiche oder ?
... und mit "Nein" ?, was passiert da. Die Datei musst du doch öffnen
Die Messagebox kannst nicht mit SendKeys"no" beenden, ... darauf reagiert die Box nicht sondern allenfalls mit
SendKeys ("{Tab}") 'Springt auf "Nein"
SendKeys ("{Enter}") 'Bestätigt "Nein"
Gruss Rainer

Anzeige
AW: SendKeys
16.08.2003 20:04:42
Norbert
Danke Rainer, genau das war's wohl.
LoadFile ist, wie Du vermutest, eine eigene Funktion. Das Ergebnis "nein" für Status wird zurückgegeben, wenn Dir(Pfad,Datei) dieselbe nicht findet. Dann wird dem Anwender am Ende des Programms eine entsprechende Meldung ausgegeben.
"offen" meldet Status, wenn - sofern die Datei existiert - 'Open suchString For Binary Access Read Lock Read As #1' zu Err.Number<>0 führt.
Habe ich das zu umständlich realisiert ? Es funktioniert zumindest einwandfrei.
Nochmals vielen Dank, habe wieder etwas dazugelernt
Schönes Wochenende
Norbert

Anzeige
Danke fürs Feedback :-) o.T.
17.08.2003 14:56:43
Ramses
...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige