Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
408to412
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
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Progressbar

Progressbar
thommy
Hallo Excelfreunde.
aus einer Userform starte ich folgendes Makro ( das mitunter ziemlich lange läuft). In der Userform habe ich auch eine Progressbar und tue mich verdammt schwer diese in das Makro einzubinden.
Vielleicht kann mir jemand helfen? Danke
thommy
Ach so VBA nein is vielleicht untertrieben, bei gut, denke ich, bräuchte ich diese Frage aber nicht stellen...

Sub cadvgl()
Application.ScreenUpdating = False 'verhindert fenstersprünge
Sheets("Material").Select
Range("c15").Select
Do Until ActiveCell.Offset(0, 0).Value = "Ende"
strSuchMuster = ActiveCell.Offset(0, 0).Value
Sheets("cad").Select
Range("A1").Select
Do While ActiveCell.Offset(0, 0).Value <> "" And ActiveCell.Offset(0, 0).Value <> strSuchMuster
ActiveCell.Offset(1, 0).Select
Loop
strRückgabeWert = ActiveCell.Offset(0, 1).Value
Sheets("Material").Select
ActiveCell.Offset(0, 5).Value = strRückgabeWert
ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True 'siehe oben
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Progressbar
Nepumuk
Hallo Tommy,
da hast du ein Problem. Ein Progressbar hat nur dann einen Sinn, wenn der Endwert einer Schleife vorher feststeht und bis zu diesem Endwert (= Maximalwert der Progressbar) der Progressbarvalue hochgezählt wird. Wenn du aber die ganzen unnötigen Select - Anweisungen aus deinem Makro entfernst, wird es sicher wesentlich schneller und damit die Progressbar unnötig.
Gruß
Nepumuk
OT Hallo Nepumuk...
K.Rola
...hast du schon eine Möglichkeit entdeckt, das Aus/Einblenden von
Zellen irgendwie auszuwerten? Ich stricke da gerade an einem Projekt,
wo das gut passen würde.
Gruß K.Rola
AW: OT Hallo Nepumuk...
Nepumuk
Hi K.Rola,
werte einfach das Click-Ereignis auf den Commanbarbutton aus. Dazu musst du nur die Buttons der Menüs synchronisieren. Ich habe mal ein Beispiel für einen eigenen Button gemacht: https://www.herber.de/bbs/user/4918.xls
Das sollte aber auch für Buttons in eingebauten Menüs funktionieren.
Gruß
Nepumuk
Anzeige
AW: OT Hallo Nepumuk...
K.Rola
...du bist eben doch der Meister, der Tipp war goldrichtig.
Btw, vielleicht verstehe ich das falsch, aber der Parameter temporary:=True
zeigt keinerlei Wirkung. Ich lösche die Commandbars und/oder controls immer
explizit. Worauf bezieht sich das temporary oder anders, wann soll das
aufreten?
Aus der Hilfe:
Temporary Optionaler Variant-Wert. True, um die neue Befehlsleiste als temporäre Befehlsleiste zu erstellen. Temporäre Befehlsleisten werden beim Schließen der Containeranwendung gelöscht. Der Standardwert ist False.
Was ist mit Containeranwendung da gemeint? Die Mappe oder Excel?
Wenn ich nur die Mappe schließe, ist die Leiste noch da.
Wenn ich Excel schließe, werden bei mir alle Leisten immer auf meine
Konfiguration zurückgesetzt, daher weiß ich nicht, ob sie da verschwinden
würde.
Gruß K.Rola
Anzeige
AW: OT Hallo Nepumuk...
Nepumuk
Hi K.Rola,
danke für die Blumen. Ich lösche selbstgenerierte Commandbars auch immer bei schließen der Mappe. Das ich sie temporär anlege dient nur der Sicherheit, falls mir die Mappe mal abschmiert. Mit Container ist Excel gemeint.
Gruß
Nepumuk
AW: OT Hallo Nepumuk...
K.Rola
...wenn du schon mal greifbar bist, gleich noch eine Verständnisfrage.
folgende Konstellation:
Option Explicit
Private butt1 As New clsButton
Private butt2 As New clsButton

Sub Set_controls()
Dim cb1 As CommandBar
Dim cbb1 As Office.CommandBarButton
Dim cbb2 As Office.CommandBarButton
Set cb1 = CommandBars("Row")
Set cbb1 = cb1.Controls("Ausblenden")
Set cbb2 = cb1.Controls("Einblenden")
butt1.SyncButton cbb1
butt2.SyncButton cbb2
End Sub

Zeigt mir bei Klick im Kontextmenü der Zeilen die caption der controls an.
So solls ja auch sein. Wenn ich nun im Menü Format|Zeilen auf die gleichnamigen
controls klicke, die ja dieselbe ID(883) haben, erfolgt die Anzeige auch.
Das ist ja toll, ist das auch gleich mit erschlagen.
Nun die eigentliche Frage, bezieht sich dann das Set cbb1 = cb1.Controls("Ausblenden")
intern auf die ID und nicht auf das control oder wie ist das zu verstehen?
Gruß K.Rola
Anzeige
AW: OT Hallo Nepumuk...
Nepumuk
Guten Morgen K.Rola,
mit der Set - Anweisung kreierst du einen Verweis auf ein Commandbarbuttonobjekt. Dieses Objekt wird von Excel in mehreren Menüs verwendet, deswegen kommt deine Meldung auch aus den anderen Menüs. Die ID der Controls ist natürlich identisch, da es sich um das selbe Objekt handelt.
Gruß
Nepumuk
AW: OT Hallo Nepumuk...
K.Rola
...du bist ja ein echt früher Vogel, der ja bekanntlich den dicken
Wurm pickt :›)
Danke, so in etwa hab ich mir das auch gedacht, nur nicht so genau
formuliert.
Gleich noch etwas. Das Ereignis im Klassenmodul tritt nun zuerst auf,
noch vor der eigentlichen Aktion, also hier ein/ausblenden von Zeilen.
Mein Code muss aber erst danach laufen, da die Zellen anhängig von der
Zeilenhöhe formatiert werden sollen.
Ich hab das jetzt erstmal mit einem OnTime gelöst, aber eine Sekunde
ist mir einfach zu lang. Du hast doch sicher eine Idee, wie ich dich kenne?
Gruß K.Rola
Anzeige
AW: OT Hallo Nepumuk...
Nepumuk
Hallo K.Rola,
dann musst du einen anderen Ansatz wählen. Ersetze die Buttons in den Standardmenüs mit eingenen Buttons. Ich hab dir mal ein Beispiel für das Menü "Row" gemacht. Den Rest wirst du sicher selbst ändern können. https://www.herber.de/bbs/user/4936.xls
Gruß
Nepumuk
AW: OT Hallo Nepumuk...
K.Rola
...danke, die Mühe hättest du dir nicht machen müssen, es ging mir
nur um die Idee/Ansatz, die Umsetzung bekomme ich schon hin.
Schönen Sonntag noch und bis kürzlich...
K.Rola
AW: Progressbar
thommy
Hallo Nepumuk,
Danke, dann werde ich es mal so probieren
schönes Wochenende noch
thommy
Anzeige
AW: Progressbar
PeterW
Hallo Thommy,
zur Progressbar hat Nepumuk dir schon was geschrieben. Habe mal versucht, deinen Code so umzusetzen, dass er ohne Select und Offset auskommt.

Sub cadvgl()
Dim lgQuell As Long
Dim lgZiel As Long
Dim strSuchmuster As String
lgQuell = 15
Do Until Sheets("Material").Cells(lgQuell, 3) = "Ende"
strSuchmuster = Sheets("Material").Cells(lgQuell, 3)
lgZiel = 1
Do While Sheets("cad").Cells(lgZiel, 1) <> "" And Sheets("cad").Cells(lgZiel, 1) <> strSuchmuster
lgZiel = lgZiel + 1
Loop
Sheets("Material").Cells(lgQuell, 8) = Sheets("cad").Cells(lgZiel, 2)
lgQuell = lgQuell + 1
Loop
End Sub

Gruß
Peter
Anzeige
Hallo Peter
thommy
Da hätte ich wohl mal eher wieder reinschauen sollen. Hätte ´n Haufen Zeit gespart...
Vielen Dank
Gruß
thommy

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige