Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktuelle KW in einer Tabelle suchen

Forumthread: Aktuelle KW in einer Tabelle suchen

Aktuelle KW in einer Tabelle suchen
28.04.2015 17:39:48
Jonas Z

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.

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktuelle KW in einer Tabelle suchen
28.04.2015 17:41:32
Hajo_Zi
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


Anzeige
AW: Aktuelle KW in einer Tabelle suchen
28.04.2015 18:18:40
Jonas Z
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.

Anzeige
AW: Aktuelle KW in einer Tabelle suchen
28.04.2015 19:22:12
Nepumuk
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

Anzeige
AW: Aktuelle KW in einer Tabelle suchen
28.04.2015 20:01:08
Jonas Z
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!

Anzeige
AW: Aktuelle KW in einer Tabelle suchen
28.04.2015 20:18:18
Nepumuk
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

AW: Aktuelle KW in einer Tabelle suchen
29.04.2015 09:10:41
Jonas Z
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

Anzeige
Anzeige

Infobox / Tutorial

Aktuelle Kalenderwoche in Excel finden und nutzen


Schritt-für-Schritt-Anleitung

Um die aktuelle Kalenderwoche in einer Excel-Tabelle zu finden und zu verwenden, kannst du folgenden VBA-Code nutzen. Dieser Code sucht nach der Spalte, die die aktuelle KW enthält.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Option Explicit
    
    Public Sub AktuelleKWInTabelleSuchen()
       Dim Spalte As Long
       Dim gewinnerspalte As Long
    
       Spalte = 1  ' Beginne in der ersten Spalte
    
       While Spalte < Columns.Count
           If Cells(1, Spalte).Text Like ("*cw*" & DatePart("ww", Date, vbMonday, vbFirstFourDays)) Then
               gewinnerspalte = Spalte
               Exit While
           End If
           Spalte = Spalte + 1
       Wend
    
       If gewinnerspalte > 0 Then
           MsgBox "Aktuelle KW gefunden in Spalte: " & gewinnerspalte
       Else
           MsgBox "Keine aktuelle KW gefunden."
       End If
    End Sub
  4. Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.

Mit diesem Code kannst du die aktuelle KW in Excel anzeigen und die entsprechende Spalte als Variable verwenden.


Häufige Fehler und Lösungen

  • Fehler: "Kalenderwoche nicht gefunden"

    • Lösung: Stelle sicher, dass die Spaltenüberschrift exakt "cw X" (X = aktuelle KW) lautet. Achte auch auf Groß- und Kleinschreibung.
  • Fehler: MsgBox zeigt nur Fehler an

    • Lösung: Überprüfe den Code auf Syntaxfehler und stelle sicher, dass die Tabelle korrekt aufgebaut ist.
  • Excel stürzt ab

    • Lösung: Reduziere den Umfang der Tabelle oder teste den Code in einer neuen, leeren Tabelle.

Alternative Methoden

Wenn du die aktuelle Kalenderwoche in Excel ohne VBA anzeigen möchtest, kannst du die folgende Formel verwenden:

=KALENDERWOCHE(HEUTE();2)

Diese Formel gibt dir die aktuelle Kalenderwoche zurück, basierend auf dem heutigen Datum. Du kannst sie in einer Zelle deiner Wahl einfügen.


Praktische Beispiele

Angenommen, deine Tabelle sieht wie folgt aus:

cw 17 cw 18 cw 19
10% 12% 14%
5% 8% 6%
3% 4% 5%

Um die Daten für die aktuelle KW in Excel anzuzeigen, kannst du den oben genannten VBA-Code verwenden. Das Makro wird die Spalte für die aktuelle KW finden und dir eine Nachricht anzeigen.


Tipps für Profis

  • Nutze Named Ranges für die Spalten, um die Wartbarkeit der Formeln und des Codes zu erhöhen.
  • Implementiere Error-Handling im VBA-Code, um die Benutzerfreundlichkeit zu verbessern.
  • Erstelle eine Schaltfläche in der Excel-Oberfläche, um das Makro einfach auszuführen.

FAQ: Häufige Fragen

1. Was ist die aktuelle Kalenderwoche?
Die aktuelle Kalenderwoche ist die Woche des Jahres, in der das heutige Datum liegt. Sie wird häufig in der Geschäftswelt verwendet, um Termine und Fristen zu koordinieren.

2. Wie kann ich die aktuelle Kalenderwoche in Excel anzeigen?
Du kannst die Funktion =KALENDERWOCHE(HEUTE();2) oder ein VBA-Makro verwenden, um die aktuelle KW in deiner Excel-Tabelle anzuzeigen.

3. Funktioniert das auch in älteren Excel-Versionen?
Ja, die Funktionalität zur Berechnung der aktuellen KW ist in den meisten Excel-Versionen verfügbar. Stelle jedoch sicher, dass du die korrekten Funktionen und Formeln verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige