Clever-Excel-Forum

Normale Version: VBA Zählen ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Nachdem der Fragesteller zuletzt online war, nachdem Gast123 seine Lösung gepostet hat, ohne eine Antwort zu geben, gehe ich mal davon aus, dass wir von dem nichts mehr hören.
Hallo zusammen,

Sorry, ich war jetzt beruflich im Ausland.

Ich brauche die Wertänderung, weil das Programm nur bis 200,0000 annimmt. Deswegen müssen alle Werte geändert werden.

Gast 123 hat es richtig erkannt. 200/endsumme.

die Frage ist, wie bekomme ich das in VBA hin denn ich draf keine Hilfsspalte nutzen.

Alle Werte müssen immer ,0000 sein 

Sorry das ich nicht früher melden konnte, so spontan weg musste ich noch nie.
Achtung, dieser Code überschreibt die Werte in Spalte A in gewünschter Weise. 
Code:
Sub test()
Dim Summe As Double, Faktor As Double, i As Integer, letzte As Integer

With Sheets("Tabelle1")
   letzte = .Cells(.Rows.Count, "A").End(xlUp).Row
   Summe = Application.WorksheetFunction.Sum(Sheets("Tabelle1").Range("A2:A" & letzte))
   Faktor = 200 / Summe
   For i = 2 To letzte
       .Cells(i, "B") = .Cells(i, "A") * Faktor
   Next i
End With

End Sub

Beachte außerdem, dass es keine Gesamtsumme unter den Werten geben darf, da diese sonst natürlich das Ergebnis verfälschen würde. Soll heißen, es dürfen in der Liste nur die zu verändernden Werte stehen. Sollte eine Gesamtsumme vorhanden sein, ändere die Zeile

Code:
letzte = .Cells(.Rows.Count, "A").End(xlUp).Row
in
Code:
letzte = .Cells(.Rows.Count, "A").End(xlUp).Row - 1


Nachtrag:
Das Ganze geht natürlich auch flott ganz ohne VBA. Rechne in einer beliebigen Zelle den Faktor aus, sprich 200/Gesamtsumme_alte_Werte. Kopiere nun genau diese Zelle und markiere danach die Liste mit den Einzelwerten (nur markieren, sonst nichts machen).
Nun wähle im Register Start den kleinen Pfeil unterhalb des Einfügen-Buttons und wähle "Inhalte einfügen". Markiere die Punkte "Werte" und "Multiplizieren" --> Ok. Somit wurden alle alten Werte mit dem Faktor multipliziert. Die Hilfszelle kannst du wieder löschen.
Hallo MisterBurns,

es klappt super. Dankeschön
Nur noch ein Problem 

Alle zahlen sind z.B. 0,16383874

zum einlesen darf es nur vier Stellen nach Komma sein.

Auch wenn ich Zellen Formation mache , Zahl nach vier Dezimalstellen ändere ich nur das aussehen. 

Ich kann nämlich nur vier stellig nach Komma einfügen.
Ersetze die Zeile
Code:
      .Cells(i, "B") = .Cells(i, "A") * Faktor
durch
Code:
      .Cells(i, "B") = Application.WorksheetFunction.Round((.Cells(i, "A") * Faktor), 4)
Seiten: 1 2