Gruppierung
#11
Hallo Uwe,

Zitat:mein Vorschlag ist, es ganz normal mit Ein- und Ausblenden der Leerzeilen durch Doppelklick auf einen Namen zu machen.

Ich habe bei deinem Code folgendes Problem:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABC
1NrNameMat
21AA1
3  A2
4  A3
5  A4
6  A5
72BB1
8  B2
93CC1
10  C2
11  C3
12  C4
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Wenn ich in den Zellen A2, B2, A7 oder B7 einen Doppelklick mache werden die Zeilen ein- bzw. ausgeblendet.

Bei einem Doppelklick auf A9 oder B9 bekomme ich einen Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler wobei die Zeile 'With Range (.Offset...' im Code gelb markiert wird.
Gruß
Peter
Top
#12
Hallo Peter,

danke fürs Testen. Jetzt sollte der Code fehlerfrei laufen:

Microsoft Excel Objekt Tabelle1
Option Explicit 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim rngE As Range
 Cancel = True
 With Target
   If Not IsEmpty(.Offset(0)) And IsEmpty(.Offset(1)) Then
     Set rngE = .EntireColumn.Find(What:="*", _
                                   After:=.Offset(0), _
                                   LookIn:=xlValues, _
                                   LookAt:=xlPart, _
                                   SearchOrder:=xlByRows, _
                                   SearchDirection:=xlNext, _
                                   MatchCase:=False, _
                                   SearchFormat:=False)
     If rngE.Row <= Target.Row Then
       Set rngE = Cells(Rows.Count, .Column)
     End If
     With Range(.Offset(1), rngE.Offset(-1)).EntireRow
       .Hidden = Not .Hidden
     End With
   End If
 End With
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0


Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • BIGE.l.f.e
Top
#13
Hallo,

und warum nicht mit der Gruppierung? Hier habe ich doch schon "Buttons" mit denen ich einzelne Bereiche oder ganze Ebenen ein- und  ausblenden kann.

Zeilen oder Spalten verbergen ist doch fast so schlimm wie Zellen verbinden.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#14
Hallöchen,

also, der Code öffnet die komplette Ebene. Das ist das Gleiche, wie wenn Du oben auf die 1 oder 2 drückst oder was immer Du noch hast.

Wenn Du in Spalte B auf die Zelle mit dem Kunden klickst, ist es aber auch nicht weit bis zum +. Je nach Breite der Spalte A steht das ja fast gleich daneben.

Du kannst aber auch diesen Code verwenden:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  'Wenn eine andere Spalte als B=2 oder mehr als eine Zelle gewaehlt wurden, dann Makro verlassen
  If Target.Column <> 2  Or Target.Cells.Count > 1 Then Exit Sub
  'Gliederung der gewaehlten Zeile aufklappen
  ExecuteExcel4Macro "SHOW.DETAIL(1," & Target.Row & ",True)"
End Sub


Der Code kommt, wie zwei der bisher geposteten auch, in das Tabellenblattmodul. Ich hab hier mal den Ereigniscode vom Zellwechsel genommen, DoubleClick hat Uwe schon belegt Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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