Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
164to168
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
164to168
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro soll bei angezeigter Userform weiterlaufen ?

Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 21:02:18
Maniac
Ich habe eine Userform aufgerufen und das Makro bleibt stehen.
Was stell ich ein damit das Makro im Hintergrund weiterläuft.

Warscheinlich ne blöde Frage, aber habt Dank! :-)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 21:07:28
andreas e
hallo maniac,
wie rufst du denn die UF auf und was soll das makro machen ?
etwas dürftig deine infos !
gruß
andreas e

http://www.skripteundaufgaben.de viele kostenlose Downloads und Lösungsansätze zu EXCEL und mehr

Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 21:21:59
Maniac
Ich ruf sie ganz normal auf mit ".show" auf, dann soll im Hintergrund weitergewuselt werden, und am Ende die userform wieder geschlossen werden.

Sub blabla()
UserForm8.Show
.
.
.
.
UserForm8.hide
end sub

Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 21:32:04
andreas e
und wo steigt dein makro mit welcher fehlermeldung aus ?
sorry , aber das istwieder mal so ne frage - "Bei mir geht was nicht ......" ist ja auch oki , aber was denn nun komkret ?
gruß
andreas e
Anzeige
Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 21:41:02
maniac
Da bibts keine Fehlermeldung.
Das Makro bleibt solange stehen, bis ich in der Userform oben rechts das "x" anklicke, oder die schaltfläche "SCHLIESSEN" anklicke, welche mit dem commando userform8.hide verknüpft ist.

Private Sub SCHLIESSEN_Click()
UserForm8.Hide
End Sub

ich will aber nicht "SCHLIESSEN" anklicken, sondern das prog soll weiterlaufen und am ende die userform selber schliessen.
Hoffe nun hab ich alles beschrieben, bin halt noch VBA-Anfänger!:-)

Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 22:01:29
andreas e
und wie sieht dein makro aus ?meinst du saowas wie ne fortschrittsanzeige ?

andreas e

Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 22:17:30
Maniac
Nö der macht ganz normale Sachen. Ich hätte zwischen "show" und "hide" auch einfach irgendwelche Zellkopierungen oder irgendwas billiges einfügen können. Jedoch, wie bereits gesagt bleibt er einfach stehen, und wartet bis ich die useform manuell schließe, um dann mit dem Makro fortzufahren.

Hier mal der Teil des Codes, hätte auch irgendwas anderes zwischen show und hide stehen können z.B.:
Range("A1").FormulaR1C1 = "Scheisse ich komm nicht weiter!"

'Hier der komplette CODE:


Sub David_kbps_umwandeln_CBR()
UserForm8.Show


kbps0 = UserForm2.ComboBox1
If kbps0 = 0 Then
kbps1 = "64"
Else
End If
If kbps0 = 1 Then
kbps1 = "80"
Else
End If
If kbps0 = 2 Then
kbps1 = "96"
Else
End If
If kbps0 = 3 Then
kbps1 = "112"
Else
End If
If kbps0 = 4 Then
kbps1 = "128"
Else
End If
If kbps0 = 5 Then
kbps1 = "144"
Else
End If
If kbps0 = 6 Then
kbps1 = "160"
Else
End If

quali0 = UserForm2.ComboBox2
If quali0 = 0 Then
quali1 = " " 'kein
Else
End If
If quali0 = 1 Then
quali1 = " -f " 'speed
Else
End If
If quali0 = 2 Then
quali1 = " -h " 'qualität
Else
End If


wichtig3 = ActiveWorkbook.Path
wichtig4 = Left$(wichtig3, Len(wichtig3) - 5)


Set fs = CreateObject("Scripting.FileSystemObject")

Anzahl = 0

For Each zelle In Selection

dddadr = zelle.AddressLocal
dddadr = Replace(dddadr, "$", "")
dddadr = Replace(dddadr, "A", "")
dddadr = Replace(dddadr, "B", "")
dddadr = Replace(dddadr, "C", "")
dddadr = Replace(dddadr, "D", "")
dddadr = Replace(dddadr, "E", "")
dddadr = Replace(dddadr, "F", "")
dddadr = Replace(dddadr, "G", "")
dddadr = Replace(dddadr, "H", "")
dddadr = Replace(dddadr, "I", "")
dddadr = Replace(dddadr, "J", "")
dddadr = Replace(dddadr, "K", "")
dddadr = Replace(dddadr, "L", "")
dddadr = Replace(dddadr, "M", "")
dddadr = Replace(dddadr, "N", "")
dddadr = Replace(dddadr, "O", "")
dddadr = Replace(dddadr, "P", "")
dddadr = Replace(dddadr, "Q", "")
dddadr = Replace(dddadr, "R", "")
dddadr = Replace(dddadr, "S", "")
dddadr = Replace(dddadr, "T", "")
dddadr = Replace(dddadr, "U", "")
dddadr = Replace(dddadr, "V", "")
dddadr = Replace(dddadr, "W", "")
dddadr = Replace(dddadr, "X", "")
dddadr = Replace(dddadr, "Y", "")
dddadr = Replace(dddadr, "Z", "")


Set a = fs.CreateTextFile(wichtig3 & "\umwandeln.bat", True)
a.WriteLine ("@ECHO OFF")
a.WriteLine ("cd\")


alt = Range("a" & dddadr) & "\" & Range("b" & dddadr) & ".mp3"
neu = Range("a" & dddadr) & "\" & Range("b" & dddadr) & "(((0))).mp3"
neu_um = Range("a" & dddadr) & "\" & Range("b" & dddadr) & "(((1))).mp3"
Name alt As neu
a.WriteLine (wichtig4 & "\tool\lame -b " & kbps1 & " -m j" & quali1 & "--resample 44.1 " & _
"--ta " & """" & Range("V" & dddadr) & """" & " " & _
"--tt " & """" & Range("W" & dddadr) & """" & " " & _
"--tl " & """" & Range("X" & dddadr) & """" & " " & _
"--ty " & """" & Range("Y" & dddadr) & """" & " " & _
"--tg " & """" & Range("Z" & dddadr) & """" & " " & _
"--tc " & """" & Range("AA" & dddadr) & """" & " " & _
"--tn " & """" & Range("AB" & dddadr) & """" & " " & _
"""" & neu & """" & " " & _
"""" & neu_um & """")

a.WriteLine ("ECHO Fertig>" & wichtig3 & "\FERTIG.DAT")
a.Close

Dim Exe
Start = wichtig3 & "\umwandeln.bat"

Exe = Shell(Start, 6)

While Dir(wichtig3 & "\FERTIG.DAT") = ""
Wend
dat = wichtig3 & "\FERTIG.DAT"
bat = wichtig3 & "\umwandeln.bat"

newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime


fs.DeleteFile dat, True
fs.DeleteFile bat, True



'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If Dir$(neu_um) <> "" Then
grösse_neu_um = FileLen(neu_um)
grösse_neu = FileLen(neu)


If grösse_neu_um > 0 Then

Dim filename As String
filename = neu_um
Call ReadMP3(filename, True, True)


D_Bitrate = Getmp3info2.Bitrate
D_Zeit = Getmp3info2.Duration

zeitkontrolle = Abs(((D_Zeit / Range("I" & dddadr)) - 1) * 100)
If zeitkontrolle > 1 Then
okoderfehler = "FEHLER"
Else
okoderfehler = "OK"
End If

Range("AC" & dddadr) = okoderfehler & " " & (grösse_neu - grösse_neu_um) / 1024

Else
End If

Else
End If

If Dir$(neu) <> "" Then
If Dir$(neu_um) <> "" Then
If okoderfehler = "OK" Then
fs.DeleteFile neu, True
Name neu_um As alt
Else
fs.DeleteFile neu_um, True
Name neu As alt
End If
Else
End If
Else
End If

Anzahl = Anzahl + 1
UserForm8.TextBox1.Text = Anzahl

Next

UserForm8.Hide
End Sub

Anzeige
Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 23:16:11
Ralf Sögel
1. userform nichtmodal anzeigen.
2. mit unload me beenden.
Re: Makro soll bei angezeigter Userform weiterlaufen ?
04.10.2002 23:22:55
PeterW
Hallo Maniac,

mag sein, dass in XP alles anders ist (hier läuft Version 8) aber es macht schon Sinn, nicht mehrere Prozesse gleichzeitig ablaufen zu lassen. Stell Dir mal vor, dass Du über eine UF einen Zellwert änderst, wie sollte der Rest des Makros das registrieren können?

Was an Deinem Code noch auffällt (sofern es sich um den kompletten Code handelt) sind die unnötigen Else:
If Blabla then
mache dies
mache auch das
Else
End If

Gruß
Peter

Re: Makro soll bei angezeigter Userform weiterlaufen ?
05.10.2002 13:05:00
Maniac
Zwecks Else:

Da wird der Code noch weiter geschrieben, ist also noch nicht fertig.
_______________

Zwecks "Stell Dir mal vor, dass Du über eine UF einen Zellwert änderst, wie sollte der Rest des Makros das registrieren können?":
Die UF soll nichts ändern, soll nur informieren!

Anzeige
Re: Makro soll bei angezeigter Userform weiterlaufen ?
05.10.2002 13:17:27
Maniac
SUPI das wars!
Hast recht: showmodal auf false setzen !!!!
Danke Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige