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

Userform Problem

Userform Problem
01.11.2007 19:10:09
Walter
Guten Abend,
ich habe ein Problem.
Ich lade eine Datei in der wird in der Auto_Open eine
Userform gestartet.
Wenn ich nun die UF schließe läuftz mein KopierMakro weiter, sonst nicht.
Wie könnte man dies bewerkstelligen ?
mfg Walter MB

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Problem
01.11.2007 19:16:00
Jens
Hallo Walter
Setz die Userform mal auf ShowModal = False.
Mehr könnte ich nicht dazu sagen, ohne den Code zu sehen.
Gruß aus dem Sauerland
Jens

Schick mal Code
01.11.2007 19:26:00
Walter
Hallo Jens,
anbei der Code, läuft einwandfrei wenn ich dies von der Tabellen-Oberfläche aus starte.
Da ich nicht weiß welche Datei mit UF versehen ist kann ich da ja nichts ändern.
Hier ist der Code, den hat mir freundlicherweise Peter Feustel erstellt, ein Profi, ist auch immer
im Forum.

Public Sub Daten_holen_III()
Dim DatName        As String     ' Pfad und Name der ausgewählten Mappe
Dim WkBk_Quelle    As Workbook   ' das Herkunfts-Workbook - die Quelle
Dim WkSh_Q         As Worksheet  ' zur bequemeren Schreibweise
Dim iBlatt_Q       As Integer    ' For/Next Index der Tabellenblätter der Quelldatei
Dim lZeile_Q       As Long       ' For/Next Zeilen-Index zum Verkäufer auslesen
Dim WkBk_Ziel      As Workbook   ' das Empfangs-Workbook - das Ziel
Dim iBlatt_Z       As Integer    ' For/Next Index der Tabellenblätter der Zieldatei
Dim aVerkaeufer()  As Variant    ' ein Array der Verkäufer-Namen
Dim iArrIndx       As Integer    ' der Index zum Array
Dim iGefunden      As Integer    ' der Schalter ob alle Tabellenblätter vorhanden sind
'    hier kann die zu kopierende Datei ausgewählt werden.
ChDir "C:\"
DatName = Application.GetOpenFilename("Microsoft Excel-Dateien ( (*.xls), *.xls", , _
"    Bitte die erforderliche Excel-Mappe auswählen.")
If DatName = "" Or DatName = "Falsch" Then
MsgBox "Sie haben keine Datei ausgewählt => Abbruch!", _
48, "   Hinweis für " & Application.UserName
Exit Sub
End If
Application.ScreenUpdating = False ' den Bildschirm-Update unterdrücken
Set WkBk_Ziel = ActiveWorkbook     ' diese Datei ist das Ziel !!!
Set WkSh_Q = Worksheets("Eingabe")
For lZeile_Q = 10 To WkSh_Q.Cells(Rows.Count, 133).End(xlUp).Row
If WkSh_Q.Cells(lZeile_Q, 133).Value  "" Then
iArrIndx = iArrIndx + 1
ReDim Preserve aVerkaeufer(iArrIndx)
aVerkaeufer(iArrIndx) = Trim(WkSh_Q.Cells(lZeile_Q, 133).Value)
End If
Next lZeile_Q
'                                     ' diese Datei ist die Quelle !!!
Set WkBk_Quelle = Workbooks.Open(Filename:=(DatName), ReadOnly:=True)
'    alle Blätter gemäß Verkäufer-Array bearbeiten
For iArrIndx = 1 To UBound(aVerkaeufer)
iGefunden = 0
For iBlatt_Z = 1 To WkBk_Ziel.Sheets.Count
If WkBk_Ziel.Sheets(iBlatt_Z).Name = aVerkaeufer(iArrIndx) Then
iGefunden = iGefunden + 1
Exit For
End If
Next iBlatt_Z
For iBlatt_Q = 1 To WkBk_Quelle.Sheets.Count
If WkBk_Quelle.Sheets(iBlatt_Q).Name = aVerkaeufer(iArrIndx) Then
iGefunden = iGefunden + 1
Exit For
End If
Next iBlatt_Q
If iGefunden = 2 Then
WkBk_Quelle.Sheets(aVerkaeufer(iArrIndx)).Range("G20:H33").Copy Destination:= _
WkBk_Ziel.Sheets(aVerkaeufer(iArrIndx)).Range("G20")
Else
MsgBox "Zum Verkäufer  """ & aVerkaeufer(iArrIndx) & """  wurde entweder" & _
Chr(10) & "in der Ziel- oder in der Quell-Mappe kein passendes" & Chr(10) & _
"Tabellenblatt gefunden.", 48, "   Hinweis für " & Application.UserName
End If
Next iArrIndx  ' das nächste Tabellenblatt holen
Application.CutCopyMode = False       ' Copy-Mode zurücksetzten
WkBk_Quelle.Close SaveChanges:=False  ' die Quell-Datei wieder schließen
Application.ScreenUpdating = True     ' den Bildschirm-Update wieder zulassen
End Sub


Anzeige
AW: Userform Problem
01.11.2007 19:54:00
Luschi
Hallo Walter,
wenn ich Dich richtig verstehe, willst Du, daß das Formular nicht erscheint, wenn man die Datei per Vba-Code öffnet. Da in Deinem Fall die Datei schreibgeschützt (ReadOnly) geöffnet wird, kannst Du diese Eigenschaft dazu nutzen.
Verändere das AutoOpen-Makro in den Dateien, in denen sich bei normalem Öffnen ein Formular
auf tut:

Sub Auto_Open()
If ThisWorkbook.ReadOnly Then
Exit Sub
End If
'Hier der weitere Vba-Code
End Sub

Gruß von Luschi
aus klein-Paris

Danke für den Hinweis -)
01.11.2007 20:01:00
Walter
Hallo Luschi, ich kann die Dateien vorher nicht bearbeiten, na ja muß ich halt
die Datei irgenwie so schließen,
DANKE,
mfg Walter MB
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige