Microsoft Excel

Herbers Excel/VBA-Archiv

Case-Formel?

Betrifft: Case-Formel? von: Rehhirsch
Geschrieben am: 16.09.2004 14:11:43

Kann vielleicht jemand sagen wie ich die Case-Formel in VBA anwenden muss. Hab keine Ahnung wie das geht, kenn das nur noch n bisl aus Pascal...

Es soll im diesen Sinne angewendet werden :
1.Für den Fall dass in der Zelle Amt steht tuhe nichts.
2.Für alle anderen Fälle tue dies.

MfG Rehhirsch

  


Betrifft: AW: Case-Formel? von: nosub
Geschrieben am: 16.09.2004 14:16:33

Select Case a
Case 4
... Anweisung1
Case 10
... Anweisung2
End Select


  


Betrifft: AW: Case-Formel? von: nosub
Geschrieben am: 16.09.2004 14:20:57

oder du machst es über ne IF abfrage

if Zelle <> "AMT" then
tu was du tun musst
end if


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 16.09.2004 14:17:21

Hallo Rehhirsch

Hilft dir das so weiter? Es wird die Zelle A2 abgefragt, ob in dieser Amt steht, wenn nicht, gehts weiter in die If Verzweigung, sonst gehts weiter im Programm. Falls das TUE DAS nur ein Befehl ist, kannst es gleich hinter das then schreiben und das endif weglassen.

if Range("A1").value <> "Amt" then
'TUE DAS
endif
Gruss Katja


  


Betrifft: AW: Case-Formel? von: Rehhirsch
Geschrieben am: 16.09.2004 14:45:04

Also so sieht der Ausschnitt aus der mir gerade Probleme macht :

If Range("A1") <> "AMT" Then Selection.FormulaR1C1 = "=TRIM(IF(RC[4]="""",(IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2])),CONCATENATE(RC[4],"" "",RC[1],"" "",RC[2],"" "",RC[3])))"

Er soll also in A1 nachgucken ob AMT drinsteht, wenn nicht, soll er den nachfolgenden Befehl ausführen. Das Problem jetzt ist, dass er den nachfolgenden Befehl ausführt egal ob AMT drin steht oder nicht...


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 16.09.2004 14:51:28

hmm? komisch, habe deinen Programmteil kopiert, bei mir funktionierts. probiere mal

if Range("A1").value <> "AMT" then

oder

Range("A1").Select
if ActiveCell.Value <> "AMT" then

Gruss Katja


  


Betrifft: AW: Case-Formel? von: Rehhirsch
Geschrieben am: 16.09.2004 15:04:24

Ist es von bedeutung ob nochmehr in der Zeile drin steht? Da steht nämlich nicht nur AMT. Manchmal steht halt AMT AUGSBURG , manchmal AMT BERLIN u.s.w.
Aber das dürfte ja nicht von bedeutung sein oder?


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 16.09.2004 15:17:47

Doch, das ist von Bedeutung. Ist AMT immer zuvorderst, d.h. die ersten 3 Buchstaben des Wortes? Dann gehts mit

Dim AMTVariable As String

AMTVariable = Range("A1").Value
AMTVariable = Mid(AMTVariable, 1, 3)

If Range("A1").Value <> AMTVariable Then Selection.FormulaR1C1 = "=TRIM(IF(RC[4]="""",(IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2])),CONCATENATE(RC[4],"" "",RC[1],"" "",RC[2],"" "",RC[3])))"

Gruss Katja


  


Betrifft: AW: Case-Formel? von: Rehhirsch
Geschrieben am: 16.09.2004 15:26:17

Ja es sind die ersten drei Buchstaben, das AMT selbst steht aber alleine, also wie zum Beispiel "AMT AUGSBURG"


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 16.09.2004 15:29:17

Ok, dann sollte es so klappen. Hast dus mit dem Programmteil, den ich dir geschickt habe, schon versucht?

Gruss Katja


  


Betrifft: AW: Case-Formel? von: Rehhirsch
Geschrieben am: 16.09.2004 15:47:41

Ja aber er macht es trotzdem immer...kann man das Problem nicht auch über eine Case-Formel lösen? Es gibt nämlich noch viele andere Ausnahmen, die er auch alle berücksichtigen müsste...unter anderem auch wenn eine Zahl drin steht oder GmbH und so weiter...


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 16.09.2004 16:17:06

Man müsste alle Ausnahmen aufführen. Wo stehen die Zahlen und wo steht GMBH? Auch immer zuvorderst? Wieviele Stellen haben die Zahlen? Es ist nicht so einfach, einmal nur das GMBH herauszupicken (z.B. von Muster GMBH) und einmal nur AMT (z.B. von AMT Berlin) und einmal nur die Zahl (von z.B. Firma 13). Das weiss ich jetzt auch nicht so aus dem stehgreif, wie man das lösen könnte. Case funktioniert im Prinzip so:


Dim xxx as string

Select Case xxx
Case "3"
'was soll er tun?
Case "GMBH"
'was soll er tun?
Case "AMT"
'was soll er tun?
Case Else
'die Formel
End Select


Gruss Katja


  


Betrifft: AW: Case-Formel? von: Rehhirsch
Geschrieben am: 16.09.2004 17:06:16

Es ist immer unterschiedlich wo diese stehen, es ist so : Ich habe eine Datei von meinem Chef bekommen, in der Kundendaten gespeichert sind, unter anderem auch dren Namen. Diese stehen alle in der Spalte B. Diese stehen dort im Format "Vorname Nachname" und ich soll dies umdrehen, so dass es "Nachname Vorname" ist. Nun ist es aber leider auch so, dass nicht alle Kunden normale Vor- und Nachnamen haben, wie z.B. das AMT BERLIN oder irgendwelche GmbH's oder auch Zahlen. Diese müssen von der Umdrehaktion ausgeschlossen sein. Deswegen brauch ich eine sinnvolle Idee womit ich diese von der Umdrehaktion ausschließen kann...


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 17.09.2004 17:14:00

Hallo Rehhirsch

Sorry, dass ich erst jetzt schreibe. Schicke mir doch deine E-Mail Adresse auf katja.reinprecht@power.one.com.

Gruss Katja


  


Betrifft: AW: Case-Formel? von: Katja
Geschrieben am: 20.09.2004 12:47:30

Sorry,

katja.reinprecht@power-one.com


  


Betrifft: AW: Case-Formel? von: Mac4
Geschrieben am: 16.09.2004 15:42:03

Hi,

so gehts übrigends auch:

Sub test()
If Range("A1") Like "*Amt*" Then
Selection.FormulaR1C1 = "=TRIM(IF(RC[4]="""",(IF(RC[3]="""",RC[2]&"" ""&RC[1],RC[3]&"" ""&RC[1]&"" ""&RC[2])),CONCATENATE(RC[4],"" "",RC[1],"" "",RC[2],"" "",RC[3])))"
End If
End Sub


Marc