Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Wert auslesen und dividieren

VBA Wert auslesen und dividieren
09.07.2013 15:13:05
Gunnar
Hallo Zusammen,
ich habe mal wieder eine Frage:
Ich habe in einer Tabelle verschiedene Parameter für eine Berechnung in einer Spalte untereinander stehen, von denen einzelne durch einen festen Divisor dividiert und an anderer Stelle in der Datei wieder eingetragen werden sollen.
Beispiel: In Tabelle1 in Zelle A1 steht der Wert 1.200,00
Diesen Wert möchte ich per VBA auslesen, durch 12 teilen und das Ergebnis (in diesem Falle 100) in Tabelle2 in Zelle A1 als Wert eintragen.
Wie müsste ein entsprechender Code aussehen?
Ich hoffe, mir kann jemand weiterhelfen.
Vielen Dank im Voraus & beste Grüße
Gunnar

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wert auslesen und dividieren
09.07.2013 15:26:42
Hajo_Zi
Hallo Gunnar,
warum VBA
=Tabelle1!A1/12

AW: VBA Wert auslesen und dividieren
09.07.2013 17:26:40
Gunnar
Hallo Hajo,
um das zu erläutern, muss ich etwas weiter ausholen:
Ich habe eine etwas umfangreichere Kalkulationsdatei für die Berechnung von Liquiditätsszenarien. In einem Tabellenblatt in Spalte B ist ein Standardszenario mit 30 Parametern eingetragen. In den Spalten C - N sind Abweichungen der einzelnen Parameter vom Standardszenario. Mit einem wverweis hole ich mir die Daten des jeweils zu analysierenden Szenarios in Spalte B und verteile sie dann mit einem VBA-Makro (was im Wesentlichen nichts anderes tut als kopieren und einfügen), in die einzelnen relevanten Felder der Kalkulation. Die Ergebnisse (Liquidität, IRR, Zinsergebnis usw.) werden dann aus den verschiedenen Ergebniszellen der Kalkulation wieder ausgelesen und in eine Ergebnistabelle geschrieben.
Eine harte Verlinkung der Daten mit den Parametern (siehe oben Spalte B) in die einzelnen Tabellenblätter / relevanten Zellen der Kalkulationsdatei ist nicht gewünscht.
Einzelne dieser Parameter müssen aber vor Eintrag multipliziert oder dividiert werden. Mir ging es also um eine generelle Anfrage, wie ein VBA-Code aussehen könnte, der einen Zellwert ausliest, ihn mit einem festen Faktor (ggf. aus einer anderen Zelle) multipliziert (oder einem Divisor dividiert) und dann an anderer Stelle wieder einträgt.
Ich hoffe, ich konnte die Problematik etwas verständlicher machen.
Viele Grüße
Gunnar

Anzeige
AW: VBA Wert auslesen und dividieren
10.07.2013 06:37:18
Ass
Hallo Gunnar,
möglicherweise benutzt du eigene Funktionen in der Art:
Function CellDiv(A As Range, Optional Devisor As Range) As Double
CellDiv = A / Devisor
End Function

Function CellMul(A As Range, Optional Multiplikator As Range) As Double
CellDiv = A * Multiplikator
End Function
Der Code gehört in ein allgemeines Modul.
Die Funktion findest du in Excel unter Kategorie Bentzerdefiniert.
Gruß
Rudi

Anzeige
AW: VBA Wert auslesen und dividieren
10.07.2013 09:22:06
Gunnar
Hallo Rudi, hallo Marc,
sensationell. Das war genau das, was ich gesucht habe.
Vielen Dank & beste Grüße
Gunnar

So geht´s
10.07.2013 06:49:39
Marc

Sub teilen()
Sheets("Tabelle2").Range("A1") = Range("A1") / 2
End Sub
Gruß, MCO
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Wert auslesen und dividieren


Schritt-für-Schritt-Anleitung

Um einen Wert aus einer Zelle auszulesen, durch einen Divisor zu dividieren und das Ergebnis in eine andere Zelle zu schreiben, kannst du folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub teilen()
       Dim Wert As Double
       Dim Divisor As Double
    
       ' Wert aus Zelle A1 in Tabelle1 auslesen
       Wert = Sheets("Tabelle1").Range("A1").Value
       ' Dividieren durch 12
       Divisor = 12
       ' Ergebnis in Zelle A1 in Tabelle2 eintragen
       Sheets("Tabelle2").Range("A1").Value = Wert / Divisor
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro teilen auswählst und auf Ausführen klickst.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"
    Lösung: Überprüfe, ob die Tabellenblätter „Tabelle1“ und „Tabelle2“ existieren. Wenn nicht, passe die Namen im Code entsprechend an.

  • Fehler: Ergebnis ist 0 oder ein Fehlerwert
    Lösung: Stelle sicher, dass die Zelle A1 in Tabelle1 einen gültigen numerischen Wert enthält. Wenn die Zelle leer oder nicht numerisch ist, kann dies das Ergebnis beeinflussen.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du die Excel-Funktion direkt in einer Zelle verwenden:

  • In Tabelle2, Zelle A1, kannst du die folgende Formel eingeben:

    =Tabelle1!A1/12

Diese Methode ist einfach und benötigt keinen VBA-Code, eignet sich jedoch weniger für komplexe Berechnungen oder wenn du mehrere Zellen durch einen festen Wert dividieren möchtest.


Praktische Beispiele

  1. Ganze Spalte dividieren:
    Wenn du eine ganze Spalte durch 100 teilen möchtest, kannst du im VBA-Code die Schleife verwenden:

    Sub GanzeSpalteDividieren()
       Dim Zelle As Range
       For Each Zelle In Sheets("Tabelle1").Range("A1:A100")
           Zelle.Offset(0, 1).Value = Zelle.Value / 100 ' Ergebnis in Spalte B
       Next Zelle
    End Sub
  2. Excel alle Werte durch eine Zahl teilen:
    Um alle Werte in einem bestimmten Bereich durch einen Divisor zu teilen, kannst du folgendes Beispiel verwenden:

    Sub AlleWerteTeilen()
       Dim Zelle As Range
       Dim Divisor As Double
       Divisor = 100 ' Beispiel-Divisor
    
       For Each Zelle In Sheets("Tabelle1").Range("A1:A10")
           Zelle.Value = Zelle.Value / Divisor
       Next Zelle
    End Sub

Tipps für Profis

  • Benutzerdefinierte Funktionen: Du kannst eigene Funktionen erstellen, um das Excel dividieren von Zellen zu vereinfachen:

    Function CellDiv(A As Range, Optional Devisor As Double = 1) As Double
       CellDiv = A.Value / Devisor
    End Function

    Diese Funktion kann dann in Excel wie eine normale Formel verwendet werden.

  • Fehlerbehandlung einfügen: Denke daran, Fehlerbehandlungsroutinen in deinen Code einzufügen, um unerwartete Ergebnisse zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen durch 1000 teilen?
Du kannst eine Schleife verwenden, um alle gewünschten Zellen zu durchlaufen und sie durch 1000 zu teilen. Beispiel:

Sub MehrereZellenTeilen()
    Dim Zelle As Range
    For Each Zelle In Sheets("Tabelle1").Range("A1:A10")
        Zelle.Value = Zelle.Value / 1000
    Next Zelle
End Sub

2. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365. Achte darauf, dass die Makros in deinen Einstellungen aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige