Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1304to1308
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
Ungebundenes Formular anzeigen
25.03.2013 16:47:20
Claudia
Hallo zusammen -
ich verstehe die Fehlermeldung: "Ungebundenes Formular kann nicht angezeigt werden, während gebundenes Formular angezeigt wird" leider nicht. Der Code bleibt leider immer hier hängen Fortschrittsanzeige.Show vbModeless
Wie müsste ich denn Fortschrittsanzeige.Show vbModeless abwandeln, damit es über der UserForm angezeigt wird? Bzw. kann ich die UserForm vorher schon ausblenden, dass nur noch die Fortschrittsanzeige angezeigt wird, der Code aber trotzdem vollständig durchläuft?
Danke für einen Tipp & viele Grüße
Claudia
Private Sub cmdOK_Click()
'Import der Daten des AER
Dim wkbOld As Workbook
Dim wkbNew As Workbook
Set wkbOld = ActiveWorkbook
'Fortschrittsanzeige
Dim ProzFertig As Single
Set Fortschrittsanzeige = New Progress
'Fortschrittsanzeige anzeigen
Fortschrittsanzeige.Show vbModeless
If TypeName(ActiveSheet)  "Worksheet" Then
'Unload Fortschrittsanzeige
'Exit Sub
End If
'Import der Daten des AER
FileCheckOpen (Me.TextBox_Path_EmB.Text)
Set wkbNew = ActiveWorkbook
Sheets("Annex").Activate
Range("C14:F2500").Copy
wkbOld.Activate
Sheets("Import AER AO").Activate
Range("A1").PasteSpecial
GoTo done1
error1:
MsgBox ("Import not completed. Data incomplete or contains an error.")
On Error Resume Next
wkbNew.Close False
done1:
Application.DisplayAlerts = False
Workbooks(Mid(TextBox_Path_EmB.Value, InStrRev(TextBox_Path_EmB.Value, "\") + 1)).Close _
SaveChanges:=False
'Fortschrittsanzeige
ProzFertig = 0.33
Call FortschrittAktualisieren(proz)
'Import der Daten aus ETS-SF (2x Emissionen und TKM)
FileCheckOpen (Me.TextBox_Path_ETSSF.Text)
Set wkbNew = ActiveWorkbook
Sheets("Annex").Activate
Range("C14:F2500").Copy
wkbOld.Activate
Sheets("Import ETS-SF AE").Activate
Range("A1").PasteSpecial
'Fortschrittsanzeige
ProzFertig = 0.66
Call FortschrittAktualisieren(proz)
FileCheckOpen (Me.TextBox_Path_ETSSF.Text)
Set wkbNew = ActiveWorkbook
Sheets("Tonne-kilometre Data").Activate
Range("C8:L2500").Copy
wkbOld.Activate
Sheets("Import ETS-SF TKM").Activate
Range("A1").PasteSpecial
GoTo done2
error2:
MsgBox ("Import not completed. Data incomplete or contains an error.")
On Error Resume Next
wkbNew.Close False
done2:
Application.DisplayAlerts = False
Workbooks(Mid(TextBox_Path_ETSSF.Value, InStrRev(TextBox_Path_ETSSF.Value, "\") + 1)).Close  _
_
SaveChanges:=False
'Fortschrittsanzeige
ProzFertig = 1
Call FortschrittAktualisieren(proz)
Unload Fortschrittsanzeige
Set Fortschrittsanzeige = Nothing
End Sub

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ungebundenes Formular anzeigen
25.03.2013 17:25:42
Tino
Hallo,
blende die andere Form zuvor aus z.Bsp. so
UserForm1.Hide
Fortschrittsanzeige.Show vbModeless
Unload Fortschrittsanzeige
UserForm1.show
Gruß Tino

AW: Ungebundenes Formular anzeigen
25.03.2013 17:34:50
Daniel
Hi
grundsätzlich ist es so, daß wenn ein gebundenes Formular geöffnet ist, keine ungebundenen mehr angezeigt werden können.
ich würde dein Problem so lösen:
- richte in deiner Userform eine Multipage mit 2 Seiten ein, auf ersten Seite platzierst du die Buttons und Steuerelemente, auf der zweiten seite den Fortschrittsbalken.
dann kannst du, wenn der FS-Balken sichtbar sein soll, einfach auf sie zweite Seite wechseln und benötigst keine zweite Userform.
die Register der Multipage kannst du ausblenden, so daß der Anwender nicht per Klick auf die zweite Seite wechslen kann.
Gruß Daniel

Anzeige
AW: Ungebundenes Formular anzeigen
25.03.2013 17:46:43
Rudi
Hallo,
bei einer so kurzen Aktion finde ich (eigentlich generell) eine PB ziemlich überflüssig. Die bremst nur.
versuchs mal so:
Private Sub cmdOK_Click()
'Import der Daten des AER
Dim wkbOld As Workbook
Dim wkbNew As Workbook
Set wkbOld = ActiveWorkbook
Application.ScreenUpdating = False
On Error GoTo ERREXIT
'Import der Daten des AER
FileCheckOpen (Me.TextBox_Path_EmB.Text)
Set wkbNew = ActiveWorkbook
Sheets("Annex").Range("C14:F2500").Copy
wkbOld.Sheets("Import AER AO").Range("A1").PasteSpecial
wkbNew.Close False
Application.StatusBar = "33%"
'Import der Daten aus ETS-SF (2x Emissionen und TKM)
FileCheckOpen (Me.TextBox_Path_ETSSF.Text)
Set wkbNew = ActiveWorkbook
wkbNew.Sheets("Annex").Range("C14:F2500").Copy
wkbOld.Sheets("Import ETS-SF AE").Range("A1").PasteSpecial
wkbNew.Sheets("Tonne-kilometre Data").Range("C8:L2500").Copy
wkbOld.Sheets("Import ETS-SF TKM").Range("A1").PasteSpecial
wkbNew.Close False
Application.StatusBar = False
Exit Sub
ERREXIT:
MsgBox ("Import not completed. Data incomplete or contains an error.")
On Error Resume Next
wkbNew.Close False
Application.StatusBar = False
End Sub
Bei PasteSpecial solltest du auch den Paste-Typ angeben, z.B. xlPasteValues
Gruß
Rudi

Anzeige
AW: Ungebundenes Formular anzeigen
25.03.2013 18:35:23
Claudia
Hallo Rudi, hallo Daniel, hallo Tino,
vielen Dank für die Erläuterungen! Nach der Umsetzung kann ich Rudis Geschwindigkeitsargument nachvollziehen. So geht es einfach schneller. Allerdings Application.StatusBar="33%" funktioniert irgendwie nicht... Es müsste doch ein gesondertes Fenster angezeigt werde, oder?
Danke & LG
Claudia

AW: Ungebundenes Formular anzeigen
25.03.2013 19:14:38
Matze
Hallo,
fehlt hier in dieser Zeile: wkbNew.Close False nicht das = vor False?
gehe im VBA Editor mit dem Curser in das Wort Statusbar und drück mal F1
Matze

AW: Ungebundenes Formular anzeigen
25.03.2013 19:34:52
Hajo_Zi
Hallo Matze,
da fehlt nichts.
Gruß Hajo

Anzeige
AW: Ungebundenes Formular anzeigen
25.03.2013 21:17:50
Hajo_Zi
Hallo Matze,
man könnte noch "SaveChanges:=" davor schreiben (vor False). Dies ist aber nicht notwendig. Da es das erste Argument ist, es wurde nicht mit Kommas gearbeitet um das 2 und 3 Argument mitzugeben.
Gruß Hajo

AW: Ungebundenes Formular anzeigen
26.03.2013 09:19:55
Claudia
Guten Morgen,
ich habe versucht es umzusetzen. Da ich mit der StatusBar nicht klarkomme, habe ich es nochmal mit dem Fortschrittsbalken probiert. Ohne den Balken funktioniert der Code, nur mit dem Balken wird zu ERREXIT gesprungen. Hat noch jemand einen Tipp? Danke!
Einen schönen Tag wünscht die
Claudia
Private Sub cmdOK_Click()
'Import der Daten des AER
Dim wkbOld As Workbook
Dim wkbNew As Workbook
Dim ProzFertig As Single
Set wkbOld = ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo ERREXIT
Set Fortschrittsanzeige = New UserForm1
ERE.Hide
Fortschrittsanzeige.Show vbModeless
If TypeName(ActiveSheet)  "Worksheet" Then
Unload Fortschrittsanzeige
Exit Sub
End If
'Import der Daten des AER
FileCheckOpen (Me.TextBox_Path_EmB.Text)
Set wkbNew = ActiveWorkbook
Sheets("Annex").Range("C14:F2500").Copy
wkbOld.Sheets("Import AER AO").Range("A1").PasteSpecial
wkbNew.Close False
ProzFertig = 0.33
Call FortschrittAktualisieren(ProzFertig)
'Import der Daten aus ETS-SF (2x Emissionen und TKM)
FileCheckOpen (Me.TextBox_Path_ETSSF.Text)
Set wkbNew = ActiveWorkbook
wkbNew.Sheets("Annex").Range("C14:F2500").Copy
wkbOld.Sheets("Import ETS-SF AE").Range("A1").PasteSpecial
ProzFertig = 0.66
Call FortschrittAktualisieren(ProzFertig)
wkbNew.Sheets("Tonne-kilometre Data").Range("C8:L2500").Copy
wkbOld.Sheets("Import ETS-SF TKM").Range("A1").PasteSpecial
wkbNew.Close False
ProzFertig = 1
Call FortschrittAktualisieren(ProzFertig)
Unload Fortschrittsanzeige
Set Fortschrittsanzeige = Nothing
ERE.Show
Exit Sub
ERREXIT:
MsgBox ("Import not completed. Data incomplete or contains an error.")
On Error Resume Next
wkbNew.Close False
End Sub

Option Explicit
Dim Fortschrittsanzeige As UserForm1
Sub FortschrittAktualisieren(proz)
With Fortschrittsanzeige
.frmFortschritt.Caption = Format(proz, "0%")
.lblFortschritt.Width = proz * (.frmFortschritt _
.Width - 10)
End With
DoEvents
End Sub

Anzeige
AW: Ungebundenes Formular anzeigen
26.03.2013 09:48:39
Tino
Hallo,
ich verstehe an dem Code so einiges nicht.
Was ist frmFortschritt ist dies die Userform1?
Lade mal ein Bsp. hoch!
Gruß Tino

AW: Ungebundenes Formular anzeigen
26.03.2013 09:55:01
Claudia
Hallo Tino,
hochladen geht leider nicht... .
frmFortschritt ist ein Rahmen in der UserForm1
lblFortschritt ist ein Bezeichnunsgsfeld im Rahmen der UserForm1
Beides zusammen macht dann den Fortschrittsbalken.
Gruß
Claudia

AW: Ungebundenes Formular anzeigen
26.03.2013 10:46:28
Tino
Hallo,
ist zwar nicht schön, sollte aber funktionieren.
kommt als Code in Userform1
Option Explicit 
 
Private Sub UserForm_Terminate() 
Application.OnTime Now + TimeSerial(0, 0, 1), "Show_ErE" 
End Sub 
kommt als Code in ERE
Option Explicit 
 
Sub FortschrittAktualisieren(objForm As Object, proz) 
With objForm 
    .frmFortschritt.Caption = Format(proz, "0%") 
    .lblFortschritt.Width = proz * (.frmFortschritt.Width - 10) 
    .Repaint 
End With 
End Sub 
 
Private Sub cmdOK_Click() 
    
'Import der Daten des AER 
Dim wkbOld As Workbook 
Dim wkbNew As Workbook 
Dim ProzFertig As Single 
Set wkbOld = ActiveWorkbook 
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
 
On Error GoTo ERREXIT 
 
If TypeName(ActiveSheet) <> "Worksheet" Then 
   Exit Sub 
End If 
 
ERE.Hide: Application.ScreenUpdating = True 
Userform1.Show False 
 
'Import der Daten des AER 
FileCheckOpen (Me.TextBox_Path_EmB.Text) 
Set wkbNew = ActiveWorkbook 
 
Sheets("Annex").Range("C14:F2500").Copy 
wkbOld.Sheets("Import AER AO").Range("A1").PasteSpecial 
wkbNew.Close False 
      
ProzFertig = 0.33 
Call FortschrittAktualisieren(Userform1, ProzFertig) 
Application.Wait Now + TimeSerial(0, 0, 2) 
'Import der Daten aus ETS-SF (2x Emissionen und TKM) 
FileCheckOpen (Me.TextBox_Path_ETSSF.Text) 
Set wkbNew = ActiveWorkbook 
 
wkbNew.Sheets("Annex").Range("C14:F2500").Copy 
wkbOld.Sheets("Import ETS-SF AE").Range("A1").PasteSpecial 
 
ProzFertig = 0.66 
Call FortschrittAktualisieren(Userform1, ProzFertig) 
 
wkbNew.Sheets("Tonne-kilometre Data").Range("C8:L2500").Copy 
wkbOld.Sheets("Import ETS-SF TKM").Range("A1").PasteSpecial 
 
wkbNew.Close False 
 
ProzFertig = 1 
Call FortschrittAktualisieren(Userform1, ProzFertig) 
 
Unload Userform1 
Exit Sub 
 
ERREXIT: 
MsgBox ("Import not completed. Data incomplete or contains an error.") 
On Error Resume Next 
wkbNew.Close False 
             
End Sub 
kommt als Code in Modul1
Option Explicit 
 
 
 
Sub Show_ErE() 
    ERE.Show 
End Sub 
Gruß Tino

Anzeige
AW: Ungebundenes Formular anzeigen
26.03.2013 10:49:10
Tino
Hallo,
mach die Zeile
Application.Wait Now + TimeSerial(0, 0, 2)
raus, die war zum testen eingebaut.
Gruß Tino

AW: Ungebundenes Formular anzeigen
26.03.2013 12:16:11
Claudia
Hallo Tino,
leider kann ich das File nicht hochladen...
frmFortschritt ist ein Rahmen
lblFortschritt ein Bezeichnungsfeld
Beides zusammen ist die Fortschrittsanzeige.
So verständlicher?!
Vielen Dank & Gruß
Claudia

Funktioniert -vielen Dank!
26.03.2013 13:08:44
Claudia
Hallo Toni,
so läuft es -vielen Dank und einen schönen Tag.
Gruß
Claudia
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen