Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1620to1624
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

FileDialog läuft nur einmal

FileDialog läuft nur einmal
05.05.2018 01:47:57
Ete
Hallo liebe Excel-Gemeinde,
bisher konnte die Suche in diesem Forum oftmals Treffer ausspucken. Dieses Mal leider nicht. Hier mein Problem:
Ich kopiere aus einer OriginalXLSdatei ausgewählte Zeilen in eine zweite Exceldatei, die als Datenbasis für Serienbriefe dient. Nach erfolgreichem kopieren startet die Sub für das Öffnen des Dialogfeldes und der Erstellung des Serienbriefes abhängig der Auswahl. Diese Prozeduren rufe ich über einen Button auf der erst das Modul fürs Kopieren startet. AM Ende der Kopierenprozedur erfolgt der Call auf die Serienbriefprozedur.
Das funktioniert alles sehr gut, solange das FileDialog nur einmal aufgerufen wird. Beim erneuten Starten wird das DIalogfeld nicht mehr angezeigt und er bricht ab.
Habe bereits verschiedene Ansätze verfolgt. Leider ohne Erfolg. Wenn ich die Prozedur direkt aus dem VBA-Editor starte läuft es super durch. Lediglich über den Button nicht mit den Calls.

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

Betreff
Datum
Anwender
Anzeige
AW: FileDialog läuft nur einmal
05.05.2018 07:31:23
Hajo_Zi
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: FileDialog läuft nur einmal
05.05.2018 22:20:10
Ete
Sorry, da hast du Recht. Ich dachte, dass jemand allgemein diesen Bug kennt. ANbei der Code:

Option Explicit
Public actWorkbook As String
Public Datensourcepath As String
Public strZielDatei As String
'_____________________________________
Sub Datenuebertragen()
actWorkbook = ActiveWorkbook.Name
'MsgBox actWorkbook
Datensourcepath = ThisWorkbook.Path
strZielDatei = "Referenztabelle.xlsx"
'Application.ScreenUpdating = False
Dim actTable As String 'Worksheet
Dim sRow As String
Dim strQuelle$
Dim strZiel$
sRow = Selection.row
actTable = ActiveSheet.Name
Workbooks.Open Datensourcepath & "\" & strZielDatei
Workbooks(strZielDatei).Worksheets("Tabelle1").UsedRange.ClearContents
strQuelle = "[" & ThisWorkbook.Name & "]Kinderdaten!10:10"
strZiel = "[" & strZielDatei & "]Tabelle1!1:1"
'kopieren
Range(strQuelle).Copy
Range(strZiel).PasteSpecial (xlPasteValues)
strQuelle = "[" & ThisWorkbook.Name & "]Kinderdaten!" & sRow & ":" & sRow & ""
strZiel = "[" & strZielDatei & "]Tabelle1!2:2"
'kopieren
Range(strQuelle).Copy
Range(strZiel).PasteSpecial (xlPasteValues)
'schliessen und speichern
Workbooks(strZielDatei).Close SaveChanges:=True
MsgBox "Daten wurden kopiert!", vbInformation
'Application.ScreenUpdating = True
Application.SendKeys ("{ESC}")
Call SerienbriefEinzelnPDF
End Sub
'___________________________________________
Sub SerienbriefEinzelnPDF()
Application.DisplayAlerts = True
Dim WordAppl As Object
Dim WordDoc As Object
Dim strDatenQuelle As String
Dim strZiel As String
Dim lAnzZettel As Long
Dim i As Long
Dim strDateiName As String
Dim Datum As String
Dim NameVorlage As String
actWorkbook = ActiveWorkbook.Name
'MsgBox actWorkbook
Datensourcepath = ThisWorkbook.Path
strZielDatei = "Referenztabelle.xlsx"
Datum = Format(Now, "YYMMDD_HHMM")
Dim varDatei As Variant
varDatei = Application.GetOpenFilename()
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation
Exit Sub
Else
MsgBox "Folgende Datei wurde ausgewählt:" & vbCrLf & varDatei
strDateiName = varDatei
End If
'With Application.FileDialog(msoFileDialogOpen)
'   .AllowMultiSelect = False
'   .InitialFileName = ThisWorkbook.Path & "\Vorlagen\*.do*"
'   If .Show = -1 Then
'      strDateiName = .SelectedItems(1)
'Else
'Exit Sub
'   End If
'End With
MsgBox "Stop"
strDatenQuelle = ThisWorkbook.Path & "\Referenztabelle.xlsx"
Set WordAppl = CreateObject("Word.Application")
With WordAppl
.Visible = True
Set WordDoc = WordAppl.Documents.Open(strDateiName)
With WordDoc
NameVorlage = .Name
With .MailMerge
.OpenDataSource Name:=strDatenQuelle, LinkToSource:=True, Format:=0, SQLStatement:=" _
SELECT * FROM `Tabelle1$`"
.Destination = 0    '= wdSendToNewDocument
.SuppressBlankLines = True
For i = 1 To .DataSource.RecordCount
With .DataSource
.FirstRecord = i
.LastRecord = i
.ActiveRecord = i
strZiel = ThisWorkbook.Path & "\Druck\" & Left(NameVorlage, Len( _
NameVorlage) - 5) & "_" & .DataFields("NameKind")
End With
.Execute Pause:=False
'speichern und schließen des einzelnen Zetteldokuments
With WordAppl
If .Documents.Count > 1 Then
.ActiveDocument.SaveAs Filename:=strZiel & "_" & Datum & ".pdf",  _
FileFormat:=wdFormatPDF, AddToRecentFiles:=False
.ActiveDocument.Close 0    '=wdDoNotSaveChanges
End If
End With
Next i
End With
'Serienbriefstartdatei schließen
.Close 0    '=wdDoNotSaveChanges
End With
'versuche Word zu schließen
.Quit 0
End With
strDateiName = ""
Set WordDoc = Nothing
Set WordAppl = Nothing
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige