Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahl mit VBA in andere Zelle übertragen

Zahl mit VBA in andere Zelle übertragen
05.12.2019 11:45:19
Salih
Hallo an alle,
ich möchte gerne mit VBA die Zahl, die in einer Zelle steht, auslesen und in eine andere Zelle hineinschreiben.
Ein Beispiel:
Sub Ubertragung()
a = Worksheets("Sheet1").Cells(1, 1).Value
Worksheets("Sheet1").Cells(1, 2).Value = "=a"
End Sub
Leider ist es so, dass in die Zelle (1,2) immer eine Null hineingeschrieben wird, egal was in Zelle (1,1) steht.
Wieso ist das so?
Was kann man machen?
Vielen Dank im voraus.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl mit VBA in andere Zelle übertragen
05.12.2019 11:50:08
Stefan
Hallo,
also du hast die Variable ja vermutlich deklariert?
Worksheets("Sheet1").Cells(1, 2).Value = "=a"

der Fehler liegt in der Codezeile.
Worksheets("Sheet1").Cells(1, 2).Value = a
So wäre es richtig.
Gruß Stefan
Anzeige
AW: Zahl mit VBA in andere Zelle übertragen
05.12.2019 11:53:25
hary
Moin
Geht ohne Variabele.
Sub Ubertragung()
With Worksheets("Sheet1")
.Cells(1, 2).Value = .Cells(1, 1).Value
End With
End Sub

gruss hary
AW: Zahl mit VBA in andere Zelle übertragen
05.12.2019 11:54:09
Torsten
Hallo,
erstens bitte mit Option Explicit arbeiten, dann wird nicht vergessen, dass man Variablen definieren sollte.
Zweitens, so wie du das hier versuchst, kann das nicht gehen. Du willst doch keine Formel in die Zelle schreiben, sondern den Wert von a.
Also, so wie du es versuchst:

Sub Ubertragung()
Dim a as Long
a = Worksheets("Sheet1").Cells(1, 1).Value
Worksheets("Sheet1").Cells(1, 2).Value = a
End Sub

In diesem Fall braeuchte man aber den Umweg ueber die Variable garnicht. Man kann den Wert direkt von einer Zelle in die andere uebergeben:

Sub Ubertragung()
Worksheets("Sheet1").Cells(1, 2).Value = Worksheets("Sheet1").Cells(1, 1).Value
End Sub

Gruss Torsten
Anzeige
AW: Zahl mit VBA in andere Zelle übertragen
05.12.2019 12:12:05
Salih
Vielen Dank für eure Antworten.
Der Fehler liegt tatsächlich daran, dass ich = "=a" geschrieben habe, statt einfach nur =a.
Ebenso danke für euren Hinweis, dass man den Umweg über die Variable nicht bräuchte. Es ist aber so, dass der Code nur ein Beispiel sein sollte, im echten Programm wird mit der Variable noch weitergerechnet, also z.B. a^3/4 usw... Deshalb ist die Variable nötig.
Anzeige
;

Forumthreads zu verwandten Themen

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

Zahl mit VBA in andere Zelle übertragen


Schritt-für-Schritt-Anleitung

Um den Wert einer Zelle in Excel mit VBA auszulesen und in eine andere Zelle zu schreiben, kannst du den folgenden Code verwenden. Dieser Code ist einfach und direkt und wird oft genutzt, um Werte von einer Zelle in eine andere zu übertragen.

Sub Ubertragung()
    Worksheets("Sheet1").Cells(1, 2).Value = Worksheets("Sheet1").Cells(1, 1).Value
End Sub

In diesem Beispiel wird der Wert von Zelle (1,1) in Zelle (1,2) übertragen.

Falls du eine Variable nutzen möchtest, sieht der Code so aus:

Sub Ubertragung()
    Dim a As Long
    a = Worksheets("Sheet1").Cells(1, 1).Value
    Worksheets("Sheet1").Cells(1, 2).Value = a
End Sub

Hier wird der Wert aus Zelle (1,1) in die Variable a gespeichert und anschließend in Zelle (1,2) geschrieben.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der beim Übertragen von Werten auftritt, ist die Verwendung von Anführungszeichen um den Variablennamen:

Worksheets("Sheet1").Cells(1, 2).Value = "=a"

Das führt dazu, dass Excel die Eingabe als Text interpretiert und nicht als Wert. Du solltest den Code so anpassen:

Worksheets("Sheet1").Cells(1, 2).Value = a

Ein weiterer Fehler kann auftreten, wenn du die Option Option Explicit nicht verwendest. Das führt dazu, dass möglicherweise nicht deklariert Variablen verwendet werden, was zu Fehlern führen kann. Achte darauf, alle Variablen zu deklarieren.


Alternative Methoden

Es gibt verschiedene Wege, um den Inhalt einer Zelle in eine andere zu kopieren. Eine Alternative ist die Verwendung der With-Anweisung, die den Code etwas übersichtlicher macht:

Sub Ubertragung()
    With Worksheets("Sheet1")
        .Cells(1, 2).Value = .Cells(1, 1).Value
    End With
End Sub

Diese Methode ermöglicht es dir, mehrere Operationen auf dem gleichen Arbeitsblatt durchzuführen, ohne ständig den Arbeitsblattnamen wiederholen zu müssen.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie du einen Wert aus einer Zelle auslesen und in eine andere Zelle schreiben kannst, während du eine Berechnung durchführst:

Sub UbertragungMitBerechnung()
    Dim a As Double
    a = Worksheets("Sheet1").Cells(1, 1).Value
    Worksheets("Sheet1").Cells(1, 2).Value = a ^ 3 / 4
End Sub

In diesem Beispiel wird der Wert aus Zelle (1,1) genommen, hoch 3 genommen und durch 4 geteilt, bevor er in Zelle (1,2) geschrieben wird.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende With-Blöcke, um den Code übersichtlicher zu gestalten und wiederholte Schreiboperationen zu vermeiden.
  • Teste deinen Code schrittweise und nutze den Debugger, um Probleme schnell zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich den Wert einer Zelle in eine andere Zelle kopieren?
Du kannst den Wert einfach mit dem folgenden Code übertragen:

Worksheets("Sheet1").Cells(1, 2).Value = Worksheets("Sheet1").Cells(1, 1).Value

2. Was mache ich, wenn ich die Formel und nicht den Wert übertragen möchte?
Wenn du eine Formel in eine Zelle einfügen möchtest, verwende:

Worksheets("Sheet1").Cells(1, 2).Formula = "=A1 * 2"

3. Wie kann ich eine Bedingung überprüfen, bevor ich einen Wert kopiere?
Verwende eine If-Anweisung, um Bedingungen zu überprüfen:

If Worksheets("Sheet1").Cells(1, 1).Value > 0 Then
    Worksheets("Sheet1").Cells(1, 2).Value = Worksheets("Sheet1").Cells(1, 1).Value
End If

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