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

Verkürzung Makro Rows

Verkürzung Makro Rows
Stefan
Hallo liebe VBA Experten,
ich habe wieder eine Frage hinsichtlich der Verkürzung eines Makros. Der Nachfolgende Makro wird sogar noch um einiges länger (bis G19 = 30), daher würde es mich interessieren wie man so was von Anhieb an kürzer schreiben könnte. Gibt es eine bestimmte Vorgehensweise, die ich beachten könnte?
Vielen Dank für eure Hilfe!
If Range("G19").Value = "1" Then
Worksheets("Eingabe").Rows("21:22").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("23:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "2" Then
Worksheets("Eingabe").Rows("21:24").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("25:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "3" Then
Worksheets("Eingabe").Rows("21:26").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("27:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "4" Then
Worksheets("Eingabe").Rows("21:28").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("29:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "5" Then
Worksheets("Eingabe").Rows("21:30").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("31:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "6" Then
Worksheets("Eingabe").Rows("21:32").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("33:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "7" Then
Worksheets("Eingabe").Rows("21:34").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("35:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "8" Then
Worksheets("Eingabe").Rows("21:36").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("37:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "9" Then
Worksheets("Eingabe").Rows("21:38").EntireRow.Hidden = False
Worksheets("Eingabe").Rows("39:40").EntireRow.Hidden = True
End If
If Range("G19").Value = "10" Then
Worksheets("Eingabe").Rows("21:40").EntireRow.Hidden = False
End If
Beste Grüße Stefan
AW: Verkürzung Makro Rows
17.05.2011 19:22:23
Hajo_Zi
Hallo Stefan,
vieleicht so
Option Explicit
Sub Stefan()
If Range("G19") = CInt(Range("G19")) And Range("G19") 

AW: Verkürzung Makro Rows
17.05.2011 19:41:44
Stefan
Hallo Ihr Beiden,
besten Dank für die schnelle Rückmeldung!
Ich hab zunächst mal Hajos Vorschlag ausprobiert. Der Funktioniert nur wenn in G19 die 1 steht, wie wäre es wenn dort aber eine Zahl zwischen 1 und 30 stünde, als 2, 3…?
Der gesamte Code würde so aussehen (arbeite über einen Formular, im Formular wird die Anzahl der Modelle abgefragt (1-30))
Private Sub CommandButton40_Click()
Application.ScreenUpdating = False
Blattschutz_aus
Sheets("Eingabe").Select
Range("G19").Value = CDbl(TextBox40)
If Range("G19") = CInt(Range("G19")) And Range("G19") 
Auch Dir Tino vielen Dank! Werde deinen Vorschlag auch anschauen – hoffe ich bin bald auch soweit, dass ich diese Zeilen so verkürzt schreiben kann 
Beste Grüße
Stefan
Anzeige
AW: Verkürzung Makro Rows
17.05.2011 19:47:47
Hajo_Zi
Hallo Stefan,
die Zeile If Range("G19").Value = "1" Then einschl. End If muss raus.
Gruß Hajo
AW: Verkürzung Makro Rows
17.05.2011 19:50:17
Stefan
Hab ich rausgenommen, funktioniert immer noch nur wenn G19 =1, dann werden die übrigen Zeilen ausgeblendet.
AW: Verkürzung Makro Rows
17.05.2011 19:59:16
Hajo_Zi
Hallo Stefan,
das kann ich nicht nachvollziehen, bei mir werden bei jeder anderen Zahl andere Zeilen eingeblendet.
Gruß Hajo
AW: Verkürzung Makro Rows
17.05.2011 20:09:21
Stefan
Ahh past perfekt, hab glaub nicht richtig auf die Ok-Taste geklickt! Super vielen Dank!
Gruß Stefan
Anzeige
AW: Verkürzung Makro Rows/Columns
20.05.2011 20:14:02
Stefan
Hallo Hajo,
da bin ich wieder. Du hast mir vor zwei Tagen sehr gut mit der Verkürzung des Makros geholfen. Damals ging es um Zeilen, diesmal möchte ich Spalten ausblenden.
Wenn G19 gleich 1, dann sollen die Spalten K und L ausgeblendet werden, wenn G19 gleich 2, dann trifft es die Spalten M und N...das ganze geht bis Spalte AX. Ich dachte die folgende Anpassung des Makros wäre korrekt - leider nicht.
Worksheets("Überblick_Markt").Columns("11:" & 10 + Range("G19") * 2).EntireColumn.Hidden = False
Worksheets("Überblick_Markt").Columns(11 + Range("G19") * 2 & ":49").EntireColumn.Hidden = True
Hättest Du ev. Zeit hier nochmal drüber zu schauen?
Besten Dank für deine tolle Unterstützung!
Stefan
Anzeige
AW: Verkürzung Makro Rows/Columns
20.05.2011 20:17:57
Hajo_Zi
Hallo Stefan,
ungetestet
Worksheets("Überblick_Markt").Columns(10 + Range("G19") &" "." & 11 + Range(G19") ).EntireColumn.Hidden = False
Gruß Hajo
AW: Verkürzung Makro Rows/Columns
20.05.2011 20:26:23
Stefan
Hallo Hajo,
ich bekomme an der Stelle "." die Fehlermeldung "Erwartet: Listentrennzeichen oder )
Danke Dir!
Stefan
AW: Verkürzung Makro Rows/Columns
20.05.2011 20:35:52
Hajo_Zi
Hallo Stefan,
schreibe ":"
Gruß Hajo
AW: Verkürzung Makro Rows/Columns
20.05.2011 21:03:10
Stefan
immernoch die gleiche Fehlermeldung.
Worksheets("Überblick_Markt").Columns(10 + Range("G19") &" ":" & 11 + Range(G19") ).EntireColumn.Hidden = False
Viele Grüße
Stefan
Anzeige
AW: Verkürzung Makro Rows/Columns
20.05.2011 21:05:31
Hajo_Zi
Hallo Stefan,
With Worksheets("Überblick_Markt")
.Columns(10 + .Range("G19") &" ":" & 11 + .Range(G19") ).EntireColumn.Hidden = False
end With
Gruß Hajo
AW: Verkürzung Makro Rows/Columns
20.05.2011 21:10:49
Stefan
leider immernoch die Fehlermeldung. Mein Makro sieht jetzt so aus:
Private Sub CommandButton40_Click()
Application.ScreenUpdating = False
Blattschutz_aus
Sheets("Eingabe_I").Select
Range("G19").Value = CDbl(TextBox40)
If Range("G19") = CInt(Range("G19")) And Range("G19") 
Besten Dank!
Stefan
Anzeige
AW: Verkürzung Makro Rows/Columns
20.05.2011 20:41:02
Hajo_Zi
Hallo Stefan,
ungetestet
Worksheets("Überblick_Markt").Columns(10 + Range("G19") &" "." & 11 + Range(G19") ).EntireColumn.Hidden = False
Gruß Hajo
AW: Verkürzung Makro Rows
17.05.2011 19:27:37
Tino
Hallo,
ich wäre vielleicht auf dies gekommen.
Sub Test()
Dim strHiddenFalse$, strHiddenTrue$

With Worksheets("Eingabe")
    If Range("G19") > 0 And Range("G19") < 10 Then
        strHiddenFalse = "21:" & 20 + (2 * Range("G19"))
        strHiddenFalse = 21 + (2 * Range("G19")) & ":40"
        
        .Rows(strHiddenFalse).EntireRow.Hidden = False
        .Rows(strHiddenFalse).EntireRow.Hidden = True
    Else
        .Rows("21:40").EntireRow.Hidden = False
    End If
End With
End Sub
Gruß Tino
Anzeige
noch was...
17.05.2011 19:54:42
Tino
Hallo,
bei Else müsste diese Zeile stehen.
ElseIf Range("G19") = 10 Then
Weil in Deinem Beispiel nur bei 10 Rows("21:40").EntireRow.Hidden = False ist.
Also so
Sub Test()
Dim strHiddenFalse$, strHiddenTrue$

With Worksheets("Eingabe")
    If Range("G19") > 0 And Range("G19") < 10 Then
        strHiddenFalse = "21:" & 20 + (2 * Range("G19"))
        strHiddenFalse = 21 + (2 * Range("G19")) & ":40"
        
        .Rows(strHiddenFalse).EntireRow.Hidden = False
        .Rows(strHiddenFalse).EntireRow.Hidden = True
    ElseIf Range("G19") = 10 Then
        .Rows("21:40").EntireRow.Hidden = False
    End If
End With
End Sub
Gruß Tino
Anzeige
AW: noch was...
17.05.2011 22:05:11
Daniel
Hi
und du müsstest noch im Code an 2 Stellen "strHiddenTrue" anstelle von "strHiddenFalse" verwenden, damit es Sinn macht
Gruß, Daniel
sorry, entsprechend einsetzen oT.
17.05.2011 22:47:01
Tino

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige