Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Kombination Select Case und For Schleife
19.04.2018 02:36:15
Steve
Hallo,
nun hab ich das nächste Problem mit meinem uplan.
Ich möchte mit einer Kombination aus For-Schleife und Select Case ein Ausfüllen nach rechts ab der aktiven Spalte umsetzen. leider macht Excel gar nichts. es kommt auch kein Fehler.
dabei errechne ich die Anzahl der auszufüllenden Spalten aus einem Datum aus einer Listbox abzügl der aktuellen Spalte.
mein Code:
Private Sub CommandButton3_Click()                 'Originalinhalt soll hin
On Error Resume Next
loTage = CDate(Me.TageBox) - CDate(Cells(1, ActiveCell.Column))
With ActiveCell
For i = .Column To loTage
Select Case .Row
Case 9 To 26: .Value = Cells(4, .Column + i).Value
Case 27 To 45: .Value = Cells(5, .Column + i).Value
Case 46 To 62: .Value = Cells(6, .Column + i).Value
Case 63 To 82: .Value = Cells(7, .Column + i).Value
Case Is > 82: .Value = Cells(8, .Column + 1).Value
End Select
Next i
End With
Unload Me
End Sub

Wenn ich die For Schleife entferne, funktioniert das auch für die aktive Zelle.
Hier noch die altbekannte Beispieldatei https://www.herber.de/bbs/user/121130.xlsm
noch ohne die Änderungen aus dem letzten Beitrag
Vielen dank im Vorraus

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kombination Select Case und For Schleife
19.04.2018 10:18:25
MCO
Moin!
for i = .column (z.b. 20) to loTage (3)
heißt von 20 bis 3. und das willst du nicht. Die Schleife ist sofort ausgestiegen.
Im Code der Tabelle hast du diese Zeile noch korrekt stehen: For i = .Column To .Column + loTage
Es muß also heißen

For i = .Column To .Column + loTage
Select Case .Row
Case 9 To 26: .Value = Cells(4, .Column + i).Value
Case 27 To 45: .Value = Cells(5, .Column + i).Value
Case 46 To 62: .Value = Cells(6, .Column + i).Value
Case 63 To 82: .Value = Cells(7, .Column + i).Value
Case Is > 82: .Value = Cells(8, .Column + 1).Value
End Select
Next i
Gruß, MCO
Anzeige
AW: Kombination Select Case und For Schleife
20.04.2018 00:40:36
Steve
Hallo nochmal.
Ja das is mir n kleiner Fehler unterlaufen. Doch leider funktioniert auch das nicht.
Habs mit Zahlen statt der variablen getestet und festgestellt, dass er immer von der aktiven Zelle ausgeht.
Hab es mit
Private Sub CommandButton3_Click()                 'Originalinhalt soll hin
On Error Resume Next
loTage = CDate(Me.TageBox) - CDate(Cells(1, ActiveCell.Column))
With ActiveCell
For i = 0 To loTage
.Column = .Column + i
Select Case .Row
Case 9 To 26: .Value = Cells(4, .Column).Value
Case 27 To 45: .Value = Cells(5, .Column).Value
Case 46 To 62: .Value = Cells(6, .Column).Value
Case 63 To 82: .Value = Cells(7, .Column).Value
Case Is > 82: .Value = Cells(8, .Column).Value
End Select
Next i
End With
Unload Me
End Sub
probiert => geht auch nicht :
Fehlermeldung "falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft
und im Debugger ist .Column markiert
Habe auch versucht die select case Anweisung mit
Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(ActiveCell.Row, ActiveCell.Column +  _
loTage)).Value = _

zu kombinieren auch Fehlanzeige. Die beiden Funktionen scheinen sich nicht zu mögen.
Kann mit einer von Euch einen tipp geben?
Anzeige
AW: Kombination Select Case und For Schleife
20.04.2018 17:28:28
onur
Lass mal das blöde "On Error..." weg, dann bekommst du vielleicht auch eine Fehlermeldung, die weiterhilft,
AW: Kombination Select Case und For Schleife
25.04.2018 09:35:40
Steve
Er macht trotzdem nichts -.-
also nochmal zur genauen Beschreibung was ich möchte.
Wenn sich die "aktive Zelle" im Zeilenbereich zwischen 9 und 26 befindet, soll sie den Wert aus Zelle (4,aktive Spalte) annehmen.
Das soll er dann für aktive Spalte bis aktive Spalte + loTage ausführen.
Ich hoffe das war jetzt verständlich
AW: Kombination Select Case und For Schleife
25.04.2018 09:52:08
Daniel
Hi
wenn du was "nach rechts ausfüllen" willst, müsste der Code aber lauten:
Case 9 to 26: Cells(4, .Column + i).Value = .Value 
mit Hilfe des Resize-Befehls müssest du auch ohne Schleife auskommen, denn damit befüllst du alle Zellen in einem Schritt und die For-Next-Schleife ist nicht notwendig
Case 9 to 26: Cells(4, .Column).Resize(1, loTage) = .Value
Gruß Daniel
Anzeige
AW: Kombination Select Case und For Schleife
25.04.2018 10:42:03
Steve
Okay, habs ausprobiert.
1. ja er füllt das so aus, wie ich möchte, doch
2. er gibt den Wert der aktiven Zelle an die Zelle, aus der er den Wert zum Aufüllen nehmen soll und füllt dann den "falschen" Wert aus
3. Fehler wenn loTage = 0 , wenn also nur der Wert der aktiven Zelle geändert werden soll
AW: Kombination Select Case und For Schleife
25.04.2018 10:48:39
Daniel
HI
zu 3. dann loTage + 1
zu 2. verstehe ich nicht. Bitte genauer erklären was du willst und was der Code stattdessen tatsächlich macht.
Gruß Daniel
AW: Kombination Select Case und For Schleife
25.04.2018 10:53:20
Steve
wie in meiner Antwort von
https://www.herber.de/forum/messages/1621391.html
geschrieben, soll er für den Zeilenbereich 9-26 den Wert aus Zelle (4,aktiveSpalte) in die aktive Zelle schreiben, und dann bis loTage ausfüllen
Anzeige
AW: Kombination Select Case und For Schleife
25.04.2018 11:06:20
Daniel

.Resize(1, LoTage + 1).Value = Cells(4, .Column)

Gruß Daniel
AW: Kombination Select Case und For Schleife
25.04.2018 12:07:59
Steve
Fast Daniel
mit "Ausfüllen" bis loTage meinte ich, dass er dann weiterzählt bis loTage erreicht ist
also Ursprungswert Zelle(4,aktiveSpalte),(4,aktiveSpalte+1,....(4,aktiveSpalte+loTage)
das muss dann bestimmt mit einer For-Schleife gemacht werden.
Sorry dass ich dass so nicht geschrieben habe.
AW: Kombination Select Case und For Schleife
25.04.2018 12:37:28
Daniel
Hi
ich weiß jetzt immer noch nicht genau, was du willst.
was genau soll in der Schleife passieren?
was muss von wo (Quelle) nach wohin (Ziel) übertragen werden?
wie ändern sich Quelle und Ziel mit Fortschritt der Schleife?
Gruß Daniel
Anzeige
AW: Kombination Select Case und For Schleife
25.04.2018 12:49:46
Steve
Also meine aktive Zelle ist z.B. (Zeile10,Spalte15)
also befindet sie sich im Zeilenbereich 9-26 somit soll sie den Wert aus(Zeile4,Spalte15)erhalten,wenn nur das aktuelle Datum ausgewählt ist loTage=0
wenn jetzt mehrere Spalten ausgefüllt werden sollen loTage größer 0, dann soll mit zunehmenden Zähler die Spalte verrückt werden. (also soll dann in (Zeile10,Spalte16) der Wert von (Zeile4,Spalte16) usw.
AW: Kombination Select Case und For Schleife
25.04.2018 12:52:35
Daniel
ActiveCell.Resize(1, LoTage + 1).Value = Cells(4, ActiveCell.Column).Resize(1, LoTage + 1).Value
Gruß Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige