Springe zu aktuellen Monat
#1
Hallo an alle

Ich suche Unterstützung, für ein für Euch sicher einfaches Problem, für mich unlösbar.
Ich habe in meiner Tabelle Monatsangaben, sowohl in verschiedenen Spalten, als auch in verschiedenen Zeilen.
Leider bekomme ich es weder über Hyperlink, bzw. VBA nicht hin, daß der betreffende Monat angesprochen wird.
Es wäre schön, wenn das Feld unterhalb des entsprechenden Datums platziert wird und die Zelle sich hellblau färbt.

Es wäre schön, wenn ihr mir helfen könntet.

Mfg

babelalala und vielen Dank


Angehängte Dateien
.xlsm   Stromerfassungsdatenblatt Thomas.xlsm (Größe: 19,72 KB / Downloads: 20)
Antworten Top
#2
Hallo Peter,

Code:
Sub GeheZuMonat()
  On Error Resume Next
  Application.Goto Tabelle1.Cells.Find(DateSerial(Year(Date), Month(Date), 1)).Offset(1)
  ActiveCell.Interior.Color = RGB(204, 236, 255)
  On Error GoTo 0
End Sub

Gruß, Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • babelalala
Antworten Top
#3
D1:  =HYPERLINK("#"&ADRESSE(2+VERGLEICH(DATUM(JAHR(HEUTE());1;1);D2:D32;0);3+MONAT(HEUTE()));"Aktueller Monat")
[-] Folgende(r) 1 Nutzer sagt Danke an Andreas Killer für diesen Beitrag:
  • babelalala
Antworten Top
#4
Hi,

warum so ein Aufbau, der jede vernünftige Auswertung erschwert?

Das kann man ganz einfach mit einer int.Tabelle erledigen, oder mit Pivot. Ein Beispiel:


.xlsm   Stromerfassungsdatenblatt Thomas.xlsm (Größe: 25,47 KB / Downloads: 11)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Hi alle

Danke für die schnellen Rückmeldungen

Uwe sein Code passt perfekt

MfG

babelalala

Hi alle 

Ist es möglich, den Code so zu ändern, daß bei Klick in eine andere Zellen die Farbe wieder verschwindet?

MfG

babelalala
Antworten Top
#6
... eventuell reicht Dir auch im Ribbon "Ansicht" die Option "Fokuszelle"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Geht das auch integriert in dem Code?

Mit freundlichen Grüßen babelalala
Antworten Top
#8
Moin!
Noch nicht!
Zumindest zeichnet der Rekorder nichts auf.
Ob es diese Methode jemals in den Objektkatalog schafft, steht in den Sternen.
Ist halt ein alter Gaul, das VBA.
MS führt ihn dezent auf den seit Jahrzehnten vorhersagten Gnadenhof.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
Hallo

ja, du kannst in den Code von Uwe VOR seinem Code eine Löschroutine einbauen!
Dafür mache ich zwei Vorschläge, der erste ist für dich viel Schreibarbeit! Jede Zeile einzeln löschen!
Der zweite Vorschlag löscht die ganze Zeile, wo dein Cursor steht, BEVOR der Code von Uwe startet.
Bitte selbst testen welche Variante für dich am besten geeignet ist. Aber bitte nur eine Variante übernehmen!

mfg Gast 123

Code:
Sub GeheZuMonat()
'1) Farbe zurücksetzen;  jede Zeile einzeln programmieren!
  Range("D8:O8").Interior.Color = xlNone    'Zeile 8
  Range("D11:O11").Interior.Color = xlNone  'Zeile 11
  'usw.  .... bis letzte Zeile 34
 
  '2) oder nur Aktive Zeile zurücksetzen
  If Cells(ActiveCell.Row, 1) = "Dateneingabe" Then
     Cells(ActiveCell.Row, 4).Resize(1, 12).Interior.Color = xlNone
  End If

  On Error Resume Next   'ab Hier Code von Uwe!
  Application.Goto Tabelle1.Cells.Find(DateSerial(Year(Date), Month(Date), 1)).Offset(1)
  'ActiveCell.Interior.Color = RGB(204, 236, 255)
   ActiveCell.Select
  On Error GoTo 0
End Sub

Nachtrag  einfacher wäre es den ganzen Bereich von D7:O34 zu löschen, mit Range("D7:O34").Interior.Color = xlNone.
Aber in Zeile 18 "Differenz monatlich" sehe ich Farbmarkierungen! Weiß aber nicht ob das Bedingte Formatierungen sind??
Antworten Top
#10
Hallo Peter,

das wäre (m)ein Vorschlag:

VBA-Modul Modul1:
Code:
Public varZelle(1 To 2) As Variant

Sub GeheZuMonat()
  On Error GoTo Ende
  Application.Goto Tabelle1.Cells.Find(DateSerial(Year(Date), Month(Date), 1)).Offset(1)
  Set varZelle(1) = ActiveCell
  varZelle(2) = varZelle(1).Interior.Color
  ActiveCell.Interior.Color = RGB(204, 236, 255)
Ende:
  On Error GoTo 0
End Sub

VBA-Modul Tabelle1:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not varZelle(1) Is Nothing Then
    varZelle(1).Interior.Color = varZelle(2)
    Set varZelle(1) = Nothing
  End If
End Sub

Gruß, Uwe


Angehängte Dateien
.xlsm   Stromerfassungsdatenblatt Thomas_Kuwer.xlsm (Größe: 21,71 KB / Downloads: 3)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste