Falsche Werte bei MergeArea
01.03.2017 14:25:05
Ingo
ich beiße mir gerade die Zähne an einem Problem aus und hoffe, dass ihr mir weiter helfen könnt. Diverse Dinge konnte ich hier im Forum bereits recherchieren, aber hier komme ich echt nicht mehr weiter.
Worum gehts?
Ich habe eine Tabell mit mehreren Überschriften in der ersten Zeile. Die Überschriften fassen jeweils eine Anzahl von bis zu 12 Spalte zusammen.
Unter diesen Überschriften ist eine zweite Zeile mit "Unterüberschriften" unter denen die jeweiligen Datenin das Tabellenblatt eingegeben werden sollen (zur Eingabe verwende ich ein Formular). Die Überschrift ist als verbundene Zellen über den Bereich der jeweiligen Unterüberschriften. Ich hoffe das ich das verständlich rüber gebracht habe.
Da die Begriffe unter den Überschriften in der Regel gleich sind (nicht alle) möchte ich die Anzahl der Spalten, die unter jeder Überschrift sind in eine Variable schreiben. Probiert habe ich das mit folgendem hier im Forum auch benannten Code:
.MergeArea.Cells.Count
Das Problem:
Das funktioniert soweit auch gut für die ersten 6 verbundenen Zellen ("Kundendaten" bis " "Heute+4HJ"). Danach liefert er mir leider für die jeweilige ...count-Variable (var_heute5_count und folgende) nur noch eine 1 (anstelle der erwarteten 12, siehe auch Kommentare im Code). Hat jemand von euch einen wertvollen Tipp?
Vielen Dank für eure Hilf schon mal vorab!
VG, Ingo
Hier der Code:
Function func_insert_data_to_customer_tab()
Dim ws As Worksheet
Dim zelle
Dim var_feldname As String
Dim var_customer_from As Integer
Dim var_customer_count As Integer
Dim var_heute_from As Integer
Dim var_heute_count As Integer
Dim var_heute1_from As Integer
Dim var_heute1_count As Integer
Dim var_heute2_from As Integer
Dim var_heute2_count As Integer
Dim var_heute3_from As Integer
Dim var_heute3_count As Integer
Dim var_heute4_from As Integer
Dim var_heute4_count As Integer
Dim var_heute5_from As Integer
Dim var_heute5_count As Integer
Dim var_heute6_from As Integer
Dim var_heute6_count As Integer
Dim var_heute7_from As Integer
Dim var_heute7_count As Integer
Dim var_heute8_from As Integer
Dim var_heute8_count As Integer
Dim iRow As Integer
Dim iColumns As Integer
Set ws = Worksheets("Detail_Kunde")
ws.Select
iColumns = .Cells(con_Suchzeile, .Columns.Count).End(xlToLeft).Column ' gibt die _
_
_
Anzahl der in Zeile 2 beschriebenen Spalten zurück
iColumns = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' gibt die Anzahl _
_
_
der in Zeile 2 beschriebenen Spalten zurück
For Each zelle In Range("A1:DM1")
var_feldname = zelle.Value
Select Case var_feldname
Case ""
Case "Kundendaten" ' Zelle A1 und 7 zusammengefasste Spalten --> Ausgabe OK
var_customer_from = zelle.Column
var_customer_count = zelle(con_ueberschrift, var_customer_from). _
MergeArea.Cells.Count
Case "Heute" ' Zelle H1 und 12 zusammengefasste Spalten --> Ausgabe OK
var_heute_from = zelle.Column
var_heute_count = zelle(con_ueberschrift, var_heute_from).MergeArea. _
Cells.Count
Case "Heute+1HJ" ' Zelle T1 und 12 zusammengefasste Spalten --> Ausgabe OK
var_heute1_from = zelle.Column
var_heute1_count = zelle(con_ueberschrift, var_heute1_from).MergeArea. _
_
_
Cells.Count
Case "Heute+2HJ" ' Zelle AF1 und 12 zusammengefasste Spalten --> Ausgabe OK
var_heute2_from = zelle.Column
var_heute2_count = zelle(con_ueberschrift, var_heute2_from).MergeArea. _
_
_
Cells.Count
Case "Heute+3HJ" ' Zelle AR1 und 12 zusammengefasste Spalten --> Ausgabe OK
var_heute3_from = zelle.Column
var_heute3_count = zelle(con_ueberschrift, var_heute3_from).MergeArea. _
_
_
Cells.Count
Case "Heute+4HJ" ' Zelle BD1 und 12 zusammengefasste Spalten --> Ausgabe OK
var_heute4_from = zelle.Column
var_heute4_count = zelle(con_ueberschrift, var_heute4_from).MergeArea. _
_
_
Cells.Count
Case "Heute+5HJ" ' Zelle BP1 und 12 zusammengefasste Spalten --> MergeArea _
_
_
ergibt 1!
var_heute5_from = zelle.Column
var_heute5_count = zelle(con_ueberschrift, var_heute5_from).MergeArea. _
_
_
Cells.Count
Case "Heute+6HJ" ' Zelle CB1 und 12 zusammengefasste Spalten --> MergeArea _
_
_
ergibt 1!
var_heute6_from = zelle.Column
var_heute6_count = zelle(con_ueberschrift, var_heute6_from).MergeArea. _
_
_
Cells.Count
Case "Heute+7HJ" ' Zelle CN1 und 12 zusammengefasste Spalten --> MergeArea _
_
_
ergibt 1!
var_heute7_from = zelle.Column
var_heute7_count = zelle(con_ueberschrift, var_heute7_from).MergeArea. _
_
_
Cells.Count
Case "Heute+8HJ" ' Zelle CZ1 und 12 zusammengefasste Spalten --> MergeArea _
_
_
ergibt 1!
var_heute8_from = zelle.Column
var_heute8_count = zelle(con_ueberschrift, var_heute8_from).MergeArea. _
_
_
Cells.Count
End Select
Next zelle
End