Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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
Inhaltsverzeichnis

Makro löst Flimmern/Flaggern aus

Makro löst Flimmern/Flaggern aus
26.01.2009 20:58:00
werner
Hallo zusammen,
ich komme mal wieder nicht weiter, folgendes Makro benödige ich 175 mal :
Sub ma1geez()
Application.ScreenUpdating = False
Application.EnableEvents = False
With Sheets("Gehälter")
If .Range("N11") = 1 Then
If MsgBox("soll die Erhöhung von " & .Range("A11") & _
" wirklich übernommen werden?", vbYesNo) = vbYes Then
Sheets("Gehälter").Range("R3") = .Range("Y2")
.Range("G11") = Sheets("Tabelle1").Range("E20")
ma1ü
Sheets("Tabelle1").Range("J14") = 0
Else
Sheets("Tabelle1").Range("J14") = 0
End If
End If
If .Range("O11") = 1 Then
If MsgBox("Bitte bestätigen Sie die Aktualisierung von" & " " & .Range("A11"), vbYesNo) = vbYes Then
Sheets("Gehälter").Range("R11") = Range("J11")
Sheets("Gehälter").Range("R3") = .Range("Y2")
ma1ü
Range("G11") = ""
Else
Range("G11") = ""
End If
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub


und zwar von ma1geez - ma175geez, jetzt habe ich alle Makros in ein Modul geschrieben und in der Tabelle, wo ich es brauche habe ich folgendes Makro geschrieben.


Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
ma1geez
ma2geez
ma3geez
ma4geez
ma5geez
ma6geez
ma7geez
ma8geez
ma9geez
ma10geez
ma11geez
Application.ScreenUpdating = True
End Sub


das Makro wird zwar ausgelöst aber am Bildschirm sieht das nicht gut aus (Flimmern/ Flaggern)
Wer kann mir Helfen ?
Gruß Werner

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro löst Flimmern/Flaggern aus
26.01.2009 21:07:00
Tino
Hallo,
teste mal und schalte die Bildschirmaktualisierung nur einmal aus bzw. an
Application.ScreenUpdating = False
Gruß Tino
AW: Makro löst Flimmern/Flaggern aus
26.01.2009 21:14:00
Daniel
Hi
naja, du schaltest 175x mal die Bildschirmaktualisierung ein- und aus, da wird jedesmal der Bildschirm neu aufgebaut.
lösche mal in den Makros Sub ma?geez() die Zeilen

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.ScreenUpdating = true
Application.EnableEvents = true


und stelle sie nur im Worksheet_Calculate-Marko an den Anfang bzw ans Ende, dann sollte das Flackern nachlassen.
btw, worin unterscheiden sich denn die 175 Makros?
ich bin sicher, daß man das mit einer Schleife auch lösen kann, ohne 175 Makros zu schreiben.
und erwartest du wirklch vom Anwender 175x einen klick auf en OK-Button der Userform?
klingt nicht sehr anwenderfreundlich.
Gruß, Daniel

Anzeige
AW: Makro löst Flimmern/Flaggern aus
26.01.2009 22:09:00
Werner
Hallo Daniel,
über eine kürzere Lösung wäre ich ja sehr Dankbar, aber wie . Der Unterschied der Makros liegt darin, daß es z.B bei ma1geez wie Du oben sehen kannst darum das das makro ausgelöst wird wenn in Zelle N11 die 1 steht bzw geht es weiter, wenn in O11 die 1 steht. Bei ma2geez sind es die Zellen N12 und O12, usw d.h. das es sich immer um einen anderen Bezug handelt:
Gruß Werner
AW: Makro löst Flimmern/Flaggern aus
26.01.2009 22:14:00
Daniel
Hi
sowas kann man mit

Dim i as long
for i = 1 to 175
if Cells(i+10, "N") = 1 Then
...


lösen
Gruß, Daniel

AW: Makro löst Flimmern/Flaggern aus
26.01.2009 22:27:00
Werner
Hallo Daniel,
Sorry, aber wie soll das im ganzen aussehen (da fehlt mir leiter etwas der Durchblick)
Gruß Werner
Anzeige
AW: Makro löst Flimmern/Flaggern aus
26.01.2009 22:45:17
Daniel
hi
mir auch, dazu müsste ich dein Projekt besser kennen und verstehen, was du erreichen willst.
Gruß, Daniel
AW: Makro löst Flimmern/Flaggern aus
27.01.2009 19:40:30
Werner
Hallo Daniel,
es geht um nachfolgendes Makro:

Sub ma1geez()
With Sheets("Gehälter")
If .Range("N11") = 1 Then
If MsgBox("soll die Erhöhung von " & .Range("A11") & _
" wirklich übernommen werden?", vbYesNo) = vbYes Then
Range("R3") = .Range("Y2")
.Range("G11") = Sheets("Tabelle1").Range("E20")
ma1ü
Sheets("Tabelle1").Range("J14") = 0
Else
Sheets("Tabelle1").Range("J14") = 0
End If
End If
If .Range("O11") = 1 Then
If MsgBox("Bitte bestätigen Sie die Aktualisierung von" & " " & .Range("A11"), vbYesNo) _
= vbYes Then
.Range("R11") = Range("J11")
.Range("R3") = .Range("Y2")
ma1ü
Range("G11") = ""
Else
Range("G11") = ""
End If
End If
End With
End Sub


gruß Werner

Anzeige
AW: Makro löst Flimmern/Flaggern aus
27.01.2009 22:47:09
Daniel
Hi
und weiter?
das Makro hattest du glaube ich schon hochgeladen.
wie sehen die Daten dazu aus und was verändert sich von Makro zu Makro in deine 175 Varianten?
Was soll das Makro erreichen?
Was bedeutet "ma1ü" im Code?
Gruß, Daniel
AW: Makro löst Flimmern/Flaggern aus
28.01.2009 20:34:00
Werner
Hallo Daniel,
es ändert sich z. B. N11 für Mittarbeiter 1, N12 für MA2,........in Zeile 11 stehen die Daten für MA1, in Zeile 12 für MA2,....
ma1geez soll der Makroname sein, den im Tabellenblatt steht dan nur ma1geez, ma2geez....., sowie ma1ü auch ein Makroname ist.
Ich weis nicht ob Du damit was anfangen kannst.
Gruß Werner
Anzeige
AW: Makro löst Flimmern/Flaggern aus
28.01.2009 22:51:00
Daniel
Hi

Sub ma1geez()
dim Zeile as Long     
With Sheets("Gehälter")
 For Zeile = 11 to 184
If .Cells(Zeile, "N") = 1 Then
If MsgBox("soll die Erhöhung von " & .Cells(Zeile, "A") & _
" wirklich übernommen werden?", vbYesNo) = vbYes Then
Range("R3") = .Range("Y2")
.Cells(Zeile, "G") = Sheets("Tabelle1").Range("E20")
ma1ü
Sheets("Tabelle1").Range("J14") = 0
Else
Sheets("Tabelle1").Range("J14") = 0
End If
End If
If .Cells(Zeile, "O") = 1 Then
If MsgBox("Bitte bestätigen Sie die Aktualisierung von" & " " & .Range("A11"),  _
vbYesNo) _
= vbYes Then
.Range("R11") = Range("J11")
.Range("R3") = .Range("Y2")
ma1ü
Range("G11") = ""
Else
Range("G11") = ""
End If
End If
 Next
End With
End Sub


im Prinzip so, daß fett gedruckte neu einfügen und alle .RANGE, die sich auf die Zeile 11 beziehn, nach dem gezeigten Schema ändern (Range("A11") druch Cells(Zeile, "A") ersetzen.
ich habs nur mal beilspielhaft für eineige gemacht, die restlichen Fälle kannst du ja selber ändern.
Gruß, Daniel
ps nicht getestet, da keine Bespieldatei vorliegt.
da ich ma1ü nicht kenne, kann ich auch nicht beurteilen, ob hier auch irgendwas verändert werden müsste

Anzeige
AW: Makro löst Flimmern/Flaggern aus
30.01.2009 19:52:18
Werner
Hallo Daniel,
Danke für den Tip !
Wenn ich das gleich so gemacht hätte, wäre mir einige Arbeit erspart geblieben :-), aber ich bin ja Lernfähig
und dank des Forums habe ich schon sehr viel gelernt.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige