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

Worksheet_Calculate()

Worksheet_Calculate()
13.12.2006 12:50:17
Sophie
Liebe Freunde!
Versuche meiner Datei beizubringen, dass wenn ein Blatt sich ändert oder neu berechnet wird, dass das Blatt entpsrechend verändert wird.
Also, in der Tabelle "1" steht folgender Code:

Private Sub Worksheet_Calculate()
Call Makro_1
End Sub

Somit rufe ich nachstehendes Makro, frage durch Schleifen nach den Zeileninhalt und lasse jenachdem ein- bzw. ausblenden. Funktioniert aber nicht. Fehler, die vorkommen: Änderung anderer Blätter führt dazu, dass ich irgendwann auf Blatt "1" springe in die Zeile j7, die Schleifen sind endlos und erfüllen immer nur die erste Zeile des Befehls, danach springen sie zum Anfang...
Wenn jemand weiß, wie man das löst, bin ich sehr-sehr für die Unterstützung dankbar!!!
LG
Sophie ;-)
Sub Makro_1()
Dim a As Integer
Dim b As Integer
a = Worksheets("1").Range("o19").Value
For a = 1 To 2
If a = 1 Then
Worksheets("1").Rows("20:22").Hidden = True And _
Worksheets("1").Shapes("Check Box 52").Visible = False And _
Worksheets("1").Shapes("Check Box 53").Visible = False And _
Worksheets("1").Shapes("Check Box 54").Visible = False
End If
If a = 2 Then
Worksheets("1").Rows("20:22").Hidden = False
Worksheets("1").Shapes("Check Box 52").Visible = True
Worksheets("1").Shapes("Check Box 53").Visible = True
Worksheets("1").Shapes("Check Box 54").Visible = True
End If
Next
b = Worksheets("1").Range("o7").Value
For b = 1 To 2
If b = 1 Then
Worksheets("1).Shapes("Button 213").Visible = False
Worksheets("1").Shapes("text box 130").Visible = False
Worksheets("1").Range("j7").Value = 0
End If
If b = 2 Then
Worksheets("1").Shapes("text box 130").Visible = True
Worksheets("1").Shapes("Button 213").Visible = True
End If
Next
Worksheets("1").Range("j7").Select
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Calculate()
13.12.2006 13:11:31
Reinhard
Hi Sophie,
erstma kürzerer Code
Option Explicit
Sub Makro_1()
Dim a As Integer
With Worksheets("1")
a = .Range("o19").Value
Select Case a
Case 1, 2
.Rows("20:22").Hidden = (a = 1)
.Shapes("Check Box 52").Visible = (a = 2)
.Shapes("Check Box 53").Visible = (a = 2)
.Shapes("Check Box 54").Visible = (a = 2)
Case Else
End Select
a = .Range("o7").Value
Select Case a
Case 1, 2
.Shapes("Button 213").Visible = (a = 2)
.Shapes("text box 130").Visible = (a = 2)
If a = 1 Then .Range("j7").Value = 0
Case Else
End Select
.Range("j7").Select
End With
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Worksheet_Calculate()
13.12.2006 13:17:29
yps
hi,
hättest du ihr auch gleich mit einbauen können
Application.EnableEvents = False
'ihr code
Application.EnableEvents = True
cu Micha
AW: Worksheet_Calculate()
13.12.2006 13:18:01
Matthias
Hallo Sophie,
das kann ja so nicht funktionieren:
Du weist erst einmal a den Wert der Zelle O19 zu und benutzt a danach als Schleifenvariable, setzt den Wert also gleich auf 1.
Danach wird also der Block nach (If a=1) aufgeführt.
Im zweiten Schleifendurchlauf sist a=2 und der Block nach (If a=2) wird ausgeführt, welcher die Änderungen von eben wieder Rückgängig macht.
Ergebnis: Ein Bildschirmflackern ohne Sinn.
Lass einfach mal die Schlefe weg:

Sub Makro_1()
Dim a As Integer
Dim b As Integer
a = Worksheets("1").Range("o19").Value
If a = 1 Then
Worksheets("1").Rows("20:22").Hidden = True And _
Worksheets("1").Shapes("Check Box 52").Visible = False And _
Worksheets("1").Shapes("Check Box 53").Visible = False And _
Worksheets("1").Shapes("Check Box 54").Visible = False
End If
If a = 2 Then
Worksheets("1").Rows("20:22").Hidden = False
Worksheets("1").Shapes("Check Box 52").Visible = True
Worksheets("1").Shapes("Check Box 53").Visible = True
Worksheets("1").Shapes("Check Box 54").Visible = True
End If
b = Worksheets("1").Range("o7").Value
If b = 1 Then
Worksheets("1").Shapes("Button 213").Visible = False
Worksheets("1").Shapes("text box 130").Visible = False
Worksheets("1").Range("j7").Value = 0
End If
If b = 2 Then
Worksheets("1").Shapes("text box 130").Visible = True
Worksheets("1").Shapes("Button 213").Visible = True
End If
End Sub

Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige