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

Zeile ausblenden / Command Button

Zeile ausblenden / Command Button
11.05.2023 13:02:44
Katharina Gamer

Hallo Zusammen,

ich hätte da mal wieder eine Frage.

Ich habe eine Excel-Datei in der ich eine Vielzahl an CommandButtons eingefügt habe. Nun habe ich, wenn man eine bestimmte Angabe macht, programmiert, dass entsprechende Zeilen ausgeblendet werden. Sobald diese Zeilen jedoch ausgeblendet werden, schiebt es die CommandButtons der ausgeblendeten Zeilen über den CommandButton der nächsten nicht ausgeblendeten Zeile.

Ich habe sowohl die Formatierung auf "Nur von Zellposition abhängig" eingestellt, als auch die CommandButtons im Code formatiert (der wird ja allerdings erst ausgeführt, wenn man ihn klickt und nicht wenn die Zeilen ausgeblendet werden).

Kann mir jemand helfen, wie ich es verhindern kann, dass sich die Buttons beim Ausblenden übereinander schieben?

Liebe Grüße
Katharina

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile ausblenden / Command Button
11.05.2023 13:09:31
ralf_b
"von Zellposition unabhängig" wolltest du nicht weil?


AW: Zeile ausblenden / Command Button
11.05.2023 13:13:23
Katharina Gamer
Die CommandButtons dienen dem Reset einer Zelle. D.h. er trägt quasi in eine bestimmte Zelle ein DropDown und eine Formel ein, falls diese gelöscht wurden. Ich würde daher den CommandButton gerne in der Zeile platzieren, in der auch der Reset stattfindet. Daher von Zellposition abhängig.


AW: Zeile ausblenden / Command Button
11.05.2023 13:20:44
ralf_b
und wenn die Zeile ausgeblendet ist ist der Button dan eigentlich überflüssig. oder ?
wenn ja mach ihn doch unsichtbar.


AW: Zeile ausblenden / Command Button
11.05.2023 13:43:24
Katharina Gamer
das habe ich versucht, allerdings bekomme ich einen Laufzeitfehler 424. Der Übersichtlichkeit halber habe ich die Programmierung zum Ausblendne der Zeilen in einem Allgemeinen Modul angelegt. Ich greife dann bei Tabelle2 in Change Ereignis auf dieses Modul zu, jedoch funktioniert dies nicht.
(Mit Visible statt Hidden bei den CommandButtons kommt der selbe Fehler)

Meine Programmierung in einem allgemeinen Modul
With Tabelle2

If Range("D44").Value = "Sonderleitung" Then
.Rows("46:51").Hidden = False
CommandButton298.Hidden = False

Else
Range("D44").Rows("46:51").Hidden = True
CommandButton298.Hidden = True

End If

End With

Meine Programmierung in Tabelle2:
Private Sub Worksheet_Change(ByVal target As Range)

Zeilenausblenden

End Sub


Anzeige
AW: Zeile ausblenden / Command Button
11.05.2023 14:05:56
ralf_b
hast du schon versucht den Button als Element der Shapeauflistung anzusprechen?
Da man mit der Bezeichnung auch mal daneben liegen kann, bietet es sich an den Button in der Shapeauflistung. miitels Schleife, zu suchen und anhand seiner Topleftcell Eigenschaft zu identifizieren.


AW: Zeile ausblenden / Command Button
11.05.2023 14:08:14
Katharina Gamer
um ehrlich zu sein, weiß ich nicht wie man das macht


AW: Zeile ausblenden / Command Button
11.05.2023 14:44:45
ralf_b
ungefähr so.
Call hidebutton(False, "46:51") 'ruft eine function auf, in der die button ein- oder ausgeblendet werden. Dazu notwendige informationen werden als Parameter übergeben.



    With Tabelle2
    dim bolSwitch as Boolean
    bolSwitch =  Range("D44").Value > "Sonderleitung"
       
     Call hidebutton(bolSwitch, "46:51", "Tabelle2")
      .Rows("46:51").Hidden = bolSwitch

    End With
End Sub

Function hidebutton(bHide As Boolean, sBereich As String, sSheet As String)
Dim shp As Shape, arBereich

arBereich = Split(sBereich, ":")

For Each shp In Worksheets(sSheet).Shapes
  If IsArray(arBereich) Then
     For i = CLng(arBereich(0)) To CLng(arBereich(1))
       If shp.TopLeftCell.Row = CLng(arBereich(i)) Then shp.Visible = bHide
     Next
  Else
     If shp.TopLeftCell.Row = CLng(sBereich) Then shp.Visible = bHide
  End If
Next
End Function


Anzeige
AW: Zeile ausblenden / Command Button
11.05.2023 14:39:43
Daniel
Hi
Buttons für jede Zeile sind keine gute Idee.
das macht nur probleme.
Damit die Buttons sich beim ein- und Ausblenden wunschgemäß verhalten, müssen sie von Zellpostition und Größe abhängig sein.
Aber wie gesagt, so richtig funktioniert das nicht.
Wenn du einen Button in jeder Zeile benötitst, dann ist es einfacher, das BeforeDoubleClick-Event zu verwenden und dort abzufragen, welche Zelle denn angeklickt wurde.
wenn bspw die Spalte M deine "Buttonspalte" sein soll, dann so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 13 Then 'Klick auf Spalte 13
    If Target.Row >= 2 Then 'nicht in Überschrift, erst ab Zeile 2
        If Target.Row = Me.Cells.SpecialCells(xlCellTypeLastCell).Row Then 'nicht außerhalb der Tabelle
            Cells(Target.Row, 1).Formula = "=""Original-Formel"""
        End If
    End If
End If
End Sub
das ist wesentlich besser als viele Buttons.
vorallem weil du auch einfach Zeilen hinzufügen oder löschen kannst, ohne dich um die Buttons kümmern zu müssen.
Gruß Daniel


Anzeige
AW: Zeile ausblenden / Command Button
11.05.2023 16:39:14
Katharina Gamer
Hey Daniel,

danke für Deine Hilfe. So ganz verstehe ich allerdings nicht wie Deine Lösung funktioniert. Also wie führt es dann den Reset aus, d.h. was muss ich tun, damit es mir die Formel wieder ausfüllt?
Was mir auch nicht ganz klar ist, ich habe in jeder Zeile eine andere Formel und ein anderes DropDown zum einfügen. Wie kann ich das dann berücksichtigen?

Danke für Deine Hilfe :-)

Liebe Grüße


AW: Zeile ausblenden / Command Button
11.05.2023 17:09:02
Daniel
Lad mal die Datei hoch, die du bisher hast und beschreibe die Aufgabe konkreter.
Was bedeutet "Reset"?
Am Computer ist das im Prinzip ein Ausschalten-Einschalten-Hochfahren.
Wie unterscheiden sich die Formeln? Sind sie Grundlegend anders oder sind es nur andere Zellbezüge?
Wie genau ist das aufgebaut?


Anzeige
AW: Zeile ausblenden / Command Button
12.05.2023 14:39:22
Katharina Gamer
Hallo Daniel,

die Orginaldatei kann ich natürlich nicht hochladen.

Ich mache nachfolgend mal ein Beispiel, das auf die selbe Art und Weise funktioniert. Im Prinzip kannst Du Dir vorstellen, dass Du eine Eingabemaske hast. Innerhalb dieser Eingabemaske gibt es vordefinierte Werte, d.h. steht bspw. in A1 das Wort "Trinken", wird in Zelle A2 mittels Formel Cola hineingeschrieben, da dies das Getränk ist, das am Häufigsten bestellt wird. Hinter dem Feld, wo Cola drin steht, hinterliegt nun eine DropDown Liste (beinhaltet Cola, Fanta, Mineralwasser). Da Cola zwar am Häufigsten aber eben nicht immer bestellt wird, muss der Anwender auch Fanta auswählen können. Sobald er nun Fanta auswählt, überschreibt dies logischerweise die Formel.
Nun kommt es jedoch auch vor, dass der Anwender in die Eingabemaske in Zelle A2 ein besonderes Getränk (Sprite) schreiben muss, welches nicht innerhalb der DropDown (Cola, Fanta, Mineralwasser) hinterlegt ist. Dann löscht er die Dropdown aus dem Feld und schreibt sein Getränk rein.
Möchte der Anwender nun von vorne beginnen, muss ja die Formel und die DropDown wieder eingefügt werden. Dies geschieht dann per "Reset"-Button, d.h. mittels eines ActiveX-CommandButtons, der dann Formel und DropDown wieder einfügt bei Anklicken.

Die Formel die automatisiert "Cola" auswählt unterscheidet sich in anderen Zellen grundlegend (oftmals ganz unterschiedlich verschachtelte Wenn-Dann-Funktion mit anderen Bezügen, ...)

Verstehst du was der Reset-Button macht?

Liebe Grüße
Katharina

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige