Collapse column

Autor Thema: Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen  (Gelesen 3352 mal)

Offline anewka

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2007
Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen
« am: Oktober 23, 2015, 09:53:41 Vormittag »
Hallo an Alle,

ich habe hier ja schon viele hilfreiche Tips gefunden, danke schonmal dafür.
Bei einem Problem komme ich jetzt nicht weiter.

in einer Tabelle werden Preise errechnet, die Basisdaten werden aus anderen Tabellen gezogen.
Nun sollen nachträglich die zwischenergebnisse gerundet werden, ohne in jeden Formel gehen zu müssen und die Rundungsformel einzugeben.

mit VBA habe ich das soweit hinbekommen, scheitere aber an den externen Bezügen durch das Hochkomma.

Sub runde_auf_2()
Dim Zelle As Range
On Error Resume Next
For Each Zelle In Selection.Cells
 
 'Gleichheitszeichen entfernen
 Zelle.FormulaLocal = Replace(Zelle.FormulaLocal, "=", "")
 'Formel vor und nach der Formel anhängen
 Zelle.FormulaLocal = "=runden(" & Zelle.FormulaLocal & ";2)"
 
Next Zelle
On Error GoTo 0
End Sub

Ich habe schon mit mehreren replace-Befehlen versucht, das Hochkomma durch andere Zeichen zu ersetzen und nach der Formelergänzung wieder zurück, bin aber bisher immer gescheitert.

Besten Dank schonmal für hilfreiche Hinweise.

Gruß
Anewka

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen
« Antwort #1 am: Oktober 23, 2015, 10:20:05 Vormittag »
Moin Anewka,

eigentlich schade, dass du bei den "vielen hilfreichen Tipps" nicht auch gelesen hast, dass es meistens mehr als sinnvoll ist, eine (anonymisierte) Muster-Mappe (xls, xlsm) mit anzuhängen.
Gruß
Günther

Offline anewka

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2007
Antw:Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen
« Antwort #2 am: Oktober 23, 2015, 11:01:28 Vormittag »
Hallo Günther,

hole ich hiermit gerne nach, siehe Anhang.
Habe die Szenerie mal kurz nachgestellt.

Danke und Gruß Anewka

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen
« Antwort #3 am: Oktober 23, 2015, 12:13:55 Nachmittag »
Moin Anewka,

probiere es mal so:
Sub GMG()
   Dim Data As Range, c As Range
   
   Set Data = ActiveSheet.Range("A3:A6") 'anpassen
   For Each c In Data
      c.Formula = "=ROUND('Basis 1'!C" & c.Row & ",2)"
   Next c
End Sub
Gruß
Günther

Offline anewka

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2007
Antw:Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen
« Antwort #4 am: Oktober 23, 2015, 13:04:25 Nachmittag »
Hallo Günther,

vielen Dank für deine Antwort.
Nun ist das ja nur eine Beispieltabelle.
Der Bereich der um die Rundungsformel zu ergänzenden Zellen wird unterschiedlich groß sein.
In den Zellen stehen Verweise auf unterschiedliche Tabellen/Blätter.

Ich suche nun die Möglichkeit, unabhängig von der eigentlichen Verknüpfung die Rundenformel zu ergänzen.

Dazu habe ich versucht, das Hochkomma zu ersetzen und danach zurückzuersetzen. Funktioniert nur leider nicht wie gewünscht. Hier einer meiner Versuche:
Zitat
Sub runde_auf_2()
Dim Zelle As Range
On Error Resume Next
For Each Zelle In Selection.Cells
 
 'Hochkomma durch Raute ersetzen
' Zelle.FormulaLocal = Replace(Zelle.FormulaLocal, Chr(39), "#")
 Zelle.Value = Replace(Zelle.Value, "'", "#")
 
 'Gleichheitszeichen entfernen
 Zelle.FormulaLocal = Replace(Zelle.FormulaLocal, "=", "")
 'Formel vor und nach der Formel anhängen
 Zelle.FormulaLocal = "=runden(" & Zelle.FormulaLocal & ";2)"
 
 'Raute wieder durch Hochkomma ersetzen
' Zelle.FormulaLocal = Replace(Zelle.FormulaLocal, "#", Chr(39))
 Zelle.Value = Replace(Zelle.Value, "#", "'")

Next Zelle
On Error GoTo 0
End Sub

Wie bekomme ich das nun hin?

Danke und Gruß
Anewka

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2007: VBA - nachträglich Formel für runden in Zellen einfügen
« Antwort #5 am: Oktober 23, 2015, 13:11:43 Nachmittag »
OK, ich bin in einem Punkt von deiner "Vorgabe" abgewichen, dafür gerne die Korrektur:
Set Data = Range(Selection.Address(0, 0))
Ansonsten mag ich es nicht, wenn "Nachschlag" gefordert wird, weil die Beschreibung des Problems unzulänglich, unvollständig oder unverständlich war. Gewiss wird sich jemand andere in die Thematik einarbeiten, eigentlich solltest du es aber auch selber können. So schwer ist es nicht ...
Gruß
Günther

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.