Oprettet fre. d. 17. august 2012 kl. 14:32:07

denero
denero (2.725 point. Point ude: 0)

besked, mens "lang" makro kører

Har en forholdsvis lang makro. Kan man evt. få en meddelsesboks til at "vise" sig evt med "procesbar" ????, indtil makroen er afviklet. Word 2010

Skrevet fre. d. 17. august 2012 kl. 15:15:21| #1

Ja, det kan godt lade sig gøre, men der er ikke en standardfunktion til det. Du kan bruge metoden beskrevet her:
http://word.mvps.org/ (...)

Skrevet fre. d. 17. august 2012 kl. 15:36:49| #2

tjp
tjp (35.676 point)
Alternativt kan du jo også bare skrive til Statuslinjen, fx:
For i = 1 To 10
  For a = 1 To 5000000
  Next
  ' Skriver til statuslinje
  StatusBar = i
  DoEvents 
Next i

Til yderligere inspiration vedr. ProgressBar:
http://www.your-save-time-and-improve-quality-technologies-online-resource.com/ (...)

Skrevet fre. d. 17. august 2012 kl. 18:07:20| #3

Ifølge VBA-hjælpen er StatusBar ikke længere supporteret i VBA (gælder 2007 og 2010). Fra VBA hjælpen i 2007 og 2010:
StatusBar Property
This property is no longer supported in Microsoft Word Visual Basic for Applications.

Så vidt jeg kan se, fejler det ikke, men informationen bliver ikke som i 2003 og tidligere med sikkerhed stående. Andre handlinger vil ofte få Words indbyggede statuslinjeinformation til at dukke op igen og overskrive teksten, og så kommer det blot til at flimre med skiftende tekst.

Skrevet lør. d. 18. august 2012 kl. 07:09:08| #4

denero
denero (2.725 point)
prøver lige Lene´s forslag. Vender tilbage senere.

Skrevet lør. d. 18. august 2012 kl. 07:34:50| #5

denero
denero (2.725 point)
Har lavet efter anvisning på link fra Lene, men mangler lige lidt hjælp til, hvor min makro kommer ind i billedet.

Skrevet søn. d. 19. august 2012 kl. 01:51:00| #6

Nedenfor har jeg indsat kode, som måske bedre kan vise, hvad du kan gøre. Som MsgBox-teksterne siger, så indsæt i din kode det, der skal ske. I stedet for at indsætte al kode i din UserForm, er det bedre at lave kald til separate makroer, som du har placeret i et eller flere moduler i dit projekt. Du er nødt til at have koden afviklet i "bidder" og lægge noget til bredden af Label1 for hver "bid" for at kunne bruge progress-baren. I eksemplet her har jeg opdelt Label1 sådan, at 1/8 af den fulde længde lægges til hver gang. Du kan opdele efter behov og lade intervallerne være forskellige, så de bedst afspejler den tid, de forskellige dele tager at afvikle. Hvis forløbet skal se nogenlunde jævnt ud, skal du lave mange opdelinger.

Prøv at udskifte koden i UserForm1 med følgende. Behold makroen TestProgress og selve UserForm1 med Frame1 og Label1 uændret. Kør derefter makroen TestProgress, så du kan se, hvordan baren vokser:

Option Explicit

    Me.Repaint

    MsgBox "Indsæt 1. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 25
    Frame1.Repaint

    MsgBox "Indsæt 2. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 50
    Frame1.Repaint

    MsgBox "Indsæt 3. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 75
    Frame1.Repaint

    MsgBox "Indsæt 4. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 100
    Frame1.Repaint

    MsgBox "Indsæt 5. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 125
    Frame1.Repaint

    MsgBox "Indsæt 6. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 150
    Frame1.Repaint

    MsgBox "Indsæt 7. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 175
    Frame1.Repaint

    MsgBox "Indsæt 8. del af handlingen i koden i stedet for denne MsgBox"
    Label1.Width = 200
    Frame1.Repaint

' Unload UserForm when process finished
Unload Me

Skrevet søn. d. 19. august 2012 kl. 10:51:03| #7

denero
denero (2.725 point)
Fint -prøver det lige af. Vender tilbage senere, skal ud og nyde det herlige vejr.

Skrevet tir. d. 21. august 2012 kl. 21:22:55| #8

denero
denero (2.725 point)
Har prøvet med flg. kode og det gik ikke helt til held.

Option Explicit

Private Sub UserForm_Activate()

    Me.Repaint.Show
   
    'Dim docNew As Document
    Dim newTextbox As Shape
   
    'Tekstboks
    Set newTextbox = ActiveDocument.Shapes.AddTextbox _
        (Orientation:=msoTextOrientationHorizontal, _
        Left:=100, Top:=100, Width:=300, Height:=200)
   
    Label1.Width = 25
    Frame1.Repaint

    'Tekstboks indsæt bogmærke
    With newTextbox.TextFrame.TextRange
        .Bookmarks.Add Name:="Tekst"
    End With
 
    'Tekstboks gå til bogmærke
    If ActiveDocument.Bookmarks.Exists("Tekst") = True Then
    ActiveDocument.Bookmarks("Tekst").Select
    End If
   
    Label1.Width = 50
    Frame1.Repaint

    ' Tekstboks tekst
    Selection.TypeText Text:="Tekst 1"
    Selection.TypeParagraph
    Selection.TypeText Text:="Tekst 2"
    Selection.TypeParagraph
    Selection.TypeText Text:="Tekst 3"
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText Text:="Tekst 4"
    Selection.TypeParagraph
    Selection.TypeText Text:="Tekst 5"
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText Text:="Tekst 6"
    Selection.TypeParagraph
    Selection.TypeText Text:="Tekst 7"
    Selection.TypeParagraph
    Selection.TypeParagraph
   
    Label1.Width = 75
    Frame1.Repaint

    ' Tekstboks dato
    Selection.InsertDateTime DateTimeFormat:="d. MMMM yyyy", InsertAsField:= _
        False, DateLanguage:=wdDanish, CalendarType:=wdCalendarWestern, _
        InsertAsFullWidth:=False

    'Tekstboks gå til bogmærke
    If ActiveDocument.Bookmarks.Exists("Tekst") = True Then
    ActiveDocument.Bookmarks("Tekst").Select
    End If
   
    'Tekstboks marker alt
    Selection.WholeStory
   
    Label1.Width = 100
    Frame1.Repaint

    'Tekstboks font og størrelse
    Selection.Font.Name = "Klavika Rg"
    Selection.Font.Size = 6.5
   
    'Tekstboks linjeafstand
    With Selection.ParagraphFormat
        .SpaceBefore = 0
        .SpaceBeforeAuto = False
        .SpaceAfter = 0
        .SpaceAfterAuto = False
    End With
   
    Label1.Width = 125
    Frame1.Repaint

    'Tekstboks placering, størrelse og frame
    Selection.ShapeRange.Select
    Selection.ShapeRange.Fill.Solid
   
    Selection.ShapeRange.Fill.Visible = msoFalse
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoFalse
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = 110.85
    Selection.ShapeRange.Width = 91.85
    Selection.ShapeRange.Left = 479.05
    Selection.ShapeRange.Top = 119.05
    Selection.ShapeRange.TextFrame.MarginLeft = 0#
    Selection.ShapeRange.TextFrame.MarginRight = 0#
    Selection.ShapeRange.TextFrame.MarginTop = 0#
    Selection.ShapeRange.TextFrame.MarginBottom = 0#
    Selection.ShapeRange.RelativeHorizontalPosition = _
        wdRelativeHorizontalPositionPage
    Selection.ShapeRange.RelativeVerticalPosition = _
        wdRelativeVerticalPositionPage
    Selection.ShapeRange.RelativeHorizontalSize = wdRelativeHorizontalSizePage
    Selection.ShapeRange.RelativeVerticalSize = wdRelativeVerticalSizePage
    Selection.ShapeRange.Left = CentimetersToPoints(16.9)
    Selection.ShapeRange.LeftRelative = wdShapePositionRelativeNone
    Selection.ShapeRange.Top = CentimetersToPoints(4.2)
    Selection.ShapeRange.TopRelative = wdShapePositionRelativeNone
    Selection.ShapeRange.WidthRelative = wdShapeSizeRelativeNone
    Selection.ShapeRange.HeightRelative = wdShapeSizeRelativeNone
    Selection.ShapeRange.LockAnchor = True
    Selection.ShapeRange.LayoutInCell = True
    Selection.ShapeRange.WrapFormat.AllowOverlap = True
    Selection.ShapeRange.WrapFormat.Side = wdWrapBoth
    Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0)
    Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0)
    Selection.ShapeRange.WrapFormat.DistanceLeft = CentimetersToPoints(0.32)
    Selection.ShapeRange.WrapFormat.DistanceRight = CentimetersToPoints(0.32)
    Selection.ShapeRange.WrapFormat.Type = 3
    Selection.ShapeRange.ZOrder 4
    Selection.ShapeRange.TextFrame.AutoSize = False
    Selection.ShapeRange.TextFrame.WordWrap = True
    Selection.ShapeRange.TextFrame.VerticalAnchor = msoAnchorTop
   
    Label1.Width = 150
    Frame1.Repaint

    'Dokument
        Selection.GoTo What:=wdGoToSection, Which:=wdGoToFirst, count:=1, Name:=""
   
    Label1.Width = 200
    Frame1.Repaint

' Unload UserForm when process finished
Unload Me
End Sub

Skrevet lør. d. 01. september 2012 kl. 06:50:47| #9

denero
denero (2.725 point)
Der er tilsyneladende ikke yderligere kommentarer. Vil du lægge et svar Lene?

Skrevet fre. d. 07. september 2012 kl. 11:23:02| #10


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

HJÆLP med word.

Oprettet den 8. maj 2013 kl. 18.22
golffreak90 giver 200 point for svar | Giv et svar »

Skift af typografi i et felt

Oprettet den 7. maj 2013 kl. 23.50
trav4u2 giver 60 point for svar | Giv et svar »

Tabel splittes

Oprettet den 30. april 2013 kl. 09.47
endurancel giver 30 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er Googles nyeste værktøj og legetøj

Google har i denne uge afholdt udviklerkonferencen I/O i San Francisco. Se her hvad søgegiganten kunne præsentere af nyskabelser.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger