Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro für aktuelle Daten
#1
Hallo Community,

ich hab zur Zeit die Aufgabe ein Eingabe zu vereinfachen.
Folgende Sache: Ich habe im Prinzip 2 Zeilen, in der ersten Zeile stehen die Monate drin und in der zweiten Zeile Werte einer Messung. Neue Werte werden meist am Monatsanfang "händisch" nach rechts fortlaufend je Monat eingegeben. Ich möchte jetzt, dass mittels Button "Aktualisieren" in Zelle X der Durchschnitt von den letzten 9 Monaten angegeben wird und per Klick auf den Button entsprechend einmal sich nach rechts verschiebt damit man sozusagen den neuen Wert in die Rechnung für den Durchschnitt mit einbezieht, diesen Bereich aus 9 Zellen soll auf einem Balken Chart dargestellt werden.
Dann soll nach Ablauf des entsprechenden Jahres die Werte mit den Monaten unter die Tabelle kopiert werden. Zum Abschluss soll das vergangene Jahr ausgeblendet werden damit man auf einem Blick die aktuellen Werte mit dem aktuellen Jahr sieht. Alles entsprechend fortlaufend.
Mein "Versuch" ^^

Sub Aktualisieren()
'
' Aktualisieren Makro

Dim Bereich, i, j
For i = 1 To 100
'Bereichsauswahl & +1 Spalte
Set Bereich = Range(Columns.Cells(3, 1 + i), Columns.Cells(3, 9 + i))
Bereich.Select
'Formel für Durchschnitt
Cells(17, 11) = Application.WorksheetFunction.Sum(Range(Columns.Cells(3, 1 + i), Columns.Cells(3, 9 + i))) / 9

'Ausblenden des letzten Monats
'ActiveSheet.Columns(1 + i, 3).Hidden = True

'am Ende des Jahres X kopieren
If i = 13 Then
Range("B2:M4").Select
Selection.Copy
Range("B28").Select
ActiveSheet.Paste
End If

If i = 26 Then
Range("N2:Y4").Select
Selection.Copy
Range("B32").Select
ActiveSheet.Paste
End If

If i = 39 Then
Range("Z2:AK4").Select
Selection.Copy
Range("B36").Select
ActiveSheet.Paste
End If
Next i
End Sub

Hoffe ich konnte es halbwegs erklären und nimmt mir meine "Noch-Unkenntnis" nicht übel =)
Danke!
Antworten Top
#2
Hallo Student,

was macht denn Dein Versuch und passt das oder nicht?
Unabhängig von eventuellen Optimierungsmöglichkeiten benötigst Du diese beiden Zeilen nicht:
Set Bereich = Range(Columns.Cells(3, 1 + i), Columns.Cells(3, 9 + i))
Bereich.Select
Den Bereich tust Du nur auswählen und verwendest ihn in Folge nicht mehr.

Wenn Du hier code einstellst, selbigen markierst und den Formatierungsbutton # verwendest, wird der code besser dargestellt. Hier mal ein Beispiel. Wenn Du in Deinem code die Zeilen zwischen For und Next und If und End If einrückst, bleibt das dann auch so.

Code:
If i = 39 Then
      Range("Z2:AK4").Select
      Selection.Copy
      Range("B36").Select
      ActiveSheet.Paste
   End If
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo Student,

Bei Deiner Erklärung zu den "händischen" Einträgen steht noch die Frage, wie die Monate auf Deiner Excel-Tabelle in Zeile 1 platziert sind. Wenn in A1 Januar steht, in B1 Februar, in C1 März usw., kannst Du schlecht neue Einträge für den Januar nach rechts fortlaufend eintragen.

Wenn die Werte in Zeile 2 stehen, ist es ungünstig, für die Durchschnittsberechnung die Zeile 3 zu nehmen.

Ich habe im Anhang mal als Ansatz eine Exceldatei mit einer Lösung ohne VBA.
(erstellt unter 2013)

Du baust Dir eine "Tabelle" in der Tabelle. Die sollte nach rechts mit der maximal möglichen Anzahl der Werte begrenzt sein. Ich habe hier mal 3 genommen.
In Spalte A stehen die Monate. Ich habe die Monatsnamen hier manuell eingetragen. Wenn Du das über ein Datum und die Zellformatierung regelst, kannst Du später auch nach Jahren filtern.

Unter der Tabelle habe ich die Ergebniszeile eingefügt. Als Ergebnis habe ich hier den Mittelwert genommen. Wenn Du nun Monate ausblendest, wird das automatisch neu berechnet.
Im Moment erweiterst Du die Monate z.B. mit dem Kontextmenü der Maus - rechte Maustaste, Zeilen einfügen. Wenn Du ausreichend leere Zeilen vorsiehst bzw. die Monate schon vorträgst, kannst Du das auch sparen.

Dann habe ich das Diagramm eingefügt und den Datenbereich festgelegt. Wenn Du die tabelle erweiterst, passen sich die Bezüge automatisch an. Wenn Du Zeilen oder Spalten ausblendest, passt sich das Diagramm ebenfalls an.


Angehängte Dateien
.xlsx   TabelleMittelwert.xlsx (Größe: 13,84 KB / Downloads: 8)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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