Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
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

Makroveränderung Folgethread

Makroveränderung Folgethread
03.11.2008 20:25:00
Kai
Hallo zusammen,
ich habe hier schon sehr viel Hilfe durch Erich G. bekommen und nur so konnte ich mein Excelprojekt fast fertig stellen nun plagen mich noch 2 kleinere Probleme.
Dies ist eine Fortstezung des Threads: https://www.herber.de/forum/archiv/1012to1016/t1013703.htm
Dort habe ich mit einem Makro folgende Hilfe bekommen:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intA As Long, intS As Long, wksS As Worksheet, wksT As Worksheet
Dim zz As Long, rngH As Range, intT As Long
Dim ii As Long, jj As Long, rngK As Range
If Not Intersect(Target, Range("A2:A21,A28")) Is Nothing Then
intA = Application.CountA(Range("A2:A21"))      ' Anz. Spieler
intS = Application.Min(intA, 14)                ' Anz. Spieler-Anzeige
intT = Cells(28, 1)                             ' Anz. Spieltage
Set wksS = Sheets("Torschützen Spielt.")
Set wksT = Sheets("Spieltagausw.")
With Sheets("Torschützen gesamt")
If intA = 0 Then
.Rows("1:50").Hidden = True                  ' incl. Diagramm?
wksS.Columns(1).Resize(, 41).Hidden = True
Else                 ' einblenden intA Spieler (Zeilen 3 bis 3+intA-1)
.Rows(1).Resize(2 + intA).Hidden = False ' ab Zeile 1 wg. Überschriften
.Rows("23:50").Hidden = False                ' Diagramm
wksS.Columns(1).Resize(, 2 * intA + 1).Hidden = False
wksS.Rows(1).Resize(intT + 3).Hidden = False
' ausblenden 20-intA Spieler (Zeilen 3+intA bis 22)
If intA          If intS * intT = 0 Then ' alles ausblenden
wksT.Rows("1:684").Hidden = True
Else                    ' einblenden intS Spieler (Zeilen 3 bis 3+intS-1)
Set rngH = wksT.Rows(1).Resize(intS + 2) ' blende Zeilen 1,2,3,4 ein
Set rngH = Union(rngH, wksT.Rows(17).Resize(2)) ' blende Zeile 17 und 18 ein
If intS 
End Sub


Mit dem fetten Teil habe ich nun ein Problem, leider hat sich nun im finalen Test herausgestellt, das man sich nicht immer auf IntS beziehen kann, sondern für eine korrekte Anzeige folgendes gemacht werden müßte. Leider bekomme ich es aber selbst nicht hin.
Wenn im (Tabelenblatt 1 Zelle AV 18) = 0
dann blende Zeilen 1:18 aus
sonst blende Zeilen 1 bis (Tabelenblatt 1 Zelle AV 18 + 2) ein
sowie Zeilen 17,18 ein
und wenn Zelle (Tabelenblatt 1 Zelle AV 18) dann blende von (Tabelenblatt 1 Zelle AV 18) +3, 14 - (Tabelenblatt 1 Zelle AV 18) Zeilen aus
Wenn im (Tabelenblatt 2 Zelle AV 18) = 0
dann blende Zeilen 19:36 aus
sonst blende Zeilen 19 bis (Tabelenblatt 2 Zelle AV 18 + 20) ein
sowie Zeilen 35,36 ein
und wenn Zelle (Tabelenblatt 2 Zelle AV 18) dann blende von (Tabelenblatt 2 Zelle AV 18) +21, 14 - (Tabelenblatt 2 Zelle AV 18) Zeilen aus
...................
Wenn im (Tabelenblatt 38 Zelle AV 18) = 0
dann blende Zeilen 667:684 aus
sonst blende Zeilen 667 bis (Tabelenblatt 38 Zelle AV 18 + 668) ein
sowie Zeilen 683,684 ein
und wenn Zelle (Tabelenblatt 38 Zelle AV 18) dann blende von (Tabelenblatt 38 Zelle AV 18) +669, 14 - (Tabelenblatt 38 Zelle AV 18) Zeilen aus
und wenn IntT Dann blende Zeilen (intT * 18 + 1), Zeile 684 aus
Ich würde mich freuen wenn ihr mir dabei nochmal helfen könntet! Habe das Forum hier sehr zu schätzen gelernt.
Gruß Kai

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroveränderung Folgethread
04.11.2008 10:01:06
fcs
Hallo Kai,
mein ungetesteter Vorschlag.
Dabei werden erst alle Zeilen eingeblendet, danach die auszublendenden Zeilen ermittelt und ausgeblendet.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim intA As Long, intS As Long, wksS As Worksheet, wksT As Worksheet
Dim zz As Long, rngH As Range, intT As Long
Dim ii As Long, jj As Long, rngK As Range
Dim lngAV18 As Long
If Not Intersect(Target, Range("A2:A21,A28")) Is Nothing Then
intA = Application.CountA(Range("A2:A21"))      ' Anz. Spieler
intS = Application.Min(intA, 14)                ' Anz. Spieler-Anzeige
intT = Cells(28, 1)                             ' Anz. Spieltage
Set wksS = Sheets("Torschützen Spielt.")
Set wksT = Sheets("Spieltagausw.")
With Sheets("Torschützen gesamt")
If intA = 0 Then
.Rows("1:50").Hidden = True                  ' incl. Diagramm?
wksS.Columns(1).Resize(, 41).Hidden = True
Else                 ' einblenden intA Spieler (Zeilen 3 bis 3+intA-1)
.Rows(1).Resize(2 + intA).Hidden = False ' ab Zeile 1 wg. Überschriften
.Rows("23:50").Hidden = False                ' Diagramm
wksS.Columns(1).Resize(, 2 * intA + 1).Hidden = False
wksS.Rows(1).Resize(intT + 3).Hidden = False
' ausblenden 20-intA Spieler (Zeilen 3+intA bis 22)
If intA 


Anzeige
AW: Makroveränderung Folgethread
04.11.2008 16:22:45
Kai
Hi,
leider bekomme ich in der Zeile den Fehler Ojekt unterstützt diese Eigenschaft oder Methode nicht:

'Alle Zeilen einblenden
.Range(.Rows(1), .Rows(18 + 37 * 18)).Visible = True


Finde aber nicht raus was ich ändern muss, damit der Fehler behoben ist.
Vielen Danke für Deine Hilfe und Gruß
Kai

AW: Makroveränderung Folgethread
05.11.2008 00:55:00
Kai
Hallo zusammen,
den Fehler oben habe ich doch behoben bekommen, allerdings hat sich danach ein weiterer Fehler ergeben.

lngAV18 = Worksheets(Format(ii, "0")).Range("AV18").Value


Es soll dort ja jeweils der Wert der Zelle AV18 jedes Tabellenblattes 1,2,3..37,38 ausgelesen werden.
Leider bekomme ich immer den Laufzeitfehler 13 Typen unverträglich.
Verstehe zwar was gemacht werden soll, allerdings kann ich den Fehler nicht beheben, habe bisher nichtmal was ähnliches gesehn.
Gruß Kai

Anzeige
AW: Makroveränderung Folgethread
05.11.2008 09:13:13
fcs
Hallo kai,
die Variable lngVA18 ist als Long deklariert und erwartet als Wert in der Zelle AV18 der Tabellenblätter eine Zahl oder keinen Eintrag (wird als 0 interpretiert).
Steht in der Zelle Text oder auch ein Leerstring ("") dann kommt die Typ-Fehlermeldung.
Du muss also sicherstellen, dass in Zelle AV18 der Tabellenblätter nur Zahlen oder nichts steht.
Alternativ kannst du die Zeile auch wie folgt ändern:

lngAV18 = Val(Worksheets(Format(ii, "0")).Range("AV18").Value)

Textwerte in den Zellen werden dann in 0 umgewandelt.
Gruß
Franz

Anzeige
AW: Makroveränderung Folgethread
05.11.2008 16:54:00
Kai
Hallo Franz,
das mit dem Fehler hatte ich schonmal, allerdings hatte ich das in der Excelhilfe so verstanden, das Value den Wert der Zelle ausgibt, das es bei Formeln nicht funktioniert wenn man auf die Zelle verweist wusste ich aber ich dachte das macht evtl. Value.
Der Fehler trat wohl auf, da der Wert der Zelle aus folgender Formel kommt: =ANZAHL2(A4:A17)
Deshalb hatte Erich G. mir folgendes geschrieben:
If Not Intersect(Target, Range("A2:A21,A28")) Is Nothing Then
intA = Application.CountA(Range("A2:A21")) ' Anz. Spieler
intS = Application.Min(intA, 14) ' Anz. Spieler-Anzeige

With wksT
Application.ScreenUpdating = False 'Bildschirm nicht aktualisieren
.Range(.Rows(1), .Rows(684)).Hidden = False 'Alle Zeilen einblenden
Set rngH = Nothing
For ii = 1 To intT 'Blätter 1 bis 38 abarbeiten und auszublendende Zeilen merken
lngAV18 = Val(Worksheets(Format(ii, "0")).Range("AV18").Value) 'lngAV18 =  _
Tabellenblatt Zelle AV18
If lngAV18 = 0 Then 'Wenn lngAV18 = 0 dann
If rngH Is Nothing Then 'Wenn rngH Nothing dann
Set rngH = .Range(.Rows(1 + (ii - 1) * 18), .Rows(18 + (ii - 1) * 18)) ' _
rngh = Range(Zeile19, Zeile 36)
Else 'Sonst
Set rngH = Union(rngH, .Range(.Rows(1 + (ii - 1) * 18), .Rows(18 + (ii - 1)  _
* 18))) 'rngh = Range(Zeile19, Zeile 36)
End If
Else 'Sonst
.Range(.Rows(1 + (ii - 1) * 18), .Rows(lngAV18 + 2 + (ii - 1) * 18)).Visible =  _
True 'Range(Reihe19, Reihe(lngAV18 + 20) sichtbar
.Range(.Rows(17 + (ii - 1) * 18), .Rows(18 + (ii - 1) * 18)).Visible = True ' _
Range(Reihe35, Reihe36) sichtbar
If lngAV18 


Ich hab mal das Makro auskommentiert (sollte ich etwas falsch verstanden haben, so wäre es nett, wenn du mir das schreibst), da es auch nicht das macht was ich versuchen wollte umzusetzen. Zum Test hatte ich mal überall in AV18 eine 1 eingetragen, trotzdem wird nur alles ab Zeile 37 ausgeblendet aber nicht Zeilen 4:16 und 22:34. Als Beispiel habe ich für ii = 2 benutzt.
Vielen Dank für deine bisherige Hilfe.
Gruß Kai

Anzeige
AW: Makroveränderung Folgethread
05.11.2008 18:07:00
fcs
Hallo Kai,
wenn in den Zellen AV18 tatsächlich die Formel = ANZAHL2(A4:A17) steht, dann sollte es eigentlich kein Typ-Problem geben, da das Ergebnis nummerisch ist.
Ich hab mal die Kommentare etwas angepasst.
Die Zeilen die mit #### kommentiert sind kannst du weglassen, oder muss du ggf. noch etwas anpassen.
Fehlerquellen im Code zu finden ohne Beispieldaten ist extrem schwierig!
Das von Erich beschriebene Problem betrifft das automatische Starten des WorksheetCange-Ereignismakros. Dieses wird nicht von Änderungen in Zellen mit Formeln ausgelöst, sondern nur bei Eingabe von Werten in Zellen.
Gruß
Franz

With wksT
Application.ScreenUpdating = False 'Bildschirm nicht aktualisieren
.Range(.Rows(1), .Rows(684)).Hidden = False 'Alle Zeilen einblenden
Set rngh = Nothing
For ii = 1 To intT 'Blätter 1 bis 38 abarbeiten und auszublendende Zeilen merken
'lngAV18 = Tabellenblatt Zelle AV18
lngAV18 = Val(Worksheets(Format(ii, "0")).Range("AV18").Value)
If lngAV18 = 0 Then 'Wenn lngAV18 = 0 dann
If rngh Is Nothing Then 'Wenn rngH Nothing dann
'ii=1 --> rngh = Range(Zeile1 bis Zeile 18)
'ii=2 --> rngh = Range(Zeile19 bis Zeile 36)
Set rngh = .Range(.Rows(1 + (ii - 1) * 18), .Rows(18 + (ii - 1) * 18))
Else 'Sonst
'ii=1 --> rngh = rngh + Range(Zeile1 bis Zeile 18)
'ii=2 --> rngh = rngh + Range(Zeile19 bis Zeile 36)
' usw.
Set rngh = Union(rngh, .Range(.Rows(1 + (ii - 1) * 18), _
.Rows(18 + (ii - 1) * 18)))
End If
Else 'Sonst
' ii=1 --> Range(Reihe 1, Reihe(lngAV18 + 0) sichtbar
' ii=2 --> Range(Reihe 19, Reihe(lngAV18 + 20) sichtbar
'Die nachfolgende Zeile ist nicht erforderlich, die Zeilen sind schon sichtbar #####
.Range(.Rows(1 + (ii - 1) * 18), .Rows(lngAV18 + 2 + (ii - 1) * 18)).Visible = True
' ii=1 --> Range(Reihe 17, Reihe 18) sichtbar
' ii=2 --> Range(Reihe 35, Reihe36) sichtbar
' usw.
'Die nachfolgende Zeile ist nicht erforderlich, die Zeilen sind schon sichtbar #####
.Range(.Rows(17 + (ii - 1) * 18), .Rows(18 + (ii - 1) * 18)).Visible = True
If lngAV18 Setze rngh Bereich Reihe lngAV18 + 3 bis Reihe 18 - 0
'ii=2 -->Setze rngh Bereich Reihe lngAV18 + 21 bis Reihe 36 - 0
'usw
Set rngh = .Range(.Rows(lngAV18 + 3 + (ii - 1) * 18), _
.Rows(18 + (ii - 1) * 18) - 0) '##### die 0 muss du ggf. anpassen
Else 'Sonst
'ii=1 -->Setze rngh= rngh + Bereich Reihe lngAV18 + 3 bis Reihe 18 - 0
'ii=2 -->Setze rngh= rngh +  Bereich Reihe lngAV18 + 21 bis Reihe 36 - 0
'usw
Set rngh = Union(rngh, .Range(.Rows(lngAV18 + 3 + (ii - 1) * 18), _
.Rows(18 + (ii - 1) * 18) - 0)) '##### die 0 muss du ggf. anpassen
End If
End If
End If
Next
'Zeilen ausblenden
'Wenn rngH ist nicht Nothing, dann rngh.Reihe nicht Hidden
If Not rngh Is Nothing Then rngh.EntireRow.Hidden = False
If intT 


Anzeige
AW: Makroveränderung Folgethread
05.11.2008 17:50:28
Kai
Hallo,
muss mir leider nochmal selbst Antworten, da ich doch noch was gefunden habe. Ich hab AV18 in AV17 geändert, sowie Fehler behoben. Visible = True in Hidden = False , leider gibts jetzt aber in der Zeile Laufzeitfehler13: Typen unverträglich :

Set rngH = .Range(.Rows(lngAV17 + 3 + (ii - 1) * 18), _
.Rows(14 + (ii - 1) * 18) - lngAV17) 'Setze rngh Bereich Reihe lngAV17+21, Reihe 32 -lngAV17


Gesamt sieht es jetzt so aus:


With wksT
Application.ScreenUpdating = False 'Bildschirm nicht aktualisieren
.Range(.Rows(1), .Rows(684)).Hidden = False 'Alle Zeilen einblenden
Set rngH = Nothing
For ii = 1 To intT 'Blätter 1 bis 38 abarbeiten und auszublendende Zeilen merken
lngAV17 = Val(Worksheets(Format(ii, "0")).Range("AV17").Value) 'lngAV17 =  _
Tabellenblatt Zelle AV17
If lngAV17 = 0 Then 'Wenn lngAV17 = 0 dann
If rngH Is Nothing Then 'Wenn rngH Nothing dann
Set rngH = .Range(.Rows(1 + (ii - 1) * 18), .Rows(18 + (ii - 1) * 18)) ' _
rngh = Range(Zeile19, Zeile 36)
Else 'Sonst
Set rngH = Union(rngH, .Range(.Rows(1 + (ii - 1) * 18), .Rows(18 + (ii - 1)  _
* 18))) 'rngh = Range(Zeile19, Zeile 36)
End If
Else 'Sonst
.Range(.Rows(1 + (ii - 1) * 18), .Rows(lngAV17 + 2 + (ii - 1) * 18)).Hidden =  _
False 'Range(Reihe19, Reihe(lngAV17 + 20) sichtbar
.Range(.Rows(17 + (ii - 1) * 18), .Rows(18 + (ii - 1) * 18)).Hidden = False ' _
Range(Reihe35, Reihe36) sichtbar
If lngAV17 


Bin für jede weitere Idee dankbar.
Gruß Kai

Anzeige
AW: Makroveränderung Folgethread
05.11.2008 18:19:18
fcs
Hallo Kai,
lngAV17 muss einen nummerischen Wert enthalten sonst kommt es bei der Berechnung der Zeilennummer zum Fehler.
Ansonsten schau mal meine Antwort zu deiner letzten Frage. Beispieldatei zum Testen wäre extrem wichtig
Gruß
Franz
AW: Makroveränderung Folgethread
05.11.2008 21:16:00
Kai
Hi Franz, ich hatte erstmal überall ne 1 in AV17 eingegeben, wobei das später nicht so sein kann, da ja die Spieleranzahl variabel ist und gezählt werden muss.
Eine Beispielmappe ist kein Problem: http://vflgladbeck.onpw.de/Excel/Spielauswertungsbogen%20v.2.3.zip
pw:123
Viele Grüße
Kai
Anzeige
AW: Makroveränderung Folgethread
06.11.2008 11:28:14
fcs
Hallo Kai,
ich hab das Makro nochmals gescheckt, angepasst und auch mit der Formel =ANZAHL2(A4:A17) in Zelle AV17 der Spieltagsblätter probiert.
Scheint jetzt zu funktionieren.
Ein Problem in deiner Version war noch falsche Klammersetzung, wodurch es beim setzen des rngH bzw. in der Union-Funktion zu Problemen kam. Ein zweites, dass der Wert von Hidden für die auszublendenden Zeilen auf False statt True gesetzt wurde.
Nachfolgend die neue Fassung des angepassten Teils der Prozededur.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Torschützen gesamt").Unprotect Password:="123"
Dim intA As Long, intS As Long, wksS As Worksheet, wksT As Worksheet
Dim zz As Long, rngH As Range, intT As Long
Dim ii As Long, jj As Long, rngK As Range
Dim lngAV17 As Long
If Not Intersect(Target, Range("A2:A21,A28")) Is Nothing Then
intA = Application.CountA(Range("A2:A21"))      ' Anz. Spieler
intS = Application.Min(intA, 14)                ' Anz. Spieler-Anzeige
intT = Cells(28, 1)                             ' Anz. Spieltage
Set wksS = Sheets("Torschützen Spielt.")
Set wksT = Sheets("Spieltagausw.")
With Sheets("Torschützen gesamt")
If intA = 0 Then
.Rows("1:50").Hidden = True                  ' incl. Diagramm?
wksS.Columns(1).Resize(, 41).Hidden = True
Else                 ' einblenden intA Spieler (Zeilen 3 bis 3+intA-1)
.Rows(1).Resize(2 + intA).Hidden = False ' ab Zeile 1 wg. Überschriften
.Rows("23:50").Hidden = False                ' Diagramm
wksS.Columns(1).Resize(, 2 * intA + 1).Hidden = False
wksS.Rows(1).Resize(intT + 3).Hidden = False
' ausblenden 20-intA Spieler (Zeilen 3+intA bis 22)
If intA 


Anzeige
AW: Makroveränderung Folgethread
06.11.2008 15:47:00
Kai
Vielen Dank!! Jetzt ist meine Tabelle fat fertig, Jetzt muss ich nur noch mein Druck Userform in den Griff bekommen.
Nochmals Herzlichsten Dank!!!!
Gruß Kai
AW: Makroveränderung Folgethread
07.11.2008 01:53:12
Kai
Hallo zusammen,
leider muss ich mich nochmal zu diesem Projekt hier melden, da sich doch noch eine Frage aufgetan hat. Ich habe im Modul zum Tabellenblatt Datenerfassung folgendes Makro so wie unten aufgeführt. Prinzipiell funktioniert so auch alles, allerdings nur wenn sich was im Datenblatt ändert. Ich habe festgestellt, das es besser wäre, wenn ich den fetten Teil (alles hiernach:' ----------- ab hier nach Spieltag) auch über den CommandButton den ich schon habe ausführen lasse, da es auch ausgeführt werden muss, wenn keine Änderungen in "Datenblatt" gemacht wurden, allerdings bekomme ich bei meinen Versuchen immer verschiedene Fehler die mit den Definitonen bzw. Option nicht verfügbar zu tun haben. Es wäre sehr nett wenn sich das nochmal jemand ansehen könnte, da ich es nicht hinbekomme, das es 1. im Modul des Blatts läuft und 2. das es mit dem Commandbutton auszuführen ist. Es kommt immer zum Fehler, das das Makro gar nicht gefunden wird.
Gruß Kai

Sub Worksheet_Change(ByVal Target As Range)
Dim intA As Long, intS As Long, wksS As Worksheet, wksT As Worksheet
Dim zz As Long, rngH As Range, intT As Long
Dim ii As Long, jj As Long, rngK As Range
Dim lngAV17 As Long, lngAV19
If Not Intersect(Target, Range("A2:A21,A28")) Is Nothing Then
intA = Application.CountA(Range("A2:A21"))      ' Anz. Spieler
intS = Application.Min(intA, 14)                ' Anz. Spieler-Anzeige
intT = Cells(28, 1)                             ' Anz. Spieltage
Set wksS = Sheets("Torschützen Spielt.")
Set wksT = Sheets("Spieltagausw.")
With Sheets("Torschützen gesamt")
If intA = 0 Then
.Rows("1:50").Hidden = True                  ' incl. Diagramm?
wksS.Columns(1).Resize(, 41).Hidden = True
Else                 ' einblenden intA Spieler (Zeilen 3 bis 3+intA-1)
.Rows(1).Resize(2 + intA).Hidden = False ' ab Zeile 1 wg. Überschriften
.Rows("23:50").Hidden = False                ' Diagramm
wksS.Columns(1).Resize(, 2 * intA + 1).Hidden = False
wksS.Rows(1).Resize(intT + 3).Hidden = False
' ausblenden 20-intA Spieler (Zeilen 3+intA bis 22)
If intA 
'  ----------------------------------------------------- ab hier nach Spieltag
If Not Intersect(Target, Range("A28")) Is Nothing Then
For zz = 1 To intT
Sheets(CStr(zz)).Visible = True     ' Blätter einblenden
Next zz
For zz = intT + 1 To 38
Sheets(CStr(zz)).Visible = False
Next zz
If 0 = 1 Then
With Sheets("Torschützen Spielt.")
If intA = 0 Then
.Rows("1:43").Hidden = True
Else
.Rows("1:" & intA).Hidden = False
If intA 


Anzeige
AW: Makroveränderung Folgethread
07.11.2008 12:32:00
fcs
Hallo Kai,
der Teil, der bei Änderungen im Blatt und per Commandbutton ausgeführt werden soll muss in eine eigene Prozedur ausgeleagert werden.
Dann kann diese Sub-Prozedur per
Call TestProzedur
an der passenden Stelle von beiden Prozeduren aus aufrufen.
Ich hab die Prozedur mal so geteilt, dass der "fette Teil" eigenständig läuft. Dazu müssen die If-Zeilen, die die Target-Adresse prüfen entfernt werden, da die System-Variable "Target" nur in Verbindung mit Ereignisprozeduren funktioniert.
Gruß
Franz

Sub TestProzedur()
Dim intA As Long, intS As Long, wksS As Worksheet, wksT As Worksheet
Dim rngH As Range, intT As Long
Dim ii As Long, jj As Long, rngK As Range
Dim lngAV17 As Long, lngAV19
intA = Application.CountA(Range("A2:A21"))      ' Anz. Spieler
intS = Application.Min(intA, 14)                ' Anz. Spieler-Anzeige
intT = Cells(28, 1)                             ' Anz. Spieltage
Set wksS = Sheets("Torschützen Spielt.")
Set wksT = Sheets("Spieltagausw.")
With Sheets("Torschützen gesamt")
If intA = 0 Then
.Rows("1:50").Hidden = True                  ' incl. Diagramm?
wksS.Columns(1).Resize(, 41).Hidden = True
Else                 ' einblenden intA Spieler (Zeilen 3 bis 3+intA-1)
.Rows(1).Resize(2 + intA).Hidden = False ' ab Zeile 1 wg. Überschriften
.Rows("23:50").Hidden = False                ' Diagramm
wksS.Columns(1).Resize(, 2 * intA + 1).Hidden = False
wksS.Rows(1).Resize(intT + 3).Hidden = False
' ausblenden 20-intA Spieler (Zeilen 3+intA bis 22)
If intA 


AW: Makroveränderung Folgethread
07.11.2008 14:39:13
Kai
Vielen Dank,
ich habe das Call aus dem Sub von dir oben entfernt und bei mir in

Private Sub Berechnung_Click()
Application.ScreenUpdating = False
Call TeamAusdruck
Call GÜUAusdruck
Call Gegnerische_Teamauswertung
Call TestProzedur
Application.ScreenUpdating = True
Sheets("Datenerfassung").Select
End Sub


eingefügt. So läuft jetzt alles.
Herzlichen Dank für deine große Hilfe.
Gruß Kai

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige