Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen

Aktuelle KW in einer Tabelle suchen

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.


  

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

GrußformelHomepage


  

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.


  

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


  

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!


  

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


  

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



 

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