Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Tabelle generieren
#1
Hallo,

ich habe hier folgenden Code, der mir über drei Variablen (AnzD,AnzP,AnzA) eine Tabelle generiert:

Code:
Public ZLo, SLo, ZRu, SRu As Integer
Public farbnummer As Integer

Sub TabConfig03()

Dim Spaltenname As String
Dim i, j, k As Integer
Dim EdTab02 As Range

Range(Cells(12, 27), Cells(30, 36)).Name = "EdTab02" ' Tabellenbereich ohne Rand
maxrow = Range("EdTab02").Rows.Count
maxcol = Range("EdTab02").Columns.Count

With Range(Cells(10, 26), Cells(30, 37))
   .Clear
   .Interior.ColorIndex = 55
End With

For j = 1 To maxrow
   With Range("EdTab02")
       .Range(Cells(j, 1), Cells(j, 2)).MergeCells = True 'Spalten AA:AB
       .Range(Cells(j, 4), Cells(j, 5)).MergeCells = True 'Spalten AD:AF
       .Range(Cells(j, 7), Cells(j, 9)).MergeCells = True 'Spalten AD:AF
   End With
Next j

AnzD = 5
AnzP = 0
AnzA = 4
sumDPA = AnzD + AnzP + AnzA + 3 ' "+3" = Überschriftenzeilen

Cells(2, 30) = sumDPA

For j = 1 To maxcol ' ----------------------------------------------Spaltenzähler
   For i = 1 To sumDPA '--------------------------------Zeilenzähler
   
       If AnzP = 0 And i = 2 + AnzD Then i = i + 1
       
       Select Case i
           Case 1, 2 + AnzD, 3 + AnzD + AnzP
               farbnummer = 12 'dunkelblau
               Spaltenname = ""
           Case Else
               Select Case j
                   Case 2
                       farbnummer = 5 'hellblau
                       l = l + 1
                       Spaltenname = "Column " & Chr(64 + l)
                   Case Else
                       farbnummer = 56 'weiß
                       Spaltenname = ""
               End Select
        End Select
           
           Range("EdTab02").Cells(i, j).Select
           Call Zelleanzeigen
           Range("EdTab02").Cells(i, j - 1) = Spaltenname
   Next
Next
End Sub

Private Sub Zelleanzeigen()

   With Selection
       .Interior.ColorIndex = farbnummer
       .Borders(xlEdgeLeft).LineStyle = xlContinuous
       .Borders(xlEdgeTop).LineStyle = xlContinuous
       .Borders(xlEdgeBottom).LineStyle = xlContinuous
       .Borders(xlEdgeRight).LineStyle = xlContinuous
   End With
End Sub

Das Ganze funktioniert auch prächtig, falls AnzP größer 0 ist.

Ergebnis:
   

Ein Problem tritt auf, wenn AnzP = 0 ist, dann habe ich natürlich zwei Zeilen Überschrift:
ohne if Abfrage!

   

Mit der If-Abfrage ist es mir lediglich gelungen, daß die erste Überschriftenzeile nicht eingefärbt wird.

   

Frage: Wie kriege ich die leere Zeile zwischen den beiden Bereichen weg?
Top
#2
Hallo

Bei       AnzD = 0     AnzP = 1      AnzA = 1      hast du doch auch zwei Überschriften.

Vorschlag  AnzD, AnzP, AnzA nacheinander Abfragen und Auswerten.

AnzD = 0 nichts tun      >0 Tabelle
AnzP = 0 nichts tun      >0 Tabelle
AnzA = 0 nichts tun      >0 Tabelle
 

Mfg
Top
#3
Hier mal ein fertiges Bsp.


.xlsm   Tab erzeugen.xlsm (Größe: 23,08 KB / Downloads: 2)
Top


Gehe zu:


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