Microsoft Excel

Herbers Excel/VBA-Archiv

Startbild im Focus behalten | Herbers Excel-Forum


Betrifft: Startbild im Focus behalten von: Stefan K.
Geschrieben am: 25.11.2009 08:16:52

Guten Morgen liebe Excelprofis,
ich setzte mal wieder auf Eure Ratschläge. Ich habe in einer Datei ein Startbild (.visible=true), während im Hintergrund diverse Zellen in einer Schleife selektiert werden (hier werden Vorschaubilder in die Zellkommentare geladen). Während die Zellen selektiert werden, wandert der Focus natürlich mit nach unten und der ganze Bildschirminhalt verschiebt sich nach oben. Wie kann ich es anstellen, dass das Startbild solange auf dem Bildschirm sichtbar bleibt, bis das Makro durchlaufen wurde ? Habt Ihr eine Idee für mich ?
Besten Dank im Voraus.

Gruß
Stefan K.

  

Betrifft: AW: Startbild im Focus behalten von: werni
Geschrieben am: 25.11.2009 08:20:13

Hi Stefan

Verzichte auf Select

Gruss Werner


  

Betrifft: AW: Startbild im Focus behalten von: Stefan K.
Geschrieben am: 25.11.2009 08:28:04

Hallo Werner,
Danke, mache ich gerne, wenn Du mir jetzt noch verrätst, wie ich dann die Kommentare in die Zellen bekomme. Ich habe es jetzt halt so gelöst (man beachte meinen VBA-Status):

Dim mycom As Object
Cells(zeile, Spalte).Select
activecell.AddComment
Set mycom = ActiveCell.Comment.Shape
With mycom
.Fill.UserPicture ActiveCell.Hyperlinks(1).Address
.Width = 300
.Height = 200
End With

Gruß
Stefan


  

Betrifft: AW: Startbild im Focus behalten von: JogyB
Geschrieben am: 25.11.2009 08:38:53

Hi.

Woher kommen denn Zeile und Spalte?

Ohne Select könnte man es so machen:

Dim mycom As Object
Application.ScreenUpdating = False
With Cells(zeile, Spalte)
    .AddComment
    Set mycom = .Comment.Shape
    With mycom
        .Fill.UserPicture Cells(zeile, Spalte).Hyperlinks(1).Address
        .Width = 300
        .Height = 200
    End With
End With
Application.ScreenUpdating = True

Das Screenupdating solltest Du in jedem Fall ausschalten (am Anfang des Makros aus und am Ende wieder ein), sonst siehst Du jeden Schritt, den das Makro macht. Ist zum einen unschön, zum anderen langsam.

Gruss, Jogy


  

Betrifft: AW: Startbild im Focus behalten von: Stefan K.
Geschrieben am: 25.11.2009 12:14:13

Hallo JogyB,
Zeile und Spalte kommen von einer For..Next...Abfrage. Habe es dank Deiner Unterstützung jetzt hinbekommen. Die Zellen werden mit Kommentaren gefüllt, ohne Selektion. Mein Startbildschirm bleibt also so lange auf der Stelle, bis das Makro fertig ist. Kannst Du mir nochmal behilflich sein ? Ich habe ein das Startbild einen Fortschrittsbalken (einfach ein Shape-Objekt) eingebaut (Steinzeitmethode, aber funktioniert gut):

Dim Balken As String
For zeile = 3 To Cells(Rows.Count, 1).End(xlUp).Row
Balken = (zeile / 100)
With ActiveSheet.Shapes("Rectangle 406")
.Width = Balken
End With

Der Balken läuft also in Abhängigkeit der aktuellen Zeile mit nach rechts. Momentan habe ich 167 Zeilen. Also ist 167 = 100 %. Wie kann ich das in Relation setzen, dass z.B. auch 200 = 100 % sein können. Ich habe da momentan echt eine Denkblockade.

Danke und Gruß
Stefan


  

Betrifft: AW: Startbild im Focus behalten von: JogyB
Geschrieben am: 25.11.2009 12:59:31

Hi.

Balken = (zeile / (Cells(Rows.Count, 1).End(xlUp).Row - 2))

Die Anzahl an Zeilen ist ja letzte Zeile - erste Zeile + 1.

Die obige Formel ergibt also 1 für die letzte Zeile und läuft ansonsten linear mit der Zeilenzahl.

Bei der Zuweisung der Breite mußt Du das natürlich noch mit der Breite des Balkens bei 100% multiplizieren.

Gruss, Jogy


  

Betrifft: muß denn select sein ... ? von: Matthias L
Geschrieben am: 25.11.2009 08:28:43

Hallo

... wenn ja. dann schalte die Bildschirmaktualisierung am Anfang aus
Application.ScreenUpdating = False
und am Ende wieder ein
Application.ScreenUpdating = True

Gruß Matthias