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

Argument nicht optional

Argument nicht optional
11.05.2015 09:53:19
Viktoria
Hallo zusammen,
ich glaube ich sehe grade den Wald vor lauter Bäumen nicht mehr, mir geht es eigentlich nur um eine einfach Funktion im Sinne von: wenn eine Zelle einen bestimmten Wert hat, sollen einige Zeilen ausgeblendet werden. Das Makro soll ausgeführt werden sobald das betreffende Tabellenblatt aufgerufen wird.
Jetzt war ich mir das gerade am zusammenbasteln (und ich bin kein Makro-Crack, sondern jemand der schaut, ob es was passendes gibt und pass die dann für meine Zwecke an).
Jetzt bekomme ich immer die Fehlermeldung "Argument ist nicht optional".
Aber die If-Funktion ist doch vollständig? Ich steh grade echt auf dem Schlauch.
Außerdem wird das Makro in der Makro-Liste nicht angezeigt, obwohl es nicht als Private Sub definiert ist - woran kann das noch liegen?
Excel-Version: 2013

Sub Zeilen_ausblenden(ByVal Target As Range)
If Target.Address = "Gehaltsvereinbarung!$D$19" And Target.Value = "x" Then
Rows("19:22").Hidden = True
Else
Rows("19:22").Hidden = False
End If
End Sub

Danke euch schon mal und viele Grüße
Vicky

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Argument nicht optional
11.05.2015 09:58:01
Hajo_Zi
ich bekomme keinen Fehler beim kompletten Code.
Option Explicit
Sub Zeilen_ausblenden(ByVal Target As Range)
If Target.Address = "Gehaltsvereinbarung!$D$19" And Target.Value = "x" Then
Rows("19:22").Hidden = True
Else
Rows("19:22").Hidden = False
End If
End Sub
Sub start()
Zeilen_ausblenden ActiveCell
End Sub

Gruß Hajo

AW: Argument nicht optional
11.05.2015 11:09:34
Viktoria
Hallo Hajo,
danke für die schnelle Antwort.
Das Makro startet bei mir allerdings nicht :-/
Hab's auch mal versucht mit:

Sub Worksheet_Activate()
Call Zeilen_ausblenden
End Sub

Da bekomme ich aber wieder einen Fehler beim Kompiliieren und Argument nicht optional.
Und wenn ich mein Zeilen_ausblenden Sub zum Testen über einen Button anstoße, bekomme ich da auch immer noch den Fehler Argument nicht optional.
Ich bin etwas ratlos gerade?
Grüße
Vicky

Anzeige
AW: Argument nicht optional
11.05.2015 11:34:41
Luschi
Hallo Hajo,
schade, daß Du Deinen geposteten Vba-Code noch immer nicht vorher testest. Denn dann würdest Du feststellen, daß Target.Address im Normalfall immer nur den Zellbezug ohne vorangestellen Tabellennamen zurückgibt.
Will man den Tabellennamen aber mit dazu haben, dann so:
If Target.Parent.Name & "!" & Target.Address = "Gehaltsvereinbarung!$D$19" ... Then
Selbst:
If Target.Address(,,xlA1,True) ... Then
ist nicht korrekt, dann dann würde der Arbeitsmappenname mit im String übergeben werden.
(siehe vba-Hilfe: https://msdn.microsoft.com/de-de/library/office/ff837625(v=office.15).aspx )
Gruß von Luschi
aus Klein-Paris

Anzeige
AW: Argument nicht optional
11.05.2015 16:05:50
Viktoria
Hallo zusammen,
danke für eure Hilfe, jetzt klappt es wunderbar!!
Viele Grüße
Vicky

AW: Argument nicht optional
11.05.2015 10:47:25
Matthias
Hallo
Zitat
Das Makro soll ausgeführt werden sobald das betreffende Tabellenblatt aufgerufen wird.
Code gehört ins entsrechende Tabelleblatt
Option Explicit
Private Sub Worksheet_Activate()
Rows("19:22").Hidden = Range("D19") = "x"
End Sub
https://www.herber.de/bbs/user/97573.xlsm
Gruß Matthias

AW: Argument nicht optional
11.05.2015 11:34:28
Viktoria
Hallo Matthias,
danke, damit funktioniert es! :-)
Wie muss ich den Code verändern, wenn die Zelle, deren Inhalt geprüft werden soll, nicht in dem Arbeitsblatt ist, in dem die Zeilen ausgeblendet werden?
Also wenn im Arbeitsblatt "Gehaltsmodell" eine bestimmte Zelle = "x" ist, sollen sobald man das Blatt "Gehaltsvereinbarung" aufruft, automatisch bestimmte Zeilen ausgeblendet werden.
Danke euch noch mal!
Viele Grüße
Vicky

Anzeige
Worksheets("Gehaltsmodell").Range("B2")
11.05.2015 11:51:32
Matthias
Hallo
Option Explicit
Private Sub Worksheet_Activate()
With Worksheets("Gehaltsmodell").Range("B2")
Rows("19:22").Hidden = .Value = "x"
End With
End Sub
Gruß Matthias

25 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige