Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bedingungen für IF aus Tabelle auslesen?

Bedingungen für IF aus Tabelle auslesen?
13.01.2018 13:28:41
Ben
Hallo Zusammen,
ich bin aktuell dabei einige Makros in meinen Arbeitsmappen übersichtlicher zu gestalten um später selber einen besseren Durchblick zu behalten. Bei einer Zeile weiß ich leider nicht wie ich sie umschreiben kann um sie zu kürzen.
Meine Vorstellung ist, dass ich ein extra Sheet anlege und dann alle Bedingungen die in diesem Fall geprüft werden sollen in der Range von A1-A15 stehen können. Um diese dann gegebenenfalls schneller anpassen zu können.
Am Ende verwende ich diese Zeile mehrmals und muss dann alle If suchen um die Werte zu hinterlegen oder zu ändern.
In diesem Fall prüfe ich 4 Kriterien, allerdings habe ich diese Zeile auch mit mehr als 10 Kriterien.
Ist es möglich folgende Zeile kürzer zu gestalten?

If Len(Worksheets("Main").Cells(j, actcol)) >= 1 Or Worksheets("Main").Cells(j, actcol) = "0,5u" Or Worksheets("Main").Cells(j, actcol) = "Pa2" Or Worksheets("Main").Cells(j, actcol) = "0,5ü" Then
Ich hoffe jemand von euch hat eine Idee zu meinem Problem. :)
Vielen Dank und Gruß
Ben

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

Betreff
Datum
Anwender
Anzeige
AW: Bedingungen für IF aus Tabelle auslesen?
13.01.2018 13:52:42
Gerd
Hallo Ben!
Select Case Worksheets("Main").Cells(j, actcol)
Case "0,5u", "Pa2", "0,5ü"
MsgBox "Mach was!"
Case Else
MsgBox "Mach was anderes oder nix!"
End Select

Gruß Gerd
AW: viele Möglichkeiten
13.01.2018 13:53:13
Zählenwenn
es gibt sicher viele Möglichkeiten, z.B.

dim WSF as worksheetfunction : set wsf = allpication.worksheetfunction
'Suchbegriffe in
set such = sheets(2).Range("A1:A20")
with sheets("Main")
if len(.cells(j, actcol) >0 and wsf.countif(.cells(j, actcol), such,0) > 0 then
' hier der code
end if
end with
(ungetestet)
auch wsf.sumproduct(--(such=.cells(j,aactcol))>0
Anzeige
AW: viele Möglichkeiten
13.01.2018 17:24:37
Ben
Hallo,
vielen vielen Dank für die beiden Vorschläge.
Bei Vorschlag Eins fehlen mir Zahlen. Also alle Werte zwischen 1-10.
Ich habe jetzt den zweiten Vorschlag versucht umzusetzen, leider mit wenig Erfolg, da ich eine Fehlermeldung bekomme.
Ich habe mal ein Beispiel angefügt. Vielleicht nur eine Kleinigkeit?
https://www.herber.de/bbs/user/118934.xlsm
AW: viele Möglichkeiten
13.01.2018 17:32:49
Ben
Vielen Dank und Gruß
Ben
AW: getestet
13.01.2018 20:11:07
Zählen
versuche mal mit

Sub testen1()
'wenn Wert gefunden -> gelb
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim i as long, j As long
'Suchbegriffe in Sheets(2).A1:A20
With Sheets("Main")
lr = .cells(rows.count, 1).end(xlup).row 'letzte Zeile
ls = .cells(1, columns.count).end(xltoleft).column 'letzte Spalte
For i = 3 To lr 'Zeilen
for j = 3 to ls 'Spalten
If Len(.Cells(i, j)) > 0 And WSF.CountIf(sheets(2).range("A1:A20"), .Cells(i,j)) > 0  _
Then
.cells(i,j).interior.color = rgb(255,0,0) 'vbyellow
End If
next j
Next i
End With
End Sub

Anzeige
AW: getestet
13.01.2018 22:22:11
Ben
SAU STARK!!! Vielen vielen dank. Funktioniert so wie ich mir das vorgestellt habe.
Viele Grüße und großes Dankeschön
Ben
AW: getestet
14.01.2018 16:30:28
Ben
Ich bin jetzt gerade dran, meine Makros anzupassen und stoße erneut auf ein Problem.
Wie kann ich es umsetzen, dass das Makro Arbeitsmappenübergreifend arbeitet?
Beispiel:
Arbeitsmappe A enthält die Tabelle mit den Kriterien und das Makro.
Arbeitsmappe B enthalt die Tabelle mit den Inhalten.
Ich starte in Mappe A das Makro, diese öffnet Arbeitsmappe B und in dieser läuft dann das Makro ab.
sheets(2).range("A1:A20") kann er in Arbeitsmappe B ja nicht finden.
Muss ich etwas vor sheets(2) schreiben oder ist es so überhaupt möglich?
Vielen Dank und Gruß
Ben
Anzeige
AW: getestet
14.01.2018 16:34:47
Hajo_Zi
Hallo Ben,
ja
Workbooks("Bildschirm.xlsm").

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige