Aktuelle KW in einer Tabelle suchen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Calendar Frame MsgBox
Bild

Betrifft: Aktuelle KW in einer Tabelle suchen
von: Jonas Z
Geschrieben am: 28.04.2015 17:39:48

Hallo Leute,
ich versuche herauszufinden wie ich die Spalte einer Exceltabelle in der die aktuelle Kalenderwoche vom heutigem Datum steht mit Hilfe eines VBA als eine meiner Variablen definiere für alle weiteren Schritte.
Bisher habe ich es so versucht:
If Cells(1, Column.Count) Like "*cw*" & "*Weekday(Date, vbMonday)*" Then
Spalte = Column.Active.Cells
End If

Das CW steht immer jeweils vor der Kalenderwoche.
Vielen Dank für eure Hilfe.

Bild

Betrifft: AW: Aktuelle KW in einer Tabelle suchen
von: Hajo_Zi
Geschrieben am: 28.04.2015 17:41:32
aktuelles Datum suchen

Option Explicit
 
Sub Test()
'   Heutiges Datum in Spalte A (1) suchen von Basti Spotlight
'   es wird die Zeile ausgegeben
    MsgBox Application.Match(CDbl(Date), Columns(1), 0)
End Sub



Bild

Betrifft: AW: Aktuelle KW in einer Tabelle suchen
von: Jonas Z
Geschrieben am: 28.04.2015 18:18:40
Ich glaube ich habe meine Fragestellung nicht ensprechend formuliert.Die Excel Tabelle sieht ca so aus:
Bsp: cw 17 cw18
xxx 10% 12%
xxx 5% 8%
xxx 3% 4%

Jetzt möchte ich die Spalte in der die aktuelle KW steht (jetzt 18) als meine Variable Spalte=... definieren, damit ich das Makro jede Woche laufen lassen kann ohne es jedesmal neu anpassen zu müssen.

Bild

Betrifft: AW: Aktuelle KW in einer Tabelle suchen
von: Nepumuk
Geschrieben am: 28.04.2015 19:22:12
Hallo,
teste mal:

Option Explicit

Public Sub SelectCurrentWeek()
    Dim vntReturn As Variant
    vntReturn = Application.Match("cw " & CStr(CalendarWeek(Date)), Rows(1), 0)
    If Not IsError(vntReturn) Then
        Cells(1, vntReturn).Select
    Else
        MsgBox "Kalenderwoche nicht gefunden.", vbCritical, "Fehler"
    End If
End Sub

Private Function CalendarWeek(ByVal pvdtmDate As Date) As Long
    Dim dtmTepmDate As Date
    dtmTepmDate = 4 + pvdtmDate - Weekday(pvdtmDate, vbMonday)
    CalendarWeek = (dtmTepmDate - DateSerial(Year(dtmTepmDate), 1, -6)) \ 7
End Function

Gruß
Nepumuk

Bild

Betrifft: AW: Aktuelle KW in einer Tabelle suchen
von: Jonas Z
Geschrieben am: 28.04.2015 20:01:08
Funktioniert leider nicht. Mir wird nur die Msg box angezeigt.
Hier nochmal wie es bisher aussah der Code komplett:

'Pfad auswählen
Workbooks.Open "C:\Users\..."
Sheets("Tabelle3").Select
Set MSppt = CreateObject("PowerPoint.Application")
ppt_slide = 1
Zeile = 1
TabellenZeile = 2
'Spalte gewählt als KW der Vorwoche(muss immer angepasst werden,d.h für jede weitere Woche muss  _
bei der Spaltenzahl 2 addiert werden)
 Spalte = 28
   
'Allgemein die aktuelle und vergangene KW in der Tabelle einsetzen
MSppt.ActivePresentation.Slides(ppt_slide).Shapes("Group 189").Table.Cell(1, 2).Shape.TextFrame. _
TextRange.Text _
= Replace(Cells(1, Spalte).Text, Chr(10), Chr(13))
MSppt.ActivePresentation.Slides(ppt_slide).Shapes("Group 189").Table.Cell(1, 3).Shape.TextFrame. _
TextRange.Text _
= Replace(Cells(1, Spalte + 2).Text, Chr(10), Chr(13))
'Füllen des PPT-Slides unter den nachstehenden Bedingungen
While Cells(Zeile, 1).Text <> ""
        If (Cells(Zeile, vntReturn) <> "" And Cells(Zeile, Spalte + 2) <> "") _
        Or (Cells(Zeile, vntReturn) <> "100%" And Cells(Zeile, Spalte + 2) <> "") Then
        
         With MSppt.ActivePresentation.Slides(ppt_slide)
            .Shapes("Group 189").Table.Cell(TabellenZeile, 1).Shape.TextFrame.TextRange.Text =  _
Replace(Cells(Zeile, 1).Text, Chr(10), Chr(13))
            .Shapes("Group 189").Table.Cell(TabellenZeile, 2).Shape.TextFrame.TextRange.Text =  _
Replace(Cells(Zeile, Spalte - 2).Text, Chr(10), Chr(13))
            .Shapes("Group 189").Table.Cell(TabellenZeile, 3).Shape.TextFrame.TextRange.Text =  _
Replace(Cells(Zeile, Spalte).Text, Chr(10), Chr(13))
            .Shapes("Group 189").Table.Cell(TabellenZeile, 4).Shape.TextFrame.TextRange.Text =  _
Replace(Cells(Zeile, Spalte + 1).Text, Chr(10), Chr(13))
Danke für eure Hilfe!

Bild

Betrifft: AW: Aktuelle KW in einer Tabelle suchen
von: Nepumuk
Geschrieben am: 28.04.2015 20:18:18
Hallo,
in meiner Mappe funktioniert das, was anderes zum testen hatte ich ja nicht.
Und was hat deine letzte Antwort mit dem ursprünglichen Problem zu tun?
Gruß
Nepumuk

Bild

Betrifft: AW: Aktuelle KW in einer Tabelle suchen
von: Jonas Z
Geschrieben am: 29.04.2015 09:10:41
Ok ich habe es jetzt so gelöst danke für eure Hilfe.

While Spalte < Columns.Count
    If (Cells(1, Spalte).Text Like ("*Cw*" & DatePart("ww", Date, vbMonday, vbFirstFourDays)))  _
Then
        gewinnerspalte = Spalte
    End If
    Spalte = Spalte + 1
    Wend


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Aktuelle KW in einer Tabelle suchen"