Funktion zum Ändern einer anderen Zelle.

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Funktion zum Ändern einer anderen Zelle.
von: Horst
Geschrieben am: 19.02.2005 10:55:49
Hallo liebe VBA-Experten,
ich suche einen Weg, aus einer Zelle heraus - bei einer bestimmten Bedingung - den Wert einer anderen Zelle zu ändern.
Ich denke, dass dies nur mit einer VBA Procedur (Sub / Funktion / Klassen Modul ?) möglich ist. Kann mir bitte jemand Hilfestellung leisten ? Vielen Dank im Voraus.
Horst

Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: Xelleron (Dennis)
Geschrieben am: 19.02.2005 11:01:59
Hallo Horst,
folgendes ist direkt ohne VBA möglich:
=WENN(A1=X;"ja";"nein")
Formel in die Zelle schreiben, die sich ändern soll bei bestimmten Wert in A1.
Hoffe das ist es was Du suchst.
Gruß Dennis
Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: ransi
Geschrieben am: 19.02.2005 11:03:46
hallo herbert
dafür gibt es ereignissprozeduren.
vereinfacht geht dein dein vorhaben z.B. so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Target.Value = 1 Then Range("b1") = "test"
End Sub

rechte maus auf den tabellenreiter
code anzeigen
in das fenster den code reinkopieren.
ransi
Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: Horst
Geschrieben am: 19.02.2005 11:08:50
Hallo Dennis,
vielen Dank für die schnelle Antwort. Ich suche jedoch eine Möglichkeit aus der Zelle, in welcher die Formel oder Funktion steht, in einer ANDEREN Zelle den Wert zu verändern.
Gibt's dazu auch eine Lösung ?
Horst
Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: Xelleron (Dennis)
Geschrieben am: 19.02.2005 11:14:02
Also in Excel ist das nach meinem Wissen nicht möglich, aber ich bin nicht allwissend.
Wenn Du in eine Zelle "X" einen Wert hast, und in Zelle "Y" soll sich dann der Wert "Z" eingetragen werden, dann muß die Funktion/Formel auch in Zelle "Y" stehen.
Gruß Dennis
Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: Horst
Geschrieben am: 19.02.2005 11:45:16
Hallo Ransi,
vielen Dank für den Code. Das sieht für mich als VBA-Laie schon gut aus. Ich bin Deiner Anweisung gleich gefolg aber leider tut sich nichts. Vermutlich habe ich was falsch gemacht.
Muss ich in der Parameterliste von "Private Sub Worksheet_Change(ByVal Target As Range)" irgend etwas ändern müssen? Woher hat die Routine den Verweis auf die Zelle A1 ?
In Zelle A1 hatte ich den Wert 1 eingegeben. Hätte dann nicht Dein "test" in B1 erscheinen müssen ?
Für weitere Hilfe wäre ich Dir sehr dankbar.
Horst
Bild

Betrifft: beispieldatei
von: ransi
Geschrieben am: 19.02.2005 12:04:01
hallo horst
ich hab mal eine beispieldatei gemacht.
https://www.herber.de/bbs/user/18326.xls
prüf mal ob deine makrosicherheit wenigstens auf mittel steht.
ransi
Bild

Betrifft: AW: beispieldatei
von: Horst
Geschrieben am: 19.02.2005 12:41:32
Super ! Jetzt klappt's.
Diese Routine ist sicherlich in vielen Fällen sehr nützlich. Dummerweise habe ich jedoch meinen Fall nicht genügend detailliert beschrieben. Die Einschränkung, dass man den Wert der Zelle manuell eingeben muss, bedeutet für mich noch nicht die endgültige Lösung meines Problems.
Meine Werte kommen automatisch über einen DDE-Link in mein Excel-Sheet, d.h. Zelle A1 würde ihren Wert bei mir automatisch ändern. Was nun ? - sprach Zeus.
Gibt es dazu evtl. auch noch eine Lösung ? Das wäre toll.
Nochmals vielen Dank soweit.
Horst
Bild

Betrifft: Private Sub Worksheet_Calculate()
von: ransi
Geschrieben am: 19.02.2005 12:49:27
hallo horst
dann brauchst du ein anderes ereigniss.
versuchs mal so:

Private Sub Worksheet_Calculate()
If Range("a1").Value = 1 Then Range("b1") = "test"
End Sub

ransi
Bild

Betrifft: Private Sub Worksheet_Calculate()&select case
von: ransi
Geschrieben am: 19.02.2005 13:03:15


      
hallo horst 
für den fall das für verschiedene werte 
in a1 
verschiedene werte 
in b1 schreiben willst, (soll ja mal vorkommen)
versuch mal dies:
Option Explicit
Private Sub Worksheet_Calculate()
Dim wert As String
Select Case Range("a1").Value
Case Is = 1
     wert = 
"Test"
Case Is = 2
     wert = 
"Noch ein Test"
Case Is = 3
     wert = 
"Und wieder ein Test"
'
'usw
'
Case Else: MsgBox "Versuchs nochmal !"
End Select
Range(
"b1") = wert
End Sub
ransi 

     Code eingefügt mit Syntaxhighlighter 3.0


Bild

Betrifft: AW: Private Sub Worksheet_Calculate()
von: Horst
Geschrieben am: 19.02.2005 13:15:45
Ransi,
leider funktioniert auch Dein erweiterter Code noch nicht. Ich fürchte ich mache da was falsch, obwohl mein Vorgehen beim Laden des Code wohl richtig ist, denn Deine zweite Lösung läuft ja.
Woran kann's denn sonst noch liegen ?
Horst
Bild

Betrifft: F9
von: ransi
Geschrieben am: 19.02.2005 13:27:52
hallo horst
steht die berechnung auf "manuell"?
dann drück mal F9
oder:
ist der code ins richtige tabellenblatt eingefügt?
sonst hab ich keine idee mehr.. :-(
ransi
Bild

Betrifft: AW: beispieldatei
von: Horst
Geschrieben am: 19.02.2005 13:05:46
Hallo Ransi,
find ich toll, dass sich die "VBA-Gemeinde" so um einen Anfänger bemüht!
Doch nun zur Sache: Leider funktioniert es diesmal wieder nicht. Was kann ich falsch gemacht haben ?
Ich habe einfach den alten Code durch den neuen von Dir ersetzt, in Zelle A1 die Formel ' = A2 ' eingegeben um das automatische Füllen der Zelle zu simulieren, da ich z.Zt. nicht online über DDE verbunden bin.
Dann habe ich in Zelle A2 manuell die Zahl 1 eingegeben.
Ich habe die Zellen testweise sowohl als numerische als auch als Text Feld definiert.
In beiden Fällen tut sich in Zelle B1 nichts.
Gibt es dafür evtl. auch eine Erklärung ?
Gruß,
Horst
Bild

Betrifft: AW: noch eine beispieldatei
von: ransi
Geschrieben am: 19.02.2005 13:12:00
hallo horst
ich weiss nicht was da jetzt klemmt.
bei mir funzt es.
https://www.herber.de/bbs/user/18332.xls
ransi
Bild

Betrifft: AW: beispieldatei
von: Horst
Geschrieben am: 19.02.2005 13:26:22
Hurra ! Es klappt.
Ransi, vielen Dank für Deine Hilfe. Das war großartig, wie Du Einsatz gezeigt hast.
Ich wünschte, ich könnte mich mal auf einem anderen Gebiet bei Dir revanchieren.
Jedenfalls werde ich mir Deinen Namen merken. Vielleicht kann man so gelegentlich (nicht ohne Hintergedanken für beide Seiten - haha) in Kontakt treten.
Schönes Wochenende und Gruß,
Horst
Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: Tinu
Geschrieben am: 19.02.2005 12:04:03
Hallo Horst,
vermutlich hast du irgendwo einen Fehler drin. Ich habe den Code kopiert und eingefügt und es läuft. Wenn es denn mal läuft solltest du noch eine Zeile einfügen:
If Target.Value <> 1 Then Range("b1") = "nicht wahr"
Sonst bleibt die Zelle B1 auf "test" wenn sie einmal gesetzt wurde.
Gruss
Tinu
Bild

Betrifft: AW: Funktion zum Ändern einer anderen Zelle.
von: Horst
Geschrieben am: 19.02.2005 12:49:48
Hallo Tinu,
das ist ein guter Vorschlag. Mir war auch sofort aufgefallen, dass man den Wert in Zelle B2 sonst ständig manuell löschen müsste. Vielen Dank für den Tipp. Als absoluter VBA Anfänger hätte ich dafür auch keine Lösung gewusst.
Wie Du meiner Antwort an Ransi entnehmen kannst, ufert mein Problem aber aus. Ich wusste nicht, dass es so wichtig ist, den Fall so genau zu beschreiben. Hab' so wieder was dazugelernt.
Danke für Deinen Beitrag.
Gruß,
Horst
Bild

Betrifft: freut mich wenn ich helfen konnte o.T.
von: ransi
Geschrieben am: 19.02.2005 13:29:11

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Funktion zum Ändern einer anderen Zelle."