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

Zellen verbinden über Berechnung

Zellen verbinden über Berechnung
14.04.2014 11:57:25
Michael
Hallo,
ich habe folgendes Problem.
Ich möchte, dass sich Zellen automatisch nach einer Formel verbinden.
z.B. Für April
der April hat 30 Tage
heute der 14. April.
Formel 30-14+1= 15 dann sollen sich die nächsten 15 Zellen verbinden.
Am Monatsanfang halt 30 Zellen und am Monatsende nur noch eine Zelle
Gruß Michael

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen verbinden über Berechnung
14.04.2014 12:29:37
Oberschlumpf
Hi Michael
30-14+1 ist nicht 15, sondern 17!
Warum muss denn 1 hinzugezählt werden?
Wenn heute der 14. ist, bleiben für April doch noch 16 und nicht 15 Tage.
Ciao
Thorsten

AW: Zellen verbinden über Berechnung
14.04.2014 12:40:43
Michael
Hallo Thorsten,
du hast natürlich recht es ist 17.
Warum muss denn 1 hinzugezählt werden?
wenn dann irgendwann der 30.te ist dann hättest du 30-30=0 deshalb +1 aber das ist ja nicht das Problem ob dann noch + 1 gerechnet werden muss oder nicht, sondern das die Zellen sich zum Monatsende hin verkleinern und zum Monatsanfang halt die max. Größe von 31 oder 30 Tagen haben.
vielen Dank schon mal.
Gruß Michael

Anzeige
AW: Zellen verbinden über Berechnung
14.04.2014 12:46:30
Tino
Hallo,
ich habe es mal so versucht, hoffe es ist so von Dir gemeint.
In ein Modul im VBA kommt dieser Code.
Function Verketten_(varBereich As Range, Optional Delimiter$)
Dim varValues As Range
For Each varValues In varBereich.Columns
    If IsArray(varValues) Then
        Verketten_ = Verketten_ & Join(Application.Transpose(varValues.Value), Delimiter) & Delimiter
    Else
        Verketten_ = Verketten_ & varValues.Value & Delimiter
    End If
Next varValues
If Delimiter <> "" Then
    Verketten_ = Left$(Verketten_, Len(Verketten_) - 1)
End If
End Function
 AB
1Heute14.04.2014
2Monat letzter30.04.2014
3Anzahl17
4Verketten$B$19$B$20$B$21$B$22$B$23$B$24$B$25$B$26$B$27$B$28$B$29$B$30$B$31$B$32$B$33$B$34$B$35
5  
601.04.2014$B$6
702.04.2014$B$7
803.04.2014$B$8
904.04.2014$B$9
1005.04.2014$B$10
1106.04.2014$B$11
1207.04.2014$B$12
1308.04.2014$B$13
1409.04.2014$B$14
1510.04.2014$B$15
1611.04.2014$B$16
1712.04.2014$B$17
1813.04.2014$B$18
1914.04.2014$B$19
2015.04.2014$B$20
2116.04.2014$B$21
2217.04.2014$B$22
2318.04.2014$B$23
2419.04.2014$B$24
2520.04.2014$B$25
2621.04.2014$B$26
2722.04.2014$B$27
2823.04.2014$B$28
2924.04.2014$B$29
3025.04.2014$B$30
3126.04.2014$B$31
3227.04.2014$B$32
3328.04.2014$B$33
3429.04.2014$B$34
3530.04.2014$B$35
3601.05.2014$B$36
3702.05.2014$B$37
3803.05.2014$B$38
3904.05.2014$B$39
4005.05.2014$B$40
4106.05.2014$B$41
4207.05.2014$B$42
4308.05.2014$B$43
4409.05.2014$B$44
4510.05.2014$B$45

Formeln der Tabelle
ZelleFormel
B1=HEUTE()
B2=DATUM(JAHR(HEUTE()); MONAT(HEUTE())+1;0)
B3=TAG(B2)-TAG(B1)+1
B4=VERKETTen_(BEREICH.VERSCHIEBEN($B$6;VERGLEICH(B1;A6:A45;0)-1;;B3))

Hier noch meine Testdatei.
https://www.herber.de/bbs/user/90148.xlsm
Gruß Tino

Anzeige
AW: Zellen verbinden über Berechnung
14.04.2014 12:48:03
Oberschlumpf
Hi Michael
Ok, mit = 17 kann ich arbeiten; die = 15 hatte mich verwirrt!
Es wird also immer ein Tag MEHR angezeigt, bzw eine Zelle MEHR verbunden, als noch Tage vorhanden.
Teste erst mal mit einer neuen Datei, und verkleiner die Spalten B:AF auf 1,39 Spaltenbreite
Schreib diesen Code ins Tabellenmodul
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Range("B2").Interior.ColorIndex = xlAutomatic
With Range("B2:AF2")
.UnMerge
.Clear
End With
If Target.Address = "$A$2" Then
Range(Cells(2, 2), Cells(2, Day(DateSerial(Year(Range("A2").Value), _
Month(Range("A2").Value) + 1, 0)) - Day(Target.Value) + 2)).Merge
End If
Range("B2").Interior.ColorIndex = 3
Application.EnableEvents = True
End Sub

UND teste mit Datumseinträgen in Zelle A2
Hilfts?
Ciao
Thorsten

Anzeige
AW: Zellen verbinden über Berechnung
14.04.2014 14:26:21
Michael
Hallo Thorsten,
gefällt mir schon sehr gut. Vielen Dank.
Kannst du die VBA auch so verändern, dass 2 oder 3 Monate hintereinander gehen
und mit Rahmen versehen das habe ich auch nicht hinbekommen.
Danke Michael

AW: Zellen verbinden über Berechnung
14.04.2014 14:39:57
Oberschlumpf
Hi Michael
Dann zeig bitte mal ne Bsp-Datei, wie es aussehen soll.
Ciao
Thorsten

AW: Zellen verbinden über Berechnung
15.04.2014 08:38:13
Michael
Hallo Thorsten,
habe dir mal eine Tabelle mit angehangen und eine Info in der Tabelle hinterlassen.
Gruß Michael.
https://www.herber.de/bbs/user/90169.xlsm

sorry,kann nicht helfen
15.04.2014 09:06:53
Oberschlumpf
Hi Michael,
die Datei ist leider zu groß (zu viele Spalten) + es werden Befehle verwendet, die mein Excel 2003 nicht kennt.
Und die Info sagt mir leider nicht, auf welche Zelle sich die Änderung für Mai bezieht.
Ich bin leider raus.
Ciao
Thorsten

Anzeige
AW: Zellen verbinden über Berechnung
15.04.2014 11:13:33
Tino
Hallo,
hättest ja ruig mal schreiben könne das ich dich nicht verstanden habe!
Sub Verbinden()
Dim nCol1, nCol2
Dim MinDate As Date, MaxDate As Date, Monate&, n&
Application.EnableEvents = False
With Tabelle1
    .Range("I6", .Cells(6, .Columns.Count)).UnMerge
    .Range("I6", .Cells(6, .Columns.Count)).ClearFormats
    MinDate = Application.WorksheetFunction.Min(.Rows(10))
    MaxDate = Application.WorksheetFunction.Max(.Rows(10))
    Monate = DateDiff("m", MinDate, MaxDate)
    
    For n = 1 To Monate
        nCol1 = Application.Match(CLng(MinDate), .Rows(10), 0)
        MaxDate = DateSerial(Year(MinDate), Month(MinDate) + 1, 0)
        nCol2 = Application.Match(CLng(MaxDate), .Rows(10), 0)
        If IsNumeric(nCol1) Then
            If IsNumeric(nCol2) Then
                With .Range(.Cells(6, nCol1), .Cells(6, nCol2))
                    .Merge
                    .Cells(1, 1) = Format(MinDate, "mmmm")
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .Interior.Color = RGB(255, 192, 0)
                    .Font.Size = 16
                    .Font.Bold = True
                    .Borders(xlEdgeLeft).Weight = xlMedium
                    .Borders(xlEdgeTop).Weight = xlMedium
                    .Borders(xlEdgeBottom).Weight = xlMedium
                    .Borders(xlEdgeRight).Weight = xlMedium
                End With
            End If
        End If
        MinDate = DateSerial(Year(MinDate), Month(MinDate) + 1, 1)
    Next n

End With
Application.EnableEvents = True
End Sub
Gruß Tino

Anzeige
AW: Zellen verbinden über Berechnung
15.04.2014 13:20:29
Michael
Hallo Tino,
ja sorry und vielen Dank natürlich auch für deine Hilfe.
Kann deinen Code noch nicht ganz folgen.
Auf welche Zelle mit Datum
oder auf welches Datum bezieht sich dein Code

AW: Zellen verbinden über Berechnung
15.04.2014 14:03:08
Tino
Hallo,
auf die Datum Werte in Zeile 10
Gruß Tino

AW: Zellen verbinden über Berechnung
15.04.2014 14:57:08
Michael
Hallo Tino,
hast du den Code ausprobiert?
bei mir passiert da nix.
Gruß Michael

ja mit deiner letzten Datei oT.
15.04.2014 15:01:34
Tino

AW: ja mit deiner letzten Datei oT.
15.04.2014 15:23:00
Michael
Hallo Tino,
haut hin.
Vielen Dank für deine Hilfe und ein schönes Oster Fest.
Gruß Michael

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige