Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn mit VBA

Wenn mit VBA
22.01.2004 15:40:57
Stefan
Hallo,
ich habe jetzt schon einge Zeit mit suchen verbracht nru leider ohne das gewünschte Ergebniss. Vielleicht kann mir ejmand helfen oder einen Tip geben welche Stichworte bei der Suche hilfreich sind.
Folgendes Problem:
Ich möchte gerne in einer Tabelle eine kpl. Spalte (also nurdie gefüllten) mit mehreren wenn-dann abfragen durchgehen.
ich habe das ganze mit der wenn-formel versucht bis die meldung kam "formel zu lang" und eine Lösung mit SVERWEIS ist aufGrund der abfragen nicht möglich.
Vielleicht hat jemand einen fertigen code oder so, der im prinzip folgendes macht
alle gefüllten zellen einer spalte durchsuchen und prüfungen vornehmen
1. wenn A1 = xxx usw
.
.
.
30
vielen dank schon mal für eure hilfe
gruß
stefan

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn mit VBA
22.01.2004 16:11:54
Dirk
Hallo.
Das ist sehr allgemein.
Hast Du noch mehr Details? Ich weiß nicht so recht, was genau Du machen willst.
Cheers
AW: Wenn mit VBA
22.01.2004 16:23:18
Stefan
sorry für die schlechte beschreibung
also ich will folgendes tun:
in spalte A sind zahlen-werte, nun soll das makro alle zellen der spalte durchsuchen und wenn-dann abfragen für jede zelle machen.
die anzahl der wenn dann abfragen liegt bei 27 stück. der svverweis ist da leider nicht von nutzen für mich,
also wie folgt:
wenn a1 = X dann schreibe X-2 in die zelle B2 sonst
wenn a1 = Y dann schreibe 352 in die zelle B2 usw
wenn eine bedingung erfüllt ist, dann soll die nächste zelle geprüft werden.

kann man das so ungefähr verstehen ???
Anzeige
AW: Wenn mit VBA
22.01.2004 16:36:59
Dirk
So, noch ein Anfang. Ich hab noch ein bissel Zeit. ;-)

Sub vergleich()
For i = 1 To Cells(65535, 1).End(xlUp).Row
Select Case Cells(i, 1)
Case "x"
Cells(2, 2).Value = "x - 2"
Case "y"
Cells(3, 2).Value = "3512"
End Select
Next i
End Sub

Mit der Case-Anweisung prüfst Du für jede Zelle Die Bedingung. Wenn Du ganz genau alles nennst, dann könnte ich Dir das schreiben. Wsa macht der o.g. Code? Die "for-Zeile" ist die Schleife, mit der nach und nach alle Zeilen durchsucht werden. Dann wird mit den "Case-zeilen" die Bedingung geprüft, wenn erfüllt, dass was drunter steht ausgeführt. Also: Steht in "A1" (das wäre 'cells(i,1)') der Wert "x" wird in "B2" ('cells(2,2)') der Wert "X-2" eingetragen. Und das für jede Zeile. Du musst halt nur genügend "Case-Anweisungen schreiben". Außerdem müsste die Zielzelle "B2" wahrscheinlich variabel gestaltet werden.
Cheers
Anzeige
AW: Wenn mit VBA
22.01.2004 17:05:15
stefan
hi dirk,
genau das ist was ich gesucht habe. tausend dank. wie du weisst ist es ja immer so, das wenn man einem den kleinen finger etc.
wie kann ich den dem ganzen noch eine abfrage vorher vorschalten. also die prüfung wie bisher nur, bevor die jetige prüfung mit selct.case etc. eingeleitet wird, soll geprüft werden ob die zelle a5 leer ist, wenn ja, kann die übrige (bisherige prüfung) entfallen.
ich weiss, es ist fast unverschämt....aber was soll ich machen ?? :-)
danke jedenfalls für die bisherige hilfe
AW: Wenn mit VBA
22.01.2004 17:08:12
Dirk
Hallo, brauchst Dich nich mies fühlen, dafür ist das Forum da. *g*
Ich würde jetzt vor die "for-Anweisung" folgende Zeile setzen
If Rnage("A5").value = "" then exit sub
Damit wird die Prozedur verlassen.
Anzeige
Mist
22.01.2004 17:09:17
Dirk
statt "rnage" schreib "range". Mein Fehler
AW: Mist
22.01.2004 17:11:03
stefan
hi dirk,
danke. das mit dem rnage ist schon ok, dafür habe ich jetzt auch kein schlechtes gewissen mehr :-))
vielen dank für dein hilfe und einen schönen abend
gruß
stefan
Danke für die Rückmeldung o.T.
22.01.2004 17:12:13
Dirk
AW: Wenn mit VBA
22.01.2004 16:16:35
PeterW
Hallo Stefan,
mir ist zwar nicht ganz klar was du genau machen willst aber vielleicht hilft die das weiter (statt der MsgBoxen würde jeweils das geschrieben werden müssen, was der Code machen soll):

Sub Bedingung()
Dim rngC As Range
For Each rngC In Range("A1:A" & Range("A65536").End(xlUp).Row)
If Not IsEmpty(rngC) Then
Select Case rngC
Case 1
MsgBox rngC.Address
Case 2
MsgBox rngC.Address
Case 3
MsgBox rngC.Address
End Select
End If
Next
End Sub

Gruß
Peter
Anzeige
AW: Wenn mit VBA
22.01.2004 16:27:24
stefan
hi peter,
danke für deine antwort, ich glaube nicht, dass ir das hilft, was daran liegt, dass ich das makro nicht so ganz verstehe. ich bin da in vba nicht so bewandert. aber ich muesste eigentlich für jede zelle ca. 27 bedingungen abfragen, wie das mit diesem code geht stellt sich mir als laie nicht so dar, sorry.
entschuldige auch meine etwas schlechte ebschriebung, ich habe mal eine neue formuliert, vielleicht ist die ja etwas besser
AW: Wenn mit VBA
22.01.2004 16:31:40
PeterW
Hallo Stefan,
der Code macht nichts besonderes, er prüft alle gefüllten Zellen in Spalte A. Select Case sagt: schau dir an, was in der Zelle steht. Case 1 ist der Teil, der ausgeführt wird, wenn in der Zelle eine 1 steht, Case 2 der Teil bei 2 in der Zelle... Du musst also "nur" die einzelnen zu prüfenden Werte festlegen sowie, was bei welchem Wert getan werden muss.
Vielleicht kannst du eine Beispieltabelle auf den Server stellen, dann kann man das direkt passend schreiben.
Gruß
Peter
Anzeige
AW: Wenn mit VBA
22.01.2004 16:45:39
stefan
hi peter,
leider kann ich die daten nicht auf den server stellen.
also das ganze stellt sich wie folgt dar exemplarisch für die ganze tabelle, die zeile 1
A B c
1. xyz 123456
1. Prüfung= Zelle A1 ungleich "", wenn die Zelle A1 leer ist muss die Zelle b1 nicht mehr geprüft werden, ansonsten prüfe wie folgt (und hier ist das Problem, zum einen werden ersteinmal 6stellige zahlen geprüft, wenn diese nicht abgefragt werden, erfolgt eine Prüfung der ersten 3 bzw. anschliessen der ersten 2 Zahlen von links !), das sieht dann wie folgt aus

2. wenn B1=123555 dann c1=Alpha
...
wenn links(b1,3)=120 dann Beta
...
wenn links(b1,2)=11 dann Gamma

also in der zelle b1 wird der wert erst mit einer 6 stelligen zahl verglichen, wenn keine übereinstimmung, werden die ersten 3 zahlen geprüft und dann die ersten 2.
sorry das ich dir die daten nicht auf dem server zur verfügung stellen kann
danke
gruss
stefan
Anzeige
AW: Wenn mit VBA
22.01.2004 17:06:08
PeterW
Hallo Stefan,
eine genaue Problembeschreibung ist die halbe Lösung. ;-)
"zum einen werden ersteinmal 6stellige zahlen geprüft, wenn diese nicht abgefragt werden"
Worauf werden die Zahlen geprüft und aus welchem Grund können sie möglicherweise nicht abgefragt werden? Gibt es irgendeine Liste mit der verglichen wird und wenn ja, wo genau steht diese Liste?
Gruß
Peter
AW: Wenn mit VBA
26.01.2004 12:06:48
stefan
hi peter,
der aussage kann ich nur beipflichten, aber ich hoffe dennoch auf dein verständis bauen zu können. vielleich war ich mir nicht ganz klar wie ich meine prblematik in einem edv freundlichen kontext rüberbringen kann. aber es hat ja geklappt. vielen dank für deine unterstützung.
gruss
stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige