Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Schleife um Zeilen einzublenden und auszublenden
#1
Guten Morgen zusammen,

ich möchte in einem Excel-Blatt Zeilen schrittweise ein- bzw. ausblenden. Dies habe ich bisher mit dem Worksheet. SelectionChange-Ereignis umgetzt. Allerdings ist die "Pflege" des Codes und die Erweiterung auf weitere Zeilen oder Blätter sehr zeitraubend. Da meine Kenntnisse in VBA sich im Anfänger-Stadium bewegen, würde ich mich freuen wenn ich hier eine Lösung oder Lösungsansatz bekommen würde wie man diesen Code mit einer VBA-Schleife kürzer und eleganter und pflegeleichter macht.
Ich wünsche vorab Allen ein schönes Wochenende.
G****

Nachtrag: zum besseren Verständnis, ergänze ich diesen Beitrag mit einer Beispiel-Datei

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Address = "$A$36" Then
        If Range("A36").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A36").Value = ""
    Worksheets("Deckblatt").Range("A36").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B36").Value = ""
    Worksheets("Deckblatt").Range("B36").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A37").Value = "U"                    'Wingdings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A37").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B37").Value = "S"                    'Wingdings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B37").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("37").Hidden = False
    Rows("37").RowHeight = 15
    Range("B46").Select
   
    End If
    End If

    If Target.Address = "$A$37" Then
        If Range("A37").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A37").Value = ""
    Worksheets("Deckblatt").Range("A37").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B37").Value = ""
    Worksheets("Deckblatt").Range("B37").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A38").Value = "U"
    Worksheets("Deckblatt").Range("A38").Interior.ColorIndex = 35
    Worksheets("Deckblatt").Range("B38").Value = "S"
    Worksheets("Deckblatt").Range("B38").Interior.ColorIndex = 22
   
    Rows("38").Hidden = False
    Rows("38").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$B$37" Then
        If Range("B37").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A37").Value = ""
    Worksheets("Deckblatt").Range("A37").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B37").Value = ""
    Worksheets("Deckblatt").Range("B37").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A36").Value = "U"
    Worksheets("Deckblatt").Range("A36").Interior.ColorIndex = 35
    Rows("37").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$A$38" Then
        If Range("A38").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A38").Value = ""
    Worksheets("Deckblatt").Range("A38").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B38").Value = ""
    Worksheets("Deckblatt").Range("B38").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B39").Value = "S"
    Worksheets("Deckblatt").Range("B39").Interior.ColorIndex = 22
   
    Rows("39").Hidden = False
    Rows("39").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$B$38" Then
        If Range("B38").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B38").Value = ""
    Worksheets("Deckblatt").Range("B38").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A37").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A37").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B37").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B37").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("38").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$A$39" Then
        If Range("A39").Value = "" Then
        Range("B46").Select
    Else
       
    Worksheets("Deckblatt").Range("A39").Value = ""
    Worksheets("Deckblatt").Range("A39").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B39").Value = ""
    Worksheets("Deckblatt").Range("B39").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B40").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B40").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("40").Hidden = False
    Rows("40").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$B$39" Then
        If Range("B39").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B39").Value = ""
    Worksheets("Deckblatt").Range("B39").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A38").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A38").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B38").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B38").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("39").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$A$40" Then
        If Range("A40").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A40").Value = ""
    Worksheets("Deckblatt").Range("A40").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B40").Value = ""
    Worksheets("Deckblatt").Range("B40").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B41").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B41").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("41").Hidden = False
    Rows("41").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$B$40" Then
        If Range("B40").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B40").Value = ""
    Worksheets("Deckblatt").Range("B40").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A39").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A39").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B39").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B39").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("40").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$A$41" Then
        If Range("A41").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A41").Value = ""
    Worksheets("Deckblatt").Range("A41").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B41").Value = ""
    Worksheets("Deckblatt").Range("B41").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B42").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B42").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("42").Hidden = False
    Rows("42").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$B$41" Then
        If Range("B41").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B41").Value = ""
    Worksheets("Deckblatt").Range("B41").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A40").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A40").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B40").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B40").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("41").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
    If Target.Address = "$A$42" Then
        If Range("A42").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A42").Value = ""
    Worksheets("Deckblatt").Range("A42").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B42").Value = ""
    Worksheets("Deckblatt").Range("B42").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B43").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B43").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("43").Hidden = False
    Rows("43").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
  
If Target.Address = "$B$42" Then
        If Range("B42").Value = "" Then
        Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B42").Value = ""
    Worksheets("Deckblatt").Range("B42").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A41").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A41").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B41").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B41").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("42").Hidden = True
    Range("B46").Select
   
    End If
    End If

If Target.Address = "$A$43" Then
    If Range("A43").Value = "" Then
    Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("A43").Value = ""
    Worksheets("Deckblatt").Range("A43").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B43").Value = ""
    Worksheets("Deckblatt").Range("B43").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B44").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B44").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("44").Hidden = False
    Rows("44").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
If Target.Address = "$B$43" Then
    If Range("B43").Value = "" Then
    Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B43").Value = ""
    Worksheets("Deckblatt").Range("B43").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A42").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A42").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B42").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B42").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("43").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
If Target.Address = "$A$44" Then
    If Range("A44").Value = "" Then
    Range("B46").Select
    Else

    Worksheets("Deckblatt").Range("A44").Value = ""
    Worksheets("Deckblatt").Range("A44").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B44").Value = ""
    Worksheets("Deckblatt").Range("B44").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("B45").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B45").Interior.ColorIndex = 22       'Zellfarbe rot
   
    Rows("45").Hidden = False
    Rows("45").RowHeight = 15
    Range("B46").Select
   
    End If
    End If
   
If Target.Address = "$B$44" Then
    If Range("B44").Value = "" Then
    Range("B46").Select
    Else
   
    Worksheets("Deckblatt").Range("B44").Value = ""
    Worksheets("Deckblatt").Range("B44").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A43").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A43").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B43").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B43").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("44").Hidden = True
    Range("B46").Select
   
    End If
    End If
   
If Target.Address = "$B$45" Then
    Worksheets("Deckblatt").Range("B45").Value = ""
    Worksheets("Deckblatt").Range("B45").Interior.ColorIndex = xlNone
    Worksheets("Deckblatt").Range("A44").Value = "U"                    'Windings 3 Zeichen "aufklappen"
    Worksheets("Deckblatt").Range("A44").Interior.ColorIndex = 35       'Zellfarbe grün
    Worksheets("Deckblatt").Range("B44").Value = "S"                    'Windings 3 Zeichen "zuklappen"
    Worksheets("Deckblatt").Range("B44").Interior.ColorIndex = 22       'Zellfarbe rot
    Rows("45").Hidden = True
    Range("B46").Select
    End If
   
End Sub

.xlsm   Rechnung_V1.000_Stand_200905_0939.xlsm (Größe: 78,75 KB / Downloads: 3)
Denke nie was Andere für Dich tun können.
Denke immer was Du für Andere tun kannst.
Dann werden genug Andere für Dich etwas tun wollen.
Antworten Top
#2
anbei eine idee, die mit den beforedubbleclick arbeitet, 
sieht vielleicht etwas umständlich aus, aber es scheint zu funktionieren.
Die Zeilenbegrenzung gibst du an einer Stelle ein.

Die Lösung mit der Textbox scheint recht merkwürdig. Warum schreibst du die Texte nicht direkt in die Zeilen.


.xlsm   zeile klappen.xlsm (Größe: 66,68 KB / Downloads: 2)
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • G****
Antworten Top
#3
Hallo Ralf,

VIELEN DANK.
Scheint wirklich zu funktionieren, ich habe Deine Lösung kurz getestet.
Die Anforderung Zeilen nach und nach einzublenden ist nur ein Teil einer größeren Aufgabe.
Dazu gehört auch die Möglichkeit "Fließtext" einzugeben wie in Word. Das Texfeld soll dies ermöglichen.
Weiterhin habe ich vor, (Be-)Rechnungspositionen zeilenenweise einzufügen, und sie je nach Anforderung mit VBA anzupassen.
Unglücklicherweise handelt es sich um diese (Be-)Rechnungspositionen /-zeilen nicht um den klassischen Fall: Menge x Einzelbetrag = Gesamtbetrag.
Ich komme sicher diesbezüglich nochmal darauf zurück.
Schöne Grüße

G****
Denke nie was Andere für Dich tun können.
Denke immer was Du für Andere tun kannst.
Dann werden genug Andere für Dich etwas tun wollen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste