Anzeige
Archiv - Navigation
528to532
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
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

If then berechnung

If then berechnung
06.12.2004 17:39:47
Hassan
Hallo,
vielleicht kann mir jemand helfen, bin noch Anfänger, was die Makroprogrammierung angeht. Ich würde gerne ein makro schreiben das folgendes Berechnung vornehmen soll:
In Abhängigkeit von dem Wert in der linken Spalte, soll in der rechten Spalte ein neuer Wert berechnet werden.
Dies geht mit if, then ganz gut, mein problem ist aber, dass es sich a) um mehrere zellen handelt und b) mehrere werte verglichen werden sollen.
z.B: soll bei werten kleiner 10 , "linke zelle *1"
bei werten kleiner 20, "linke zelle *2"
bei werten kleiner 30, "linke zelle * 3" usw. gerechnet werden.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If then berechnung
Volker
Hallo Hassan,
hier mal als Bsp.:
suchwert = range("D1")
if suchwert&lt10 then
range("E1")= Range("A1")
else if suchwert&lt20 then
range("E1")= 2 * Range("A1")
else if suchwert&lt30 then
range("E1")= 3 * Range("A1")
else if .....
usw.
endif
Du kannst auch die CASE-Anweisung nehmen.
Schau mal in die VBA-Hilfe, da sind immer Beispiele drin.
Gruß
Volker
AW: If then berechnung
06.12.2004 17:55:56
GraFri
Hallo
Nehme statt if ... then
Select case ...
das ist flexiebler.
Mit freundlichen Grüßen, GraFri
Code
06.12.2004 18:06:10
GraFri
Hallo


      
' In die entsprechende Tabelle

Private Sub Worksheet_Change(ByVal target As Excel.Range)
' wird im definierten Bereich ein Wert geändert, wird in
' der nächsten Spalte der Wert geändert
    Dim RaBereich As Range, RaZelle As Range, TMP
'****************************************************
' Wenn in der Spalte C die Werte eingetragen werden
' Bereich der Wirksamkeit
    Set RaBereich = Range("c5:c20000")
    Application.EnableEvents = 
False
    
For Each RaZelle In Range(target.Address)
        
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
            TMP = target.Value
            
Select Case TMP
              
Case Is < 10
                RaZelle.Offset(0, 1) = TMP
              
Case Is < 20
                RaZelle.Offset(0, 1) = TMP * 2
              
Case Is < 30
                RaZelle.Offset(0, 1) = TMP * 3
              
' usw. usw.
            End Select
        
End If
    
Next RaZelle
Mit freundlichen Grüßen, GraFri
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige