VBA - Durchschnitt
#1
Hallo liebe Excel-Community,

ich stehe vor folgendem Problem und es ist echt kompliziert. Huh  Falls jemand Zeit und Lust hat sich das anzuschauen, wäre ich sehr sehr froh darüber.

Im Worddoc. habe ich es so gut wie möglich auf einer Seite zusammengefasst.

Falls etwas nicht klar sein sollte, einfach nachfragen.

Vielen lieben Dank.

PS: Ich habe es nur in diesem Forum geposted.


Angehängte Dateien
.docx   Excel-Community.docx (Größe: 15,39 KB / Downloads: 7)
.xlsm   DDD.xlsm (Größe: 301,97 KB / Downloads: 5)
Top
#2
Es gibt evtl. eine einfachere Lösung. Da ich alle Formeln mit der orangen Zelle (Days) verlinkt habe, benötigt man ein Makro wie folgt:

wird in die orange Zelle z.Bsp. die Zahl 30 reingeschrieben, müsste das Makro von 1-30 einmal durchzählen, so wird für jeden Tag automatisch die Formeln aktiviert.... zusätzlich müsste für jeden Tag, der Wert bei R= in eine neue Zelle kopiert werden, so dass 30 R-Werte irgendwo in einer Spalte erscheinen, ist das irgendwie möglich ?

Ich habe echt keine Ahnung wie man solch ein Makro "programmier" wäre um jede Hilfe sehr sehr sehr froh ! Exclamation

Lieber Gruss
Selina
Top
#3
Also jetzt nochmals und gaaanz einfach Angel

In Zelle A1 schreibe ich eine Zahl hinein, sagen wir 30. In Zelle C2 soll nun von 1-30 gezählt werden. In Zelle D3 entsteht jedesmal ein neuer Wert (insgesamt 30), diese Werte von D3 sollen automatisch in eine Spalte kopiert werden, bis in dieser Spalte 30 Werte sind.

Wie sieht so ein Makro aus? Kennt sich da jemand damit aus ?

Lg
Top
#4
Hallo Selina,

test mal den Code. Er kommt in das Modul Sheet1.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
On Error GoTo Fehler

Application.EnableEvents = False
If Target.Address = "$D$2" Then
  Range("AE6:AF2000").ClearContents
  For i = 1 To Target.Value
      Range("D2").Value = i
      Range("AE" & i + 5).Value = i
      Range("AF" & i + 5).Value = Range("K1").Value
  Next i
End If
Fehler:
Application.EnableEvents = True
End Sub

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Selina1
Top
#5
Wink 
Es funktioniert Elex !!!  ;) Grossartig, ich freue mich gaaanz fest.

Danke vielmals für Deine Hilfe und Deine Zeit, die Du dafür geopfert hast Angel   :18:


Das ist echt toll und lieb von Dir.

Ganz liebe Grüsse
Selina
Top
#6
Hi,

wenn das Ergebnis passt, dann hier noch mal ein Code der dass selbe macht nur schneller.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, b As Long, ArrR As Variant
On Error GoTo Fehler

Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Address = "$D$2" Then
  b = Target.Value
  ReDim ArrR(1 To b, 0)
  Range("AE6:AE2000").ClearContents
    For i = 1 To b
      Range("D2").Value = i
      ArrR(i, 0) = Range("K1").Value
    Next i
  Range("AE6").Resize(b).Value = ArrR
End If
Fehler:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Jetzt aber nur die Werte ohne Tage Index. Solltest du den Index brauchen sag Bescheid.
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Selina1
Top
#7
Star 
Perfekt, funktioniert einwandfrei ! :D

Nochmals vielen lieben Dank  für Deine Mühe! Angel

Noch eine Frage, ich hab was kleines vergessen. Wäre es möglich das Gleiche mit K1 auch für N1 zu machen ? Ich denke schon, kann ich da einfach K1 mit N1 ersetzen ?

LG
Top
#8
Wenn N1 anstelle von K1 verwendet werden soll, dann im Code einfach K1 in N1 umschreiben.
Oder soll K1 und N1?
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Selina1
Top
#9
Hab ich genau so gemacht, aber es funktioniert nicht. Es erscheinen noch immer die Werte von K1.
Top
#10
Hm...

ArrR(i, 0) = Range("N1").Value

Muss gehen.
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Selina1
Top


Gehe zu:


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