Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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
Inhaltsverzeichnis

variabler Einstieg in Schleife

variabler Einstieg in Schleife
16.02.2022 14:34:58
Thomas
Hallo Excelfreunde,
ich habe mir ein Makro zusammengeschustert das eine Matrix in eine Zeile ausgeschrieben ( ausgerollt ) wird. Soweit funktioniert dies schon fast wie es soll.
Derzeit beginnt dieses Makro aber immer im Markierten Bereich oben links. Im Beispiel wäre dies mit der Zelle a1. ( Wenn man den Bereich A1: G9 markiert )
Nun möchte ich gern noch eine Inputbox haben
Application.InputBox("Mit welcher Zeile wollen sie beginnen?", Type:=8).
Wenn man dann Beispielsweise die Zeile 2 eingibt soll das Makro mit der Zelle a2 beginnen. Wenn dann das Macro in der Zeile 9 ( in diesem Beispiel ) angekommen ist, sollen die nächsten Durchläufe aber wieder von oben links beginnen.
Kann mir da jemand helfen? Bis hier habe ich es so gut wie allein geschafft, aber das bekomme ich einfach nicht gebacken.
Anbei das Makro

Private Sub CommandButton1_Click()
Dim s As Long
Dim z As Long
's = InputBox("Bitte gib die 1. Spaltennummer zur Ausgabe ein ")
'z = InputBox("Bitte gib die 1. zeilennummer zur Ausgabe ein ( vieleicht gleich die eins )")
'z = 20 'Startzeile festlegen
's = 1
Dim x As Range
Set x = Application.InputBox("Markiere die erste Zelle der Ausgabe", Type:=8)
x.Select
s = ActiveCell.Column
z = ActiveCell.Row
Dim c As Range
Set c = Application.InputBox("Bitte wählen die Matrix aus", Type:=8)
c.Select
'MsgBox c.Address
'Do While True
Dim f As Long
Do While f 
und die Beispieldatei.
https://www.herber.de/bbs/user/151170.xlsm
Kann mir dabei jemand von euch helfen?
mfg thomas
Absenden Editieren

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: variabler Einstieg in Schleife
16.02.2022 16:43:32
Zwenn
Hallo Thomas,
wozu auch immer das gut sein soll. Ich habe die beiden Variablen sz für Startzeile und mz für die erste Zeile der gewählten Matrix eingeführt. Für sz wird ein Wert eingegeben, der die Zeile innerhalb der Matrix meint. Ist also eine Matrix in den Zeilen 7 bis 9 markiert und für sz wird 2 gewählt, erfolgt die Ausgabe ab Zeile 6.

Private Sub CommandButton1_Click()
Dim s As Long
Dim z As Long
Dim x As Range
Dim c As Range
Dim f As Long
Dim sz As Long
Dim mz As Long
Set x = Application.InputBox("Markiere die erste Zelle der Ausgabe", Type:=8)
s = x.Column
z = x.Row
Set c = Application.InputBox("Bitte wählen die Matrix aus", Type:=8)
c.Select
mz = c.Row
sz = Application.InputBox("Startzeile in der Matrix", Type:=1)
Do While f = mz + sz - 1 Then
Cells(z, s) = c
s = s + 1
End If
End If
Next
f = f + 1
Loop
End Sub
Viele Grüße,
Zwenn
Anzeige
AW: variabler Einstieg in Schleife
16.02.2022 18:44:06
Thomas
Hallo Zwenn,
hab rechtvielen dank für deine Unterstützung.
Das ganze wird so eine Art rollierender Schichtplan. Jede Zeile ist ist sozusagen ein Mitarbeiter.
Dein Vorschlag funktioniert noch nicht so richtig. Das Makro Beginnt korrekt mit der zweiten Zeile das funktioniert super und ist auch richtig.
Nur das Makro muss immer wenn es, in diesem Beispiel bei end9 angekommen ist, ganz oben links in den markierten Bereich weitermachen. Am Anfang des markierten Bereichs. Ab den zweiten durchlauf spielt sz sozusagen keine Rolle mehr.
https://www.herber.de/bbs/user/151180.xlsm
kannst du nochmal schauen?
Ich habe dies mal versucht im Beispiel zu beschreiben.
Anzeige
AW: variabler Einstieg in Schleife
16.02.2022 18:47:28
Thomas
Hallo Zwenn,
ich war so in Gedanken das ich das Schlusswort vergessen habe, sorry.
Mit vielen grüßen Thomas
AW: variabler Einstieg in Schleife
16.02.2022 22:23:57
Yal
Hallo Thomas,
ich habe einen Versuch aufgestellt.
Es wird nur noch die erste Ausgabe-Zelle und die Zeilen der Matrix ausgewählt (man kann z.B. Nur B5:B6 auswählen. Daraus wird A5:G6 gemacht)

Private Sub CommandButton1_Click()
Dim X As Range
Dim C As Range
Dim i As Long
Dim Zähler As Long
Dim Z, S
'AusgabePunkt als Zelle
Set X = Application.InputBox("Markiere die erste Zelle der Ausgabe", Type:=8)
'Auswahl der Quelle.
Set C = Application.InputBox("Bitte wählen die Matrix aus (Quelle)", Type:=8)
Set C = Intersect(Range("A1:G10"), C.EntireRow)
For i = X.Column To Range("A315").Column
Z = Int(Zähler / C.Columns.Count) + 1
S = Zähler Mod C.Columns.Count + 1
Cells(X.Row, i) = C.Cells(Z, S)
Zähler = (Zähler + 1) Mod (C.Columns.Count * C.Rows.Count)
Next
End Sub
VG
Yal
Anzeige
AW: variabler Einstieg in Schleife
17.02.2022 07:46:21
Thomas
Hallo Yal,
hab rechtvielen dank das du dir zu so später Stunde noch mit meinem Problem beschäftigt hast.
Auf jeden Fall sieht dies erst mal ein wenig aufgeräumter aus als mein versuch.
Allerdings wird immer nur der erste wert der Markierten Matrix ausgegeben, Wie es für mich aussieht funktioniert die Schleife noch nicht so richtig.
Kannst du dir dies nochmal anschauen? Ich finde einfach nicht woran es liegen könnte.
In den Zeilen 16 bis 24 habe ich mal mein endgültiges " Wunschergebnis" geschrieben.
https://www.herber.de/bbs/user/151186.xlsm
mfg thomas
Kannst du dir dies nochmal anschauen? Ich finde einfach nicht woran es liegen könnte.
mfg thomas
Anzeige
AW: variabler Einstieg in Schleife
17.02.2022 07:46:56
Thomas
Hallo Yal,
hab rechtvielen dank das du dir zu so später Stunde noch mit meinem Problem beschäftigt hast.
Auf jeden Fall sieht dies erst mal ein wenig aufgeräumter aus als mein versuch.
Allerdings wird immer nur der erste wert der Markierten Matrix ausgegeben, Wie es für mich aussieht funktioniert die Schleife noch nicht so richtig.
Kannst du dir dies nochmal anschauen? Ich finde einfach nicht woran es liegen könnte.
In den Zeilen 16 bis 24 habe ich mal mein endgültiges " Wunschergebnis" geschrieben.
https://www.herber.de/bbs/user/151186.xlsm
mfg thomas
Kannst du dir dies nochmal anschauen? Ich finde einfach nicht woran es liegen könnte.
mfg thomas
Anzeige
AW: variabler Einstieg in Schleife
17.02.2022 12:56:09
Yal
Hallo Thomas,
Das Ende der Schleife war bisher auf die Spalte von "A315" gerichtet. Und was ist die Spalte von "A315"? eben nicht die 315te Spalte, sondern die Spalte "A", also die erste.
Du hast, denke ich, sehr wenig Aufwand reingesteckt, um zu versuchen zu verstehen, was passiert oder nicht passiert. Mit dieser Einstellung wird sich aus "VBA bescheiden" nicht viel ändern.
Ersetzt die Bedingungen der For-Schleife wie folgt:

For i = X.Column To Range("LC1").Column
Dann sollte es passen.
VG
Yal
jetzt passt es
17.02.2022 14:38:04
Thomas
Hallo Yal,
jetzt passt es. Perfekt.
Hab vielen lieben dank für deine Hilfe.
mfg Thomas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige