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

Start Ende Spalte finden

Start Ende Spalte finden
14.02.2020 16:30:31
Merkes
Hallo,
ich möchte mithilfe einer Zeile (10), in der vollständige Kurze Tagesdaten (Datum) stehen, das End- bzw. Anfangsdatum des Monats in Zeile 10 ermitteln. Hierzu benötige ich für den Rest des Makros die Int ausgabe der Spalte. Ich bekomme für die Werte mal etwas raus, mal nicht, vorhanden sind sie auf jeden Fall in der Zeile.
Dim Summe As Long
Dim Zelle As Range
Dim i, n, E, Anfang, Ende, A, AT, NPT, Ausl, RowC, c, b, Sum As Integer
Dim wsc As Worksheet
With ThisWorkbook.Worksheets("Projekte")
.Activate
b = .Cells(18, 9).Value
c = .Cells(21, 9).Value
End With
ThisWorkbook.Worksheets("Chart").Activate
Set wsc = ThisWorkbook.Worksheets("Chart")
With wsc
RowC = wsc.UsedRange.SpecialCells(xlCellTypeLastCell).Row - 1
Set Anfang = .Range("H10:BZL10").Find(DateSerial(Year(Date), Month(Date) + b, 1))
Set Ende = .Range("H10:BZL10").Find(DateSerial(Year(Date), Month(Date) + c, 0))
A = Anfang.Column
E = Ende.Column

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Start Ende Spalte finden
14.02.2020 19:59:24
ChrisL
Hi
Vielleicht hast du ja nur als Kurzdatum formatiert, aber dahinter verstecken sich Nachkommastellen (Zeit).
Beachte Variablen Deklaration (bei dir ist es Typ Variant)
Dim i As Integer, n As Integer, E As In....
Activate weglassen:
With ThisWorkbook.Worksheets("Projekte")
b = .Cells(18, 9).Value
c = .Cells(21, 9).Value
End With
With ThisWorkbook.Worksheets("Chart")
RowC = .UsedRange.SpecialCells(xlCellTypeLastCell).Row - 1
Set Anfang = .Range("H10:BZL10").Find(DateSerial(Year(Date), Month(Date) + b, 1))
Set Ende = .Range("H10:BZL10").Find(DateSerial(Year(Date), Month(Date) + c, 0))
A = Anfang.Column
E = Ende.Column
End With
Bei Find immer die optionalen Parameter mit angeben.
https://docs.microsoft.com/en-us/office/vba/api/excel.range.find
Aber zum eigentlichen Problem. Ich denke das sollte sich errechnen lassen.
A = DateSerial(Year(Date), Month(Date) + b, 1) - DateSerial(Year(Date), 1, 1)
Ansonsten bitte eine kleine Beispieldatei hochladen.
cu
Chris
Anzeige
Benutze Application.Match...
15.02.2020 09:47:36
Beverly
Hi,
..., dann gibt es kein Problem wegen der Zellformatierung. Nach diesem Prinzip:
Sub AnfangEnde()
Dim varAnfang As Variant
Dim varEnde As Variant
varAnfang = Application.Match(Application.EoMonth(Date, -1), Rows(10), 0) + 1
If Not IsError(varAnfang) Then MsgBox varAnfang
varEnde = Application.Match(Application.EoMonth(Date, 0), Rows(10), 0)
If Not IsError(varEnde) Then MsgBox varEnde
End Sub


AW: Benutze Application.Match...
17.02.2020 09:06:09
Merkes
Vielen dank euch beiden. Das habe ich benötigt. Kann ich das Ganze auch für einen Datumswert (Start), der als Kurzdatum gefüllt ist, verwenden? In der Art:
  StartSpalte = Application.Match(Start, Rows(10), 0) 

Liebe grüße
Anzeige
AW: Benutze Application.Match...
17.02.2020 10:40:06
Beverly
Was verstehst du unter "Kurzdatum"? Was genau steht in der Zelle?


AW: Benutze Application.Match...
17.02.2020 11:43:35
Merkes
Hallo Karin, habe ein Lösung gefunden. Es ging um das Format dd.mm.yyyy.
StartSpalte = Application.Match(CLng(Start), Range("H10:BZL10"), 0

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige