Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
244to248
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
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

KW in Ps umrechnen oder umgekehrt

KW in Ps umrechnen oder umgekehrt
18.04.2003 17:43:12
Werner
Hallo!
Ich gebe in die Zelle A3 die PS ein oder in die Zelle B3 die KW.
Es soll dann je nach Eingabe in der anderen Zelle der berechnete Wert stehen. Dazu hab ich folgendes Makro gemacht. Leider funktioniert es nicht - es produziert einen Zirkelbezug, da es in beide Zellen (A3 und B3) die Formel einträgt, trotz meiner 2 IF-Bedingungen.

Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$3" And Target.Address <> "$B$3" Then Exit Sub
If Target.Address = "$A$3" Then Call PS
If Target.Address = "$B$3" Then Call KW
End Sub

Sub PS()
Range("B3").FormulaR1C1 = "=RC[-1]/1.36"
End Sub

Sub KW()
Range("A3").FormulaR1C1 = "=RC[+1]*1.36"
End Sub

Kennt jemand eine Lösung für mein Problem.

Besten Dank - Werner


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: KW in Ps umrechnen oder umgekehrt
18.04.2003 17:49:29
Andreas S

Hallo,

versuch's mal so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Set Zelle = Target
If Target.Address = "$A$3" Or Target.Address = "$B$3" Then
Application.EnableEvents = False
If Zelle.Address = "$A$3" Then
ActiveSheet.Range("B3").FormulaR1C1 = "=RC[-1]/1.36"
End If
If Zelle.Address = "$B$3" Then
ActiveSheet.Range("A3").FormulaR1C1 = "=RC[+1]*1.36"
End If
End If
Application.EnableEvents = True
End Sub


Gruss

Andreas

Korrektur
18.04.2003 17:54:24
Andreas S

Sorry, hab was vergessen. So geht's:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Set Zelle = Target
If Target.Address = "$A$3" Or Target.Address = "$B$3" Then
Application.EnableEvents = False
If Zelle.Address = "$A$3" Then
ActiveSheet.Range("B3").Value = ActiveSheet.Range("A3") / 1.36
End If
If Zelle.Address = "$B$3" Then
ActiveSheet.Range("A3").Value = ActiveSheet.Range("B3") * 1.36
End If
End If
Application.EnableEvents = True
End Sub

Anzeige
Re: KW in Ps umrechnen oder umgekehrt
18.04.2003 17:54:47
Ramses

Hallo Werner,

das kann nicht gehen :-)
Wenn das Change-Ereignis in A3 ausgelöst wird, wird die Formel in B3 eingetragen, das wiederum ein Change-Ereignis auslöst :-))
... und schon geht es rund in Excel.

Du musst EXCEL mitteilen, dass es jetzt aufhören muss.
Setze dazu eine Public Variable die mit Wahr oder Falsch gefüllt wird. Dann wird diese Variable beim Eintritt eines Change-Ereignises geprüft. Wenn Sie WAHR ist, also die Berechnung, oder der Formeleintrag bereits durchgeführt wurde, wird das weitere Makro abgebrochen.



Option Explicit

Public CalcDone As Boolean
Sub Worksheet_Change(ByVal Target As Range)
If CalcDone = True Then
    CalcDone = False
    Exit Sub
End If
If Target.Address <> "$A$3" And Target.Address <> "$B$3" Then Exit Sub
If Target.Address = "$A$3" Then Call PS
If Target.Address = "$B$3" Then Call KW
End Sub

Sub PS()
CalcDone = True
Range("B3").FormulaR1C1 = "=RC[-1]/1.36"
End Sub

Sub KW()
CalcDone = True
Range("A3").FormulaR1C1 = "=RC[+1]*1.36"
End Sub 

     Code eingefügt mit Syntaxhighlighter 1.16

Gruss Rainer


Anzeige
Re: KW in Ps umrechnen oder umgekehrt
18.04.2003 17:59:03
Werner

Dem Andreas recht herzlichen Dank! ! !
Klappt super !
Danke

Re: Korrektur
18.04.2003 17:59:42
Ramses

Hallo Andreas,

EnableEvents ist auch eine elegante Variante:-)

Aber warum der Umweg über

Dim Zelle as Range
Set Zelle = Target

???

Target.Address bringt das gleiche Ergebnis ;-)

Gruss Rainer

Re: KW in Ps umrechnen oder umgekehrt
18.04.2003 18:00:32
@dd

Hi, oder ganz banal in irgend eine Zelle den Bezugswert , zB, in A1 schreibst 1,36 ( einfach als Integer/ Zahlenwert )

und in B2 di Formel : =A2/$A$1 (also A2 geteilt durch den Wert nur aus Zelle A1).
Egal welchen Wert du jetzt in A2 eingibst , der wird in B2 durch den Wert aus Zelle A1, also 1,36 geteilt und angezeigt.

Die formel kannst dann so oft du willst nach unten weiterkopieren, und immer in A.. eingeben , dann wird daneben in B... der Wert entsprechend angezeigt.

easy.

Gruss

Anzeige
Re: KW in Ps umrechnen oder umgekehrt
18.04.2003 19:19:12
andre

hallo werner,
eine alternative wäre noch, bei eintrag nicht die formel zu nehmen, sondern das ergebnis.
gruss andre

Re: Korrektur
18.04.2003 21:10:50
Andreas S

Hallo Ramses,

für diesen Fall hast du voöllig recht, aber ich hatte für das Beispiel eine eigene Anwendung kopiert und "zurechtgestutzt". Und die war einiges aufwendiger.

Gruss
Andreas

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige