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

Wenn in Spalte rechts von meiner Position ....

Wenn in Spalte rechts von meiner Position ....
24.05.2006 13:01:37
meiner
Hallo Zusammen,
ich habe einen laufenden VBA Code, bei dem ich letztendlich irgendeine Zelle markiert habe, nachdem der Code gelaufen ist (z. B. C1 oder F5)
Ich möchte diesen nun erweitern und anschließend noch folgendes einbauen:
Wenn rechts von mir leer ist, mache nichts (auch leer), wenn in der Zelle rechts von mir eine der Zahlen von 40 bis 99 stehen, schreibe in die Zelle, in der ich bin eine 19, wenn rechts von mir eine der Zahlen 00 bis 39 stehen, dann in die Zelle, in der ich mich befinde bitte eine 20 (=Jahrhundert).
Der Code sollte so lange laufen, bis rechts von mir keine Zahlen mehr stehen.
Wer kann mir helfen?
Danke im vorause - Erwin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn in Spalte rechts von meiner Position ....
24.05.2006 16:48:08
meiner
Hallo Erwin,
die rechte Nachbarzelle der aktiven Zelle kannst du folgendermaßen prüfen:

Sub Test()
If Not IsEmpty(ActiveCell.Offset(0, 1)) Then
Select Case ActiveCell.Offset(0, 1).Value
'    Select Case Val(ActiveCell.Offset(0, 1).Value) ' Falls 00 bis 99 als Text in Nachbarzelle stehen
Case 0 To 39
ActiveCell.Value = 20
Case 40 To 99
ActiveCell.Value = 19
Case Else
' Do nothing
End Select
End If
End Sub

Nicht ganz verstandne habe ich diesen Satz:
"Der Code sollte so lange laufen, bis rechts von mir keine Zahlen mehr stehen."
Heißt das, dass mehrere Zellen rechts von der aktiven Zelle überprüft werden sollen, bis nichts mehr kommt?
Das könnte man in etwa so machen:

Sub Test()
I = 1
Do Until ActiveCell.Column + I = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count
If Not IsEmpty(ActiveCell.Offset(0, I)) Then
Select Case ActiveCell.Offset(0, I).Value
'      Select Case Val(ActiveCell.Offset(0, I).Value) ' Falls 00 bis 99 als Text in Nachbarzelle stehen
Case 0 To 39
ActiveCell.Value = 20
Case 40 To 99
ActiveCell.Value = 19
Case Else
' Do nothing
End Select
End If
I = I + 1
Loop
End Sub

Gruß
Franz
Anzeige
AW: Wenn in Spalte rechts von meiner Position ....
24.05.2006 17:02:14
meiner
Hallo Franz,
der 1. Code ist genau der, den ich brauche - super.
Jetzt müsste der nur noch so angepasst werden, dass er nicht nur die erste Zelle abarbeitet sondern weiterläuft.
So war das auch gemeint, als ich schrieb, ... bis nichts mehr kommt...
(wenn ich in A1 stehe prüft er jetzt nur B1; er soll aber auch B2, B3, ... prüfen, ob dort ein Wert drin steht - und dann auch abarbeiten bis in Spalte B nichts mehr kommt).
Vielleicht kann man das noch einbauen?
Danke - Erwin
AW: Wenn in Spalte rechts von meiner Position ....
24.05.2006 18:08:44
meiner
Hallo Erwin,
ohne jetzt deinen restlichen Code zu kennen könnte ich folgendes vorschlagen. Auch wenn er die von mir nicht sehr geliebten Select-Anweisungen enthält.

Sub Test()
Do
If Not IsEmpty(ActiveCell.Offset(0, 1)) Then
Select Case ActiveCell.Offset(0, 1).Value
'      Select Case Val(ActiveCell.Offset(0, 1).Value) ' Falls 00 bis 99 als Text in Nachbarzelle stehen
Case 0 To 39
ActiveCell.Value = 20
Case 40 To 99
ActiveCell.Value = 19
Case Else
' Do nothing
End Select
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Row = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
End Sub 

Gruß
Franz
Anzeige
AW: Wenn in Spalte rechts von meiner Position ....
24.05.2006 21:44:24
meiner
Hallo Franz,
super - herzlichen Dank - so klappts wunderbar
Grüße - Erwin

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige