Anzeige
Archiv - Navigation
740to744
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
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn dann über Makro

Wenn dann über Makro
06.03.2006 13:23:55
Stefan
hallo,
in meiner excel-tabelle werden die zeilen täglich nach unten gefüllt. nun möchte ich über ein makro folgende „wenn dann funktion“ durchführen lassen: es sollen alle gefüllten zeilen ausgewählt werden. dann soll z.b. spalte c von oben nach unten geprüft werden. wenn in c2 = 16 dann schreibe in e2 A, wenn in c2 = 24 dann schreibe in e2 C. dies soll dann komplett von oben nach unten durchgeführt werden. die bezüge sehen z.b. wie folgt aus: 16 = A, 23 = C, 50 = X, 20 = G, usw. es soll also die spalte c überprüft werden und je nachdem welche zahl vorhanden ist, soll in spalte e der entsprechende bezug geschrieben werden.
bin für jeden tipp dankbar.
gruß,
stefan

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn dann über Makro
06.03.2006 13:37:51
ede
hallo stefan,
schreib nachstehenden funktion in ein eigenes modul und ruf sie dann in der gewünschten zelle so auf: =MyStefan01(C2)
Natürlich noch erweitern!!!!!

Function MyStefan01(z As Range) As String
Application.Volatile
Select Case z.Value
Case 14
MyStefan01 = "A"
Case 23
MyStefan01 = "C"
Case Else
MyStefan01 = ""
End Select
End Function

gruss
AW: Wenn dann über Makro
06.03.2006 13:47:51
IngGi
Hallo Stefan,
als Makro z.B. so:

Sub Werte_eintragen()
Dim rng As Range
For Each rng In Range("C2:C" & Range("C65536").End(xlUp).Row)
Select Case rng
Case 16
rng.Offset(0, 1) = "A"
Case 20
rng.Offset(0, 1) = "G"
Case 23
rng.Offset(0, 1) = "C"
Case 50
rng.Offset(0, 2) = "X"
Case Else
End Select
Next 'rng
End Sub
Ich würde mir dafür allerdings eine Wertetabelle auf einem separaten Arbeitsblatt anlegen und dann mit SVERWEIS arbeiten. Bei noch nicht belegten Zeilen läßt sich der Eintrag in Spalte E ja ausblenden nach dem Muster =wenn(c2 = ""; ""; sverweis(blabla)).
Gruß Ingolf
Anzeige
AW: Wenn dann über Makro
06.03.2006 14:59:16
Stefan
hallo ingolf und ede,
funktioniert ohne probleme. super!
hab aber leider vergessen zu erwähnen (SORRY), dass aber noch 2 weitere wenn, dann überprüfungen integriert werden sollen:
1.) in spalte c stehen nicht nur zahlen, sondern auch z.b. 1_Oktober 05. wenn dies z.b. in c2 steht, dann soll in d2 Muster geschrieben werden. der von euch genannte makro-text funktioniert anscheinend nur bei zahlen?
2.) wenn z.b. in c2 die zahl mit 761234 BEGINNT, dann soll in d2 OAP geschrieben werden.
vielen dank für eure hilfe im voraus.
gruß,
stefan
AW: Wenn dann über Makro
06.03.2006 15:25:49
IngGi
Hallo Stefan,
ich nehme mal stark an, dass das jetzt nur 2 weitere Beispiele sind, im Prinzip aber auch ein anderes Datum, als der 2. Oktober 2005 in Spalte C stehen kann, bzw. Spalte C auch mit anderen Zahlen als 761234 anfangen kann. Wenn das so ist, müsste man die Daten genau kennen, damit man sich überlegen kann, wo Gemeinsamkeiten sind, an denen man eine Prüfung festmachen kann.
Treffen folgende Annahmen zu? Wenn eine der Zahlen aus deiner ursprünglichen Frage in Spalte C steht, steht immer nur diese Zahl drin, die Zahl steht nicht als Text, sondern als Wert drin und die Zahl ist immer 2stellig. Wenn in Spalte C ein Datum steht, dann ist der Tag immer durch einen Unterstrich vom Monat getrennt, d.h. die zweite oder die dritte Stelle ist ein Unterstrich. Wenn Spalte C z.B. mit 761234 beginnt, dann handelt es sich immer um (mindestens) 6 aufeinanderfolgende Ziffern.
Gruß Ingolf
Anzeige
AW: Wenn dann über Makro
06.03.2006 15:39:57
Stefan
hallo ingolf,
deine aufgeführten annahmen sind korrekt. es kann aber auch ein normales wort in spalte c stehen. am besten führe ich die möglichen zuordnungen mal auf:
16 = A
23 = C
50 = X
20 = G
1_Oktober 05 = Muster
2_Dezember 05 = Telefon
beginnt mit: 761234 = OAP
beginnt mit: 761235 = GAR
Kunde = 50
Ort = Monitor
alles was NACH dem = steht, soll in spalte d (gleiche zeile) geschrieben werden, wenn die bedingung aus spalte c, was also in der auflistung VOR dem = steht, übereinstimmt.
vielen dank im voraus.
Stefan
AW: Wenn dann über Makro
06.03.2006 16:45:16
IngGi
Hallo Stefan,
wenn das eine vollständige Liste ist, sollte es so funktionieren:

Sub Werte_eintragen()
Dim rng As Range
For Each rng In Range("C2:C" & Range("C65536").End(xlUp).Row)
Select Case rng
Case 16
rng.Offset(0, 1) = "A"
Case 20
rng.Offset(0, 1) = "G"
Case 23
rng.Offset(0, 1) = "C"
Case 50
rng.Offset(0, 1) = "X"
Case "1_Oktober 05"
rng.Offset(0, 1) = "Muster"
Case "2_Dezember 05"
rng.Offset(0, 1) = "Telefon"
Case "Kunde"
rng.Offset(0, 1) = 50
Case "Ort"
rng.Offset(0, 1) = "Monitor"
Case Else
If Left(rng, 6) = "761234" Then
rng.Offset(0, 1) = "OAP"
ElseIf Left(rng, 6) = "761235" Then
rng.Offset(0, 1) = "GAR"
End If
End Select
Next 'rng
End Sub
Gruß Ingolf
Anzeige
AW: Wenn dann über Makro
06.03.2006 20:13:00
Stefan
hallo ingolf,
funktioniert super. vielen dank.
gruß,
stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige