Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
VBA Formel in Abhängigkeit von anderem Wert
anderem
Hallo,
ich suche nach der entsprechenden VBA-Formel für die Berechnung:
=WENN(M385="Herr";"geehrter";"geehrte")
ListBox1 eines Userforms enthält den Wert "Frau" oder "Herr". Dieser Wert wird in Spalte M eingetragen.
Die oben stehende Formel soll gelöscht und stattdessen in den VBA-Code des Userforms eingetragen werden. Ich kriege das nicht hin.
Danke für Eur Hilfe!
AW: VBA Formel in Abhängigkeit von anderem Wert
21.04.2010 14:38:27
anderem
Hallo,
so wie ich es verstanden habe müsste es so gehen.
If ListBox1.ListIndex > -1 Then
With Sheets("Tabelle1") 'Name der Tabelle anpassen
If .Range("M385") = ListBox1 Then
.Range("N385") = "geehrter" 'Ergebnis Zelle anpassen
Else
.Range("N385") = "geehrte"  'Ergebnis Zelle anpassen
End If
End With
End If
Gruß Tino
AW: VBA Formel in Abhängigkeit von anderem Wert
21.04.2010 14:53:55
anderem
Hallo,
ich glaube ich habe mich etwas holprig ausgedrückt.
Die Spalte M soll mit dem Wert der Listbox1 gefüllt werden. Die Zeile ist variabel und wird durch
Dim z As Integer
z = Range("A65536").End(xlUp).Row + 1
bestimmt.
Wenn also in Listbox "Herr" steht, soll in Spalte M der gleichen zeile "geehrter", wenn "Frau" dort steht dann in Spalte M "geehrte" eingetragen werden.
Danke!
Anzeige
AW: VBA Formel in Abhängigkeit von anderem Wert
21.04.2010 15:18:42
anderem
Hallo,
versuchen wir es nochmal
Dim MeAr()
Dim nCount&, MaxRow&
Dim sInhalt$


With Sheets("Tabelle1") 'Tabelle anpassen 
    'Tabellenbereich wo Herr oder Frau steht 
    MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    If MaxRow > 1 Then 'ohne Überschrift 
        
        If MaxRow = 2 Then
            MeAr = .Range("A2", .Cells(MaxRow, 1)).Resize(, 2).Value2
            Redim Preserve MeAr(1 To Ubound(MeAr), 1 To 1)
        Else
            MeAr = .Range("A2", .Cells(MaxRow, 1)).Value2
        End If
        
            For nCount = 1 To Ubound(MeAr)
                sInhalt = MeAr(nCount, 1)
                MeAr(nCount, 1) = Empty
                If sInhalt = "Herr" Then
                    MeAr(nCount, 1) = "geehrter"
                Else
                    MeAr(nCount, 1) = "geehrte"
                End If
            Next nCount
            'Ausgabebereich hier ab M2 
            .Range("M2").Resize(Ubound(MeAr)) = MeAr
     
     End If
End With
Ergebnis sieht danach so aus.
 ABCDEFGHIJKLM
2Herr           geehrter
3Frau           geehrte
4Herr           geehrter
5Frau           geehrte
6Herr           geehrter
7Frau           geehrte
8Herr           geehrter
9Frau           geehrte
10Herr           geehrter
11Frau           geehrte
12Herr           geehrter
13Frau           geehrte
14Herr           geehrter
15Frau           geehrte
16Herr           geehrter

Gruß Tino
Anzeige
besser so, sollte es leere Zellen geben...
21.04.2010 15:23:39
Tino
Hallo,
Dim MeAr()
Dim nCount&, MaxRow&
Dim sInhalt$


With Sheets("Tabelle1") 'Tabelle anpassen 
    'Tabellenbereich wo Herr oder Frau steht 
    MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    If MaxRow > 1 Then 'ohne Überschrift 
        
        If MaxRow = 2 Then
            MeAr = .Range("A2", .Cells(MaxRow, 1)).Resize(, 2).Value2
            Redim Preserve MeAr(1 To Ubound(MeAr), 1 To 1)
        Else
            MeAr = .Range("A2", .Cells(MaxRow, 1)).Value2
        End If
        
            For nCount = 1 To Ubound(MeAr)
                sInhalt = MeAr(nCount, 1)
                MeAr(nCount, 1) = Empty
                If sInhalt = "Herr" Then
                    MeAr(nCount, 1) = "geehrter"
                ElseIf sInhalt = "Frau" Then
                    MeAr(nCount, 1) = "geehrte"
                End If
            Next nCount
            'Ausgabebereich hier ab M2 
            .Range("M2").Resize(Ubound(MeAr)) = MeAr
     
     End If
End With
Gruß Tino
Anzeige
AW: besser so, sollte es leere Zellen geben...
21.04.2010 15:49:14
onkelbobby
Hm,
wenn ich das richtiv verstehe wird die ganze Tabelle hier immer wieder neu berechnet.
Da die Datensätze recht umfangreich sein können, hatte ich mir das anders vorgestellt.
Zur Veranschaulichung noch mal der bisherige Code:
Private Sub CommandButton1_Click()
Dim z As Integer
z = Range("A65536").End(xlUp).Row + 1
Cells(z, 1) = TextBox1
Cells(z, 2) = TextBox2
Cells(z, 4) = TextBox3
Cells(z, 5) = TextBox4
Cells(z, 6) = TextBox5
Cells(z, 13) = ListBox1
Cells(z, 29) = Month(CDate(TextBox10))
Cells(z, 30) = Day(CDate(TextBox10))
...
Also: Durch das Userform trage ich Daten in die Tabelle ein. In Spalte 13 der Eintrag der Listbox entweder "Frau" oder "Herr". Jetzt möchte ich in Spalte 31 abhängig von der Listbox1 (= Spalte 13) den Eintrag "geehrte" oder "geehrter". Und zwar immer nur die Berechnung für die aktuelle Zeile.
Also irgendwie so:
Cells(z, 31)= .... Hier dann die Formel (also so ähnlich wie die Berechnung von Monat und Tag in Spalte 29 und 30).
Geht das?
Danke
Anzeige
AW: besser so, sollte es leere Zellen geben...
21.04.2010 16:06:15
Tino
Hallo,
verstehe zwar nicht, einmal in Spalte M nun in Spalte 31.
Egal, müsste gehen.
If ListBox1.ListIndex > -1 Then
Cells(z, 31) = IIf(ListBox1 = "Herr", "geehrter", "geehrte")
Else
Cells(z, 31) = Empty
End If
Gruß Tino
AW: besser so, sollte es leere Zellen geben...
21.04.2010 16:19:42
onkelbobby
Thats it.
Vielen Dank!
Ich sagte ja ich hatte mich anfangs wohl ein bisschen holprig ausgedrückt. Spalte M = Spalte 13 (dort steht Herr oder Frau). Spalte 31 dann "geehrte" oder "geehrter"
Danke!

337 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige