Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Wert auslesen und in andere Zelle schreiben

VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 09:17:46
Marco
Morgen =)
Ich wollte mal fragen wie man Wert aus einer Zelle ausliest und in eine andere überträgt. Also wenn ich jetzt in Zelle A1 eine Zahl schreibe soll sie z.B. in C1 stehen, aber mittels VBA und ohne das ich einen Button drücken muss. Kann mir jemand bitte erklären wie das geht?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 09:25:24
Crazy
Hallo
nach deinen Angaben
gehört in das Tabellenblattmodul in dem es stattfinden soll
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Range("C1") = Range("A1")
End Sub
MfG Tom
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 09:28:39
Marco
Danke Tom ich habe es gerade eingeben aber es passiert nichts. Muss ich noch irgendetwas aktivieren?
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 09:31:01
Marco
Aah Entschuldigung es geht ich habe den Wert nur nicht geändert danke =)
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 09:53:28
Marco
Tom ich habe noch eine Frage und zwar möchte ich das wenn die Zelle A1 nicht leer ist in die Zelle D4 den Wert 24 eintragen. Ich habe es damit versucht:
If Target.Address = "$A$1" "" Then Range("D1") = Range("24")
Aber es funktioniert nicht. Kannst du oder irgendjemand anders mir bitte sagen was ich da falsch gemacht habe?
Anzeige
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 10:12:37
hary
Moin
If Range("A1")  "" Then Range("D1") = 24
andere Loesung:
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" And IsNumeric(Target) Then '--Pruefung Adresse und ob Zahl
Range("C1") = Target
Range("D1") = IIf(Target, 24, "")
End If

gruss hary
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 11:08:32
Marco
Danke das funktioniert super du hast damit auch gleich meine nächste Frage die ich stellen wollte erschlagen.
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 13:40:23
Marco
Hallo Hary, jetzt habe ich doch noch eine Frage. Dein VBA Code Kopiert den Zellen Wert von A nach B ohne Probleme, aber wenn ich in der Zelle A eine Formel drin stehen habe dann kopiert der VBA Code nichts mehr. Woran liegt das? In der Zelle steht jetzt bei mir anstatt der Zahl 22 diese Formel:
{=WENNFEHLER(INDEX(E:E;KKLEINSTE(WENN(E$1:E$70;ZEILE($1:$7));ZEILE(1:99)));"")}
Die Formel funktioniert und sucht in der Spalte E nach Werten und listet sie der Reihe nach auf.
Der ermittelte Wert steht dann in Zelle A1 aber der VBA Code nimmt nicht diesen Wert an.
Kannst du mir dabei weiterhelfen? oder Könnte man die Funktion der Formel in den VBA Code schieben?
Grüße Marco
Anzeige
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 15:31:22
Marco
Weiß vielleicht jemand anderes da draußen warum der VBA Code nur mit Wert aus der Zelle arbeiten kann und nicht mit Werten die eine Formel in die Zelle schreibt?
AW: VBA Wert auslesen und in andere Zelle schreiben
20.01.2017 16:56:24
hary
Moin
Muss gleich weg.
Worksheet_Change startet, wenn sich der Zellinhalt haendisch aendert.
Da sich aber der Wert durch Formel aendert wirkt Change nicht.
Dafuer gibt es Worksheet_Calculate, dieser startet wenn sich ein Wert durch Formel aendert. Aber den kann man nicht speziell auf eine Zelle setzen. Startet bei jeder Formelneuberechnung.
Private Sub Worksheet_Calculate()
If IsNumeric(Range("A1")) Then '--Pruefung ob Zahl
Range("C1") = Range("A1")
Range("D1") = IIf(Target, 24, "")
end if
End Sub

gruss hary
Anzeige
AW: VBA Wert auslesen und in andere Zelle schreiben
21.01.2017 11:00:53
Marco
Morgen Hary,
ich habe deinen Code ausprobiert und leicht verändert, aber bei mir stürzt dann Excel ab.
Anstatt wie vorher etwas von A1 zu C1 zu kopieren wollte ich nur A1 überprüfen ob was drin steht und wenn ja dann sollen in B1 und C1 die folgenden Werte eingetragen werden. In A1 steht eine Formel drin die entweder einen Wert ausgibt oder die Zelle dann leer lässt. Was habe ich denn falsch gemacht? Ich habe das vorher nämlich bei dem ersten Code den du hier gepostet hast auch so gemacht und da hat es funktioniert nur das die Zelle A1 vorher keine Formeln berücksichtigt hat.
Code der die Formel in A1 nicht berücksichtigt aber sonst funktioniert:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$a$1" And IsNumeric(Target) Then '--Pruefung Adresse und ob Zahl
Range("B1") = IIf(Target, 1, "")
Range("C1") = IIf(Target, 135.17, "")
End If

Code der die Formel in A1 berücksichtigen soll aber Excel zum abstürzen bringt:
Private Sub Worksheet_Calculate()
If IsNumeric(Target("A1")) Then '--Pruefung ob Zahl
Range("B1") = IIf(Target, 1, "")
Range("C1") = IIf(Target, 135.17, "")
End If

Anzeige
AW: VBA Wert auslesen und in andere Zelle schreiben
23.01.2017 08:04:21
hary
Moin
Kann passieren, weil der Code bei jeder Formelneuberechnung ausgefuehrt wird.
Hast du nicht eine andere Zelle die du mit Change ueberwachen kannst?
z.B. die Zelle die zur Wertberechnung der Formel gebraucht wird. Irgendwo traegst du einen Wert ein.
gruss hary

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige