Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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/IF

Wenn/IF
16.11.2016 15:35:52
NoPa
Hallo,
ich steh vor einem Problem, was in der Theorie simpel erscheint. Aber die Umsetzung hapert
In meiner Tabelle 1 soll in RangeA4 ein Ergebnis eingetragen werden.
Dieses Ergebnis ergibt sich aus Tabelle 2, Spalte A.
In dieser Spalte kann an jeder beliebigen stelle das Suchkriterium "A" und oder "B" stehen. und neben den Suchkriterien steht in der Spalte B ein Wert. z.b. bei "A" 3 und bei "B" 4.
Das Makro soll in Tabelle 2 in Spalte A die Jeweiligen Werte "A" oder "B" suchen und die jeweiligen nebenstehende Werte aus Spalte B, in Tabelle 1 (A4) als Ergebnis eintragen.
Das suchen hat den Hintergrund, dass die in meiner späteren Tabelle immer an einer anderen Stelle stehen können und mal nur "A" oder nur "B" oder keine vorkommen.
Bsp:
Wenn A und B, dann die Summe der beiden in Tabelle 1
Wenn A und B nicht, dann nur Anzahle von A in Tabelle 1
Wenn A nicht und B, dann nur Anzahl von B In Tabelle 1
Wenn A nicht und B nicht, dann "0" als Ergebnis in Tabelle 1
leider kann ich z.z Keine Tabelle hochladen.
Könnt Ihr mir bitte helfen?
Danke
NOPA

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn/IF
16.11.2016 16:43:43
Hajo_Zi
warum nicht Sverweis() der Wert kommt ja in der 2 Tabelle nur einmal vor.

AW: Wenn/IF
16.11.2016 16:49:34
Anton
Hi NoPa,
hier eine Lösung von mir, wenn A & B nicht übereinstimmt dann bleibt Tabelle 1 A4 leer. Habe es gerade nicht hinbekommen, dass "0" drin steht.
Sub ZellenVergleichen()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Tabelle2
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
Select Case .Cells(lngZeile, 1).Value
Case "A", "B"
sumValue = .Cells(lngZeile, 2).Value + sumValue
End Select
Next lngZeile
Tabelle1.Cells(4, 1).Value = sumValue
End With
End Sub
VG Anton
Anzeige
AW: Wenn/IF
17.11.2016 07:24:44
NoPa
Hallo Anton,
vielen danke für die Lösung.
NoPa
AW: Wenn/IF
17.11.2016 07:35:13
NoPa
Hallo Anton,
es klappt super.
ist es dir vielleicht bitte möglich, das Thema mit der "0" zu lösen?
:)
Danke
NoPa
AW: Wenn/IF
17.11.2016 09:48:05
Werner
Hallo,
können denn deine Suchbegriffe A und B in Tabelle2, Spalte A, mehrfach vorkommen oder jeweils nur einmal oder eben nicht?
Wenn die jeweils nur einmal vorkommen können, dann würde es mit einer einfachen Sverweis Formel gehen, wie Hajo schon vorgeschlagen hat.
Gruß Werner
AW: Wenn/IF
17.11.2016 10:54:24
Anton
Hi NoPa,
hier noch mal angepasst. Geht sicherlich auch eleganter:
Sub ZellenVergleichen()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Tabelle2
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
Select Case .Cells(lngZeile, 1).Value
Case "A", "B"
sumValue = .Cells(lngZeile, 2).Value + sumValue
End Select
Next lngZeile
If IsEmpty(Tabelle1.Cells(4, 1).Value) Then
Tabelle1.Cells(4, 1).Value = 0
Else
Tabelle1.Cells(4, 1).Value = sumValue
End If
End With
End Sub
VG Anton
Anzeige
AW: Wenn/IF
18.11.2016 07:43:59
NoPa
Hallo Anton,
ich habe mich nun einige Zeit damit beschäftigt und auf meine Tabelle übertragen. Würde auch prima funktionieren.
Jetzt ist mir leider nur eins aufgefallen:
Mein Suchkriterium ist jetzt nicht beispielhaft das "A" oder "B", sondern ein kleiner Text:
Und in diesem Text ist mein Suchkriterium was „A“ war ein fixer Wert und ein Teil variabel, der sich immer ändern kann/wird.
Bsp.:
M18-10 01 - UF 9xx / 8xx, MD Sa
M20-10 01 - UL 9xx / 8xx, KD FO
der Fixteil (Suchkriterium) ist "M18-10 01" oder „M20-10 01“
Wenn ich nun diese fixe Werte in den Code übertrage,
Case „M18-10-01“, „M20-10 01“
Funktioniert es nicht, weil in der Zelle ja auch noch der andere Text dabei steht.
Somit findet VBA das nicht und bringt mir immer „0“!
Wie kann ich das lösen?
Bei der Funktion „Find“ kann es ja z.B. mit -
Find("M18-10-01", LookIn:=xlValues, lookat:=xlWhole)
gelöst werden.
Wie haut das hier hin?
Ich hofffe ich konnte mein Gedanken zu Papier bringen…..? 
Gruß
NoPa
Anzeige
AW: Wenn/IF
18.11.2016 06:55:00
NoPa
Hallo,
nur einmal.
SVERWEIS würde auch klappen...stimmt.
Grüße
Norbert
AW: Wenn/IF
18.11.2016 09:13:44
Anton
Servus Norbert,
mit Wildcards und ohne Case sollte es klappen:
Sub ZellenVergleichen()
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim sumValue As Long
With Tabelle2
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
If .Cells(lngZeile, 1).Value Like "*M18-10 01*" Or .Cells(lngZeile, 1).Value Like " _
*M20-10 01*" Then
sumValue = .Cells(lngZeile, 2).Value + sumValue
End If
Next lngZeile
If IsEmpty(Tabelle1.Cells(4, 1).Value) Then
Tabelle1.Cells(4, 1).Value = 0
Else
Tabelle1.Cells(4, 1).Value = sumValue
End If
End With
End Sub
VG Anton
Anzeige
AW: Wenn/IF
20.11.2016 01:56:56
Werner
Hallo Norbert,
=SVERWEIS("M18-10 01"&"*";Tabelle2!A:B;2;0)+SVERWEIS("M20-10 01"&"*";Tabelle2!A:B;2;0)
Gruß Werner
AW: Wenn/IF
20.11.2016 02:09:39
Werner
Hallo Norbert,
ich nochmal, hatte noch was vergessen.
=WENNFEHLER(SVERWEIS("M18-10 01"&"*";Tabelle2!A:B;2;0);0)
+WENNFEHLER(SVERWEIS("M20-10 01"&"*";Tabelle2!A:B;2;0);0)
Die zwei Formelteile musst du halt zusammensetzen, die Forumssoftware trennt die so seltsam auf, deshalb hab ich sie in zwei Teilen rein geschrieben.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige