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

Prozedur zu lang

Prozedur zu lang
29.03.2007 14:29:43
Torge

Hallo,
kann hat jemand eine Hinweis, beziehe mich noch einmal auf meinen Beitrag vom https://www.herber.de/forum/archiv/808to812/t811489.htm.
Der Lösungsvorschlag von Reinhard funktioniert bei mir leider nicht, bekomme eine Fehlermeldung an der Stelle Blatt = Array("Passwort", "Eingabe (Quick-Check)", "Eingabe (Finanzg.-Prüfung)") 'Anpassen, und an der Stelle For n = 0 To UBound(Blattname) erwartet Datenfeld. Auf Grund das der Code ziemlich lang ist, bekomme ich den allgemeinen Fehlerhinweis, Prozedur zu lang, aber ich muss da noch einiges hinzufügen. Hat jemand eine Lösung?
Vielen Dank
T

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prozedur zu lang
29.03.2007 14:55:03
Rudi Maintaire
Hallo,
es muss
for n=0 to Ubound(Blatt)
heißen.
Wie ist der Stand deiner Optimierung? Hast du meine Vorschläge umgesetzt?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Prozedur zu lang
29.03.2007 17:11:29
Torge
Hallo Rudi,
puh, hab gebastelt und gebastelt, zwischenzeitlich waren einige andere Dinge dran und nun sitze ich erneut vor dem Problem, es will einfach nicht funktionieren. Ich versuche es noch einmal mit der Änderung von Dir jetzt, vielleicht klappt es ja dann, ansonsten melde ich mich noch einmal. Eine Frage noch, die einzelnen case Anweisungen
"'Bei Eingabe 0
Case 0, 5, 6
Sheets("Passwort").CommandButton2.Visible = True
Case 2, 3, 4
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True
Case 7....50
Case Else
End Select" beziehen sich doch auf die Button, welche jeweils bei gleichen Bedingungen eingeblendet werden, d.h. wird in einer Anweisung
z.b.
Case 2, 3, 4
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True und einer anderen, in der aber auf dem gleichen Tabellenblatt nur andere Button sichtbar sein sollen, w.z.b.
Case 5, 6, 7
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton6.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton4.Visible = false,
muss ich diese jeweils in eine neue case Anweisung schreiben? Oder kann das alles in die mit 2,3 und 4?
Das Problem ist, dass auf den selben Tabellenblättern unterschiedliche Button sind, welche auch unterschiedlich sichtbar sein sollen, je nach dem welcher User Zugang hat.
Und in:

Sub AlleVerbergen()
Dim Blattname As String, n As Integer, CB As Shape
Blatt = Array("Passwort", "Eingabe (Quick-Check)", "Eingabe (Finanzg.-Prüfung)") 'Anpassen
For n = 0 To UBound(Blattname)
For Each CB In Worksheets(Blattname(n)).Shapes
If CB.Name Like "Command*" Then CB.Visible = False
Next CB
Next n
End 

Sub werden nur die Tabellenblätter aufgeführt auf denen sich die jeweiligen Button befinden und  _
ausgeblendet?
Hoffe sind nicht all zu komplizierte Fragen:
Trotzdem vielen danke an der Stelle.
Gr. T

Anzeige
AW: Prozedur zu lang
29.03.2007 17:52:32
Torge
Hallo Rudi,
hab es nochmals probiert habe jetzt Fehlermeldung bei: Blatt = Array("Tabelle2", ist nicht Variable nicht defoniert, wenn ich Blattname einsetzt, dann wird an der Stelle bei "UBound" ein Datenfeld erwartet. Weißt Du, was hier falsch ist?
Sub AlleVerbergen()
Dim Blattname As String, n As Integer, CB As Shape
Blatt = Array("Tabelle2", _
"Passwort", _
"ETW - Angaben", _
"Eingabe (Quick-Check)", _
"Ergebnis (Quick-Check-Neubau)", _
"Ergebnis (Quick-Check-Bestand)", _
"Eingabe (Finanzg.-Prüfung)", _
"Ergebnis (Fin.-Prüfung-Neubau)", _
"Ergebnis (Fin.-Prüfung-Bestand)", _
"Fin.-Anfrage", _
"Ergebnis (Fin.-Plan-Neubau)", _
"Ergebnis (Fin.-Plan-Bestand)", _
"Grunddaten (Tilg.-Modelle)", _
"Annuitäten-Tilgung", _
"BSV 10 Jahre", _
"BSV 12 Jahre", _
"BSV 15 Jahre (35%)", _
"Daten data credit") 'Anpassen
'For n = 0 To UBound(Blatt)
For n = 0 To UBound(Blattname)
For Each CB In Worksheets(Blattname(n)).Shapes
If CB.Name Like "Command*" Then CB.Visible = False
Next CB
Next n
End Sub
Das ist mein gesamter Code bis jetzt:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next
'Einblenden von Button in Abhängikeit der PW-Eingabe
Const TZ = "_" ' Trennzeichen
Dim s(50) As String, i%, n, z
' Übereinstimmungen  B1  K7
For n = 1 To 46 Step 5
z = z + 1
s(n + 0) = Chr(64 + z) & TZ & "?"
s(n + 1) = Chr(64 + z) & TZ & "Bestand"
s(n + 2) = Chr(64 + z) & TZ & "Neubau"
s(n + 3) = Chr(64 + z) & TZ & "ETW - Selbstbau"
s(n + 4) = Chr(64 + z) & TZ & "Neubau - Kauf vom Bauträger"
Next n
If Not Application.Intersect(Target, Range("B1:K13")) Is Nothing Then
s(0) = Sheets("Passwort").Range("A1").Value & TZ & Range("K13").Value
For i = 1 To 50
If s(i) = s(0) Then ' Übereinstimmung gefunden
SetButton i
Exit Sub
End If
Next i
SetButton 0 ' Alle ausblenden wenn keine Übereinstimmung
End If
End Sub
'Einblenden der Button in Abhängigkeit der Auswahl

Private Sub SetButton(intParam%)
Call AlleVerbergen
Call Zeigen
Select Case intParam
'Bei Eingabe 0
Case 0, 1, 5
Sheets("Passwort").CommandButton2.Visible = True
Case 2
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True
Case 3
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton3.Visible = True
Case 4
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton5.Visible = True
Case 5
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True
Sheets("Eingabe (Finanzg.-Prüfung)").CommandButton2.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton11.Visible = True
Sheets("Fin.-Anfrage").CommandButton12.Visible = True
Sheets("Fin.-Anfrage").CommandButton13.Visible = True
'    Case 7....50
Case Else
End Select
End Sub
Sub AlleVerbergen()
Dim Blattname As String, n As Integer, CB As Shape
Blattname = Array("Tabelle2", _
"Passwort", _
"ETW - Angaben", _
"Eingabe (Quick-Check)", _
"Ergebnis (Quick-Check-Neubau)", _
"Ergebnis (Quick-Check-Bestand)", _
"Eingabe (Finanzg.-Prüfung)", _
"Ergebnis (Fin.-Prüfung-Neubau)", _
"Ergebnis (Fin.-Prüfung-Bestand)", _
"Fin.-Anfrage", _
"Ergebnis (Fin.-Plan-Neubau)", _
"Ergebnis (Fin.-Plan-Bestand)", _
"Grunddaten (Tilg.-Modelle)", _
"Annuitäten-Tilgung", _
"BSV 10 Jahre", _
"BSV 12 Jahre", _
"BSV 15 Jahre (35%)", _
"Daten data credit") 'Anpassen
'For n = 0 To UBound(Blatt)
For n = 0 To UBound(Blattname)
For Each CB In Worksheets(Blattname(n)).Shapes
If CB.Name Like "Command*" Then CB.Visible = False
Next CB
Next n
End Sub

Vielen Dank
Gr. T.
Anzeige
AW: Prozedur zu lang
29.03.2007 22:10:24
Uduuh
Hallo,
erste Korrektur:

Sub AlleVerbergen()
Dim Blattname() As String, n As Integer, CB As Shape
Blattname = Array("Tabelle2", _
"Passwort", _
"ETW - Angaben", _
"Eingabe (Quick-Check)", _
"Ergebnis (Quick-Check-Neubau)", _
"Ergebnis (Quick-Check-Bestand)", _
"Eingabe (Finanzg.-Prüfung)", _
"Ergebnis (Fin.-Prüfung-Neubau)", _
"Ergebnis (Fin.-Prüfung-Bestand)", _
"Fin.-Anfrage", _
"Ergebnis (Fin.-Plan-Neubau)", _
"Ergebnis (Fin.-Plan-Bestand)", _
"Grunddaten (Tilg.-Modelle)", _
"Annuitäten-Tilgung", _
"BSV 10 Jahre", _
"BSV 12 Jahre", _
"BSV 15 Jahre (35%)", _
"Daten data credit") 'Anpassen
For n = 0 To UBound(Blattname)
For Each CB In Worksheets(Blattname(n)).Shapes
If CB.Name Like "Command*" Then CB.Visible = False
Next CB
Next n
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: Prozedur zu lang
29.03.2007 22:21:19
Uduuh
Hallo,
kannst du die Mappe hochladen, damit man sich mal einen Eindruck davon machen kann was da abgeht?
Gruß aus’m Pott
Udo

AW: Prozedur zu lang
30.03.2007 13:42:34
Torge
Hallo Udo,
kann ich machen, aber die Mappe ist 2,5 MB und das geht eben nicht. Ich kann hier nur meinen Code reinkopieren, wie ich ihn im original verwende und wie er zusammengebastelt aussieht oder eben nur eine einfache Datei mit 3 Tabellen und der Beschreibung.
Würde Dir das reichen?
Gr T.
AW: Prozedur zu lang
30.03.2007 14:34:15
Torge
Hallo Udo,
vielen Dank für Dein Interesse. Ich versuch mal die Datei hochzuladen. Habe sie etwas verkleinert und hoffe die Erklärungen sind etwas verständlich, wenn nicht, frag noch einmal nach. Das Problem ist, das im Feld B1 immer ein anderer Buchstabe steht und entsprechend des Buchstaben und der im Auswahlfeld getroffenen Auswahl werden auf den verschiedenen Tabellenblättern Button eingeblendet. Da es aber verschiedene User gibt und verschiedene auf den jeweiligen User zutreffende Varianten der Button die dann eingeblendet werden sollen, ist die Prozedur eben sehr groß. Und ich weiss nicht, wie ich die kleiner machen kann ohne das ich auf irgendetwas verzichten muss. Die Zahl der User und damit der Varianten soll noch um 2 erhöht werden.
https://www.herber.de/bbs/user/45.xls
Ist das so einigermaßen verständlich ????
Gr. T
Anzeige
AW: Prozedur zu lang
30.03.2007 14:34:21
Torge
Hallo Udo,
vielen Dank für Dein Interesse. Ich versuch mal die Datei hochzuladen. Habe sie etwas verkleinert und hoffe die Erklärungen sind etwas verständlich, wenn nicht, frag noch einmal nach. Das Problem ist, das im Feld B1 immer ein anderer Buchstabe steht und entsprechend des Buchstaben und der im Auswahlfeld getroffenen Auswahl werden auf den verschiedenen Tabellenblättern Button eingeblendet. Da es aber verschiedene User gibt und verschiedene auf den jeweiligen User zutreffende Varianten der Button die dann eingeblendet werden sollen, ist die Prozedur eben sehr groß. Und ich weiss nicht, wie ich die kleiner machen kann ohne das ich auf irgendetwas verzichten muss. Die Zahl der User und damit der Varianten soll noch um 2 erhöht werden.
https://www.herber.de/bbs/user/45.xls
Ist das so einigermaßen verständlich ????
Gr. T
Anzeige
AW: Prozedur zu lang
01.04.2007 09:20:32
offener
Hallo allerseits,
bei Zuweisung eines Array mit der Array-Funktion wird die Variable als Variant deklariert, also nur
Dim Blattname()
Hoffe geholfen zu haben Grüße von André aus Gera - Excel-97-2003

AW: Prozedur zu lang
01.04.2007 11:00:58
Torge
Hallo André,
vielen dank. Hab das jetzt so versucht, geht aber immer noch nicht. In Zelle B1 stehen verschiedene Buchstaben aber die Button werden nur eingeblendet, wenn Wert A in B1 steht. Ist der Wert B in B1, dann funktioniert das mit den einblenden der Button nicht mehr. Also bei Wert A werden die Button eingeblendet bei B eben nicht. Kannst Du mir hier noch einen Hinweis geben warum nicht, bzw. mein Fehler liegt??

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next
'Einblenden von Button in Abhängikeit der PW-Eingabe
Const TZ = "_" ' Trennzeichen
Dim s(50) As String, i%, n, z
' Übereinstimmungen  B1  K7
For n = 1 To 46 Step 5
z = z + 1
s(n + 0) = Chr(64 + z) & TZ & "?"
s(n + 1) = Chr(64 + z) & TZ & "Bestand"
s(n + 2) = Chr(64 + z) & TZ & "Neubau"
s(n + 3) = Chr(64 + z) & TZ & "ETW - Selbstnutzung"
s(n + 4) = Chr(64 + z) & TZ & "Neubau - Kauf vom Bauträger"
Next n
If Not Application.Intersect(Target, Range("B1:K13")) Is Nothing Then
s(0) = Sheets("Passwort").Range("B1").Value & TZ & Range("K13").Value
For i = 1 To 50
If s(i) = s(0) Then ' Übereinstimmung gefunden
SetButton i
Exit Sub
End If
Next i
SetButton 0 ' Alle ausblenden wenn keine Übereinstimmung
End If
End Sub
'Einblenden der Button in Abhängigkeit der Auswahl

Private Sub SetButton(intParam%)
Call AlleVerbergen
Call Zeigen
Select Case intParam
'Bei Eingabe 0
Case 0, 1 'A = ?
Sheets("Passwort").CommandButton2.Visible = True
Case 2 'A  = "Bestand"
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True
Case 3 'A  = "Neubau"
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton3.Visible = True
Case 4 'A = ETW - Selbstnutzung
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton5.Visible = True
Case 5 'A  = "Neubau - Kauf vom Bauträger"
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True
Case 6 'B = ?
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Case 6 'B = Bestand
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton2.Visible = True
Sheets("Eingabe (Finanzg.-Prüfung)").CommandButton2.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton11.Visible = True
Sheets("Fin.-Anfrage").CommandButton12.Visible = True
Sheets("Fin.-Anfrage").CommandButton13.Visible = True
Case 6 'B = Neubau
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton1.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton10.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton11.Visible = True
Sheets("Fin.-Anfrage").CommandButton12.Visible = True
Sheets("Fin.-Anfrage").CommandButton13.Visible = True
Case 6 'B = ETW - Selbnutzung
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton1.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton10.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton11.Visible = True
Sheets("Fin.-Anfrage").CommandButton12.Visible = True
Sheets("Fin.-Anfrage").CommandButton13.Visible = True
Case 6 'B = Neubau - Kauf vom Bauträger
Sheets("Passwort").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True
Sheets("Passwort").CommandButton3.Visible = True
Sheets("Passwort").CommandButton5.Visible = True
Sheets("Passwort").CommandButton7.Visible = True
Sheets("Eingabe (Quick-Check)").CommandButton5.Visible = True
Sheets("Eingabe (Finanzg.-Prüfung)").CommandButton5.Visible = True
Sheets("Grunddaten (Tilg.-Modelle)").CommandButton12.Visible = True
Sheets("Fin.-Anfrage").CommandButton12.Visible = True
Sheets("Fin.-Anfrage").CommandButton13.Visible = True
'    Case 7....50
Case Else
End Select
End Sub
Sub AlleVerbergen()
'Dim Blattname As String, n As Integer, CB As Shape
Dim Blattname As Variant, n As Integer, CB As Shape
Blattname = Array("Tabelle2", _
"Passwort", _
"ETW - Angaben", _
"Eingabe (Quick-Check)", _
"Ergebnis (Quick-Check-Neubau)", _
"Ergebnis (Quick-Check-Bestand)", _
"Eingabe (Finanzg.-Prüfung)", _
"Ergebnis (Fin.-Prüfung-Neubau)", _
"Ergebnis (Fin.-Prüfung-Bestand)", _
"Fin.-Anfrage", _
"Ergebnis (Fin.-Plan-Neubau)", _
"Ergebnis (Fin.-Plan-Bestand)", _
"Grunddaten (Tilg.-Modelle)", _
"Annuitäten-Tilgung", _
"BSV 10 Jahre", _
"BSV 12 Jahre", _
"BSV 15 Jahre (35%)", _
"Daten data credit") 'Anpassen
For n = 0 To UBound(Blattname)
For Each CB In Worksheets(Blattname(n)).Shapes
If CB.Name Like "Command*" Then CB.Visible = False
Next CB
Next n
End Sub
Sub Zeigen()
'Hier alle Commandbuttons sichtbar machen die sichtbar sein sollen
' Sheets("Passwort").CommandButton1.Visible = True
' Sheets("Passwort").CommandButton2.Visible = True
' Sheets("Passwort").CommandButton3.Visible = True
' Sheets("Passwort").CommandButton5.Visible = True
' Sheets("Passwort").CommandButton6.Visible = True
' Sheets("Passwort").CommandButton8.Visible = True
End Sub

Vielen Dank.
Gr. T.
Anzeige
AW: Prozedur zu lang
01.04.2007 12:31:13
schauan
Hallo Torge,
- warum hast Du eigentlich 5x case 6 ? Müsste dass nicht 6 bis 10 sein?
- dann setze mal einen Haltepunbkt in die Zeile
If Not Application.Intersect(Target, Range("B1:K13")) Is Nothing Then
und prüfe den Inhhalt deines s - Arrays ab (6)
Wenn das ok ist dann setze einen Haltepunkt in diese Zeile
If s(i) = s(0) Then ' Übereinstimmung gefunden
und schaue, ob s(6) bei i=6 identisch ist mit s(0)
Wenn da nichts zu finden ist sehen wir weiter ...
Hoffe geholfen zu haben Grüße von André aus Gera - Excel-97-2003

Anzeige
AW: Prozedur zu lang
02.04.2007 18:41:16
Torge
Hallo André,
hoffe bin nicht zu aufdringlich, aber ich wollte noch mal auf mein Anliegen zurückkommen. Habe noch mal eine kleine Beispielmappe gebastelt. Vielleicht klärt das mein Problem schon. kann auch sein ich habe da irgendwo ein Denkfehler. Kannst du bitte mal schauen.
https://www.herber.de/bbs/user/41500.xls
Vielen Dank
Gr. T.
AW: Prozedur zu lang
02.04.2007 19:53:35
schauan
Hallo Torge,
1. es fehlt das Sheet Passwort, habe das Sheet eingefügt und dort in B1 B eingegeben
2. Mit der Array-Begrenzung auf 5 geht nur A, die Schleife For n=1 to 5 Step 5 dürfte nur bis to 1 gehen, bei meinem Beispiel mit 2 Durchgängen dann nur bis 6
Hier mal der code, und es lief problemlos

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next
'Einblenden von einzelner Button in Abhängikeit
'des Wertes in B1 und der getroffenen Auswahl
'in Zelle K13
Const TZ = "_" ' Trennzeichen
Dim s(10) As String, i%, n, z
' Übereinstimmungen  B1  K7
For n = 1 To 6 Step 5
z = z + 1
s(n + 0) = Chr(64 + z) & TZ & "?"
s(n + 1) = Chr(64 + z) & TZ & "Bestand"
s(n + 2) = Chr(64 + z) & TZ & "Neubau"
s(n + 3) = Chr(64 + z) & TZ & "ETW - Selbstnutzung"
s(n + 4) = Chr(64 + z) & TZ & "Neubau - Kauf vom Bauträger"
Next n
If Not Application.Intersect(Target, Range("B1:K13")) Is Nothing Then
s(0) = Sheets("Passwort").Range("B1").Value & TZ & Range("K13").Value
For i = 1 To 10
If s(i) = s(0) Then ' Übereinstimmung gefunden
SetButton i
Exit Sub
End If
Next i
SetButton 0 ' Alle ausblenden wenn keine Übereinstimmung
End If
End Sub

Hoffe geholfen zu haben Grüße von André aus Gera - Excel-97-2003

Anzeige
AW: Prozedur zu lang
02.04.2007 21:53:04
Torge
Hallo André,
ganz herzlichen dank für deine aufgebrachte mühe. Denke so müsste es genau sein. funktioniert nun auch bei mir. allerletzte frage: wenn ich weiter case verwende, weil außer A und B nach weiter werte hinzukommen, zb. C,D;E,F,G und H, muss ich die zeile "For i = 1 To 10" hier anpassen? die anweisungen gehen in meiner originaldatei bis case 50, also ziemlich viel. die zeile "For n = 1 To 6 Step 5" wird so bleiben, denke dort kommt keine weitere auswahl hinzu, wenn doch denke ich, muss anstelle der 6 die entsprechende anzahl? liege ich da richtig?
also vielen dank bis hier erst mal.
gr. T.
Anzeige
AW: Prozedur zu lang
03.04.2007 05:30:00
schauan
Hallo Torge,
Du musst dann s(50) anpassen und wie Du schon schreibst das For, wie im Original z.B. 46. Im code habe ich sonst nichts gendert, der Haupt-Fehler im Beispiel war wie gesagt das fehlende Passwort-Blatt. Du musst dann aber auch schauen wie sich dort der Wert von B1 ändert oder auch nicht.
Grüße, Andre aus Gera
AW: Prozedur zu lang
03.04.2007 09:46:03
Torge
Super André und vielen dank für die Mühe.
Wünsch Dir eine schönen Tag, bis zum nächsten Mal.
Gruß T.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige