Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
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

Wenn beziehungen in VBA

Wenn beziehungen in VBA
28.09.2008 13:16:18
Rüdiger
Guten Tag,
ich suche eine Möglichkeit womit ich Wenn / Dann Beziehungen in VBA einarbeite. Folgendes Problem habe ich:
Ich habe die Zellen B3 - B23. In denen kann der Wert 1, 1a , 1b, 1c,1d,1e,1f (das gleiche auch noch für 2, 3 und 4)stehen. Wenn z.B. der Wert 1 in eine der Zellen geschrieben wird soll er mir in B37 den Wert 8 schreiben. Bei 1a den Wert in B38 usw.
Kann mir einer helfen, da mir die Wenn beziehungen ein wenig zu lang sind:
Hier mal die formel die ich im Moment im Zell B37 für den Wert 1 nutze:
=WENN(B3=1;8;"")&WENN(B4=1;8;"")&WENN(B5=1;8;"")&WENN(B6=1;8;"")&WENN(B7=1;8;"")&WENN(B8=1;8;"") &WENN(B9=1;8;"")&WENN(B10=1;8;"")&WENN(B11=1;8;"")&WENN(B12=1;8;"")&WENN(B13=1;8;"")&WENN(B14=1;8;"") &WENN(B15=1;8;"")&WENN(B16=1;8;"")&WENN(B17=1;8;"")&WENN(B18=1;8;"")&WENN(B19=1;8;"")&WENN(B20=1;8; "")&WENN(B21=1;8;"")&WENN(B22=1;8;"")&WENN(B23=1;8;"")

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn beziehungen in VBA
28.09.2008 13:57:00
Gerd
Hallo Rüdiger,
deiner bisherigen Formel sollte diese entsprechen.
=WIEDERHOLEN(8;ZÄHLENWENN(B3:B23;1))
Gruß Gerd
AW: Wenn beziehungen in VBA
28.09.2008 18:08:00
Rüdiger
@Gerd L: Die Formel funktioniert optimal. jedoch wenn ich keinen Eintrag habe, kann ich keine Gesamtsumme bilden. geht das wenn ich keinen Eintrag habe also die Ergebnisszelle leer ist dort eine "0" geschrieben wird.
AW: Wenn beziehungen in VBA
28.09.2008 15:55:00
Peter
Hallo Rüdiger,
hattest du an so ein Konstrukt gedacht?
Option Explicit

Public Sub Auswerten()
Dim lZeile  As Long
With Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen !!!
For lZeile = 3 To 23
Select Case .Cells(lZeile, 2).Value
Case "1": .Range("B37").Value = 8
Case "1a": .Range("B38").Value = 8
Case "1b": .Range("B39").Value = 8
Case "1c": .Range("B40").Value = 8
Case "1d": .Range("B41").Value = 8
Case "1e": .Range("B42").Value = 8
Case "1f": .Range("B43").Value = 8
Case "2": .Range("B44").Value = 8
Case "2a": .Range("B45").Value = 8
Case "2b": .Range("B46").Value = 8
Case "2c": .Range("B47").Value = 8
Case "2d": .Range("B48").Value = 8
Case "2e": .Range("B49").Value = 8
Case "2f": .Range("B50").Value = 8
Case "3": .Range("B51").Value = 8
Case "3a": .Range("B52").Value = 8
Case "3b": .Range("B53").Value = 8
Case "3c": .Range("B54").Value = 8
Case "3d": .Range("B55").Value = 8
Case "3e": .Range("B56").Value = 8
Case "3f": .Range("B57").Value = 8
Case "4": .Range("B58").Value = 8
Case "4a": .Range("B59").Value = 8
Case "4b": .Range("B60").Value = 8
Case "4c": .Range("B61").Value = 8
Case "4d": .Range("B62").Value = 8
Case "4e": .Range("B63").Value = 8
Case "4f": .Range("B64").Value = 8
End Select
Next lZeile
End With
End Sub


Gruß Peter

Anzeige
AW: Wenn beziehungen in VBA
28.09.2008 16:29:00
Rüdiger
@Peter Feustel: Die Lösung ist super. Jedoch muss ich das makro manuell ausführen. kann man dieses automatisch ausführen? Und kann man den Bereich noch erweitern( B3:B23)? Ich habe ungefähr das gleiche damit ich die Felder einfärbe. Hier der Code um die Zellenfarbe zu ändern beim Eintrag einer bestimmmten Zahl:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B3:BL33")) Is Nothing Then Exit Sub
With Target
If .Value = "1" Then
.Interior.ColorIndex = 3
ElseIf .Value = "1a" Then
.Interior.ColorIndex = 3
ElseIf .Value = "1b" Then
.Interior.ColorIndex = 3
ElseIf .Value = "1c" Then
.Interior.ColorIndex = 3
ElseIf .Value = "1d" Then
.Interior.ColorIndex = 3
ElseIf .Value = "1e" Then
.Interior.ColorIndex = 3
ElseIf .Value = "1f" Then
.Interior.ColorIndex = 3
ElseIf .Value = "2" Then
.Interior.ColorIndex = 6
ElseIf .Value = "2a" Then
.Interior.ColorIndex = 6
ElseIf .Value = "2b" Then
.Interior.ColorIndex = 6
ElseIf .Value = "2c" Then
.Interior.ColorIndex = 6
ElseIf .Value = "2d" Then
.Interior.ColorIndex = 6
ElseIf .Value = "2e" Then
.Interior.ColorIndex = 6
ElseIf .Value = "2f" Then
.Interior.ColorIndex = 6
ElseIf .Value = "3" Then
.Interior.ColorIndex = 4
ElseIf .Value = "3a" Then
.Interior.ColorIndex = 4
ElseIf .Value = "3b" Then
.Interior.ColorIndex = 4
ElseIf .Value = "3c" Then
.Interior.ColorIndex = 4
ElseIf .Value = "3d" Then
.Interior.ColorIndex = 4
ElseIf .Value = "3e" Then
.Interior.ColorIndex = 4
ElseIf .Value = "3f" Then
.Interior.ColorIndex = 4
ElseIf .Value = "4" Then
.Interior.ColorIndex = 33
ElseIf .Value = "4a" Then
.Interior.ColorIndex = 33
ElseIf .Value = "4b" Then
.Interior.ColorIndex = 33
ElseIf .Value = "4c" Then
.Interior.ColorIndex = 33
ElseIf .Value = "4d" Then
.Interior.ColorIndex = 33
ElseIf .Value = "4e" Then
.Interior.ColorIndex = 33
ElseIf .Value = "4f" Then
.Interior.ColorIndex = 33
Else
.Interior.ColorIndex = 2
End If
End With
End Sub


Kann man sowas auch auf Problem umarbeiten? Komme da nicht weiter. Ich habe im Moment ein brett vor dem Kopf und sehe keine Lösung!!!

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige