Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
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

dynamische Liste

dynamische Liste
05.01.2017 09:08:19
Marcel
Hallo und ein frohes neues Jahr!
Ich stehe vor einem Problem, wo ich mit meinem Kenntnissen leider nicht weiterkomme, da ich VBA so gut wie gar nicht beherrsche. (Kann Programmcodes prinzipiell verstehen, aber kann nicht selbst programmieren)
In Excel Version 2010 habe ich eine Liste mit Einträgen mit eindeutig zugeordneten Nummern (Spalte B).
Der erste, wahrscheinlich leichtere Problemstellung, ist, dass vom Tabellenblatt "Prio-Projekte" per Button oder ähnliches von einer gewünschten (bzw. angegebenen) Zeile die Spalten B bis I in die erste freie Zeile des Tabellenblatts "Erledigt" verschoben werden.
Das größere Problem ist nun aber eine Dynamik: Wenn ein Eintrag aus dem Tabellenblatt "Prio-Projekte" verschoben wird, kann es vorkommen, dass eine leere Reihe entsteht, sodass die verbleibenden Einträge unterhalb der leeren Zeile nach oben rutschen sollen.
Prinzipiell kann ich mir vorstellen, dass so etwas möglich ist, jedoch fehlt mir vollständig der Ansatz.
Hoffentlich ist mein Gedankengang deutlich genug ist, stelle sonst gerne weitere Infos zur Verfügung.
Ich bedanke mich auf jeden Fall schon vorab die sämtliche Mühen!
Grüße
Marcel

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dynamische Liste
05.01.2017 10:24:10
Werner
Hallo Marcel,
wenn ich deine Beschreibung richtig interpretiere, dann sind wohl teilweise weitere Daten ab Spalte J vorhanden und teilweise nicht. Nur dann, wenn ab Spalte J keine Daten mehr folgen (komplette Leerzeile), folgende Zeilen nach oben.
Kannst du mal eine Beispielmappe hochladen mit ein paar Beispieldatensätzen. Das müssen ja keine Originaldaten sein, die Tabellenblätter sollten aber in der Struktur deiner Originaldatei entsprechen.
Gruß Werner
AW: dynamische Liste
05.01.2017 10:35:22
Michael
Hallo!
Hier ein Bsp für Dich: https://www.herber.de/bbs/user/110342.xlsm
Vielleicht kommst Du damit ja schon klar. Ansonsten, wie Werner geschrieben hat, lade doch eine Bsp-Datei Deinerseits hoch.
LG
Michael
Anzeige
AW: dynamische Liste
05.01.2017 11:15:00
Marcel
Hallo,
also um die Frage von Werner zu beantworten: Es gibt keine zusätzlichen Daten ab Spalte J, es würde nur innerhalb des identischen Bereichs etwas eingetragen werden.
Das Beispiel von Michael trifft schon sehr weit auf das zu, was ich suche. Es ist lediglich ein Detail:
Ist es möglich, dass die Spalte A unberührt bleibt und entsprechend alle anderen Daten nach dem Verschieben nach oben rücken?
Die Abfrage nach der ID finde ich sehr gelungen, alternativ wäre evtl. auch die Zeilennummer als mögliche Abfrage möglich.
Ich habe die Grundstruktur der Datei hochgeladen: https://www.herber.de/bbs/user/110345.xlsx
Prinzipiell gibt es noch weitere Tabellenblätter, die spielen bei der gesuchten Funktion aber keine Rolle.
Danke sehr!
Beste Grüße,
Marcel
Anzeige
AW: dynamische Liste
05.01.2017 11:48:17
Werner
Hallo Marcel,
habe den Code von Michal mal angepasst. In der IputBox wird jetzt die Zeilennummer der Zeile abgefragt, die übertragen werden soll.
Daten in Spalte A werden nicht übertragen.
Option Explicit
Sub MoveProjects()
Const QUELLBLATT As String = "Prio-Projekte"
Const ZIELBLATT As String = "Erledigt"
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets(QUELLBLATT)
Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets(ZIELBLATT)
Dim loZeile As Long
With WsQ
loZeile = Application.InputBox("Bitte zu übertragende Zeilennummer auswählen", _
"Projekt übertragen", , , , , , 1)
If loZeile = 0 Then Exit Sub
If Not IsError(loZeile) Then
.Range(.Cells(loZeile, 2), .Cells(loZeile, 9)).Copy _
WsZ.Cells(WsZ.Rows.Count, 1).End(xlUp).Offset(1, 0)
.Range(.Cells(loZeile, 2), .Cells(loZeile, 9)).Delete shift:=xlUp
End If
End With
End Sub
Passt es so?
Gruß Werner
Anzeige
AW: dynamische Liste
05.01.2017 16:07:47
Marcel
Danke sehr, dieser Code funktioniert einwandfrei!
Es tat sich noch eine Frage auf, wo ich jedoch nicht weiß, ob es überhaupt möglich ist:
Ist es möglich, dass sich Zeilen automatisch sortieren und neu nummerieren, sofern man in der Spalte A einen Wert eingibt?
Alternativgedanke von mir wäre: Kann man über eine andere Funktion (anderen Code) eine Zeile an eine Position in der Liste setzen und die ersten 20 Zeilen nummerieren sich in Spalte A neu?
Ich dachte bisher an eine "aktive" Nummerierung mit "=Zeile()-X" in Spalte A, womit man via Drag&Drop Prioritäten recht leicht verschieben könnte.
Grüße,
Marcel
Anzeige
AW: dynamische Liste
05.01.2017 17:46:39
Michael
Hallo!
Ist es möglich, dass sich Zeilen automatisch sortieren und neu nummerieren, sofern man in der Spalte A einen Wert eingibt?
Ja. Meinst Du so: https://www.herber.de/bbs/user/110355.xlsm ?
Code liegt im Modul der Tabelle "Prio-Projekte".
Kommst Du damit hin?
LG
Michael
AW: dynamische Liste
05.01.2017 18:59:52
Werner
Hallo Marcel,
ich habe das etwas anders verstanden als Michael.
In deiner Tabelle habe ich in Spalte A jetzt für die Nummerierung Formeln drin. Über das Makro kannst du jetzt z.B. auswählen, dass Prio 12 nach Prio 2 verschoben wird. Die Nummerierungen passen sich entsprechend an. Könnte natürlich auch sein, dass Michael richtig liegt und ich falsch. Das kannst aber nur du wissen.
https://www.herber.de/bbs/user/110356.xlsm
Gruß Werner
Anzeige
AW: dynamische Liste
06.01.2017 11:05:30
Marcel
Danke euch beiden für die sehr hilfreiche Unterstützung!
Werners Code war näher an dem, was ich versuchte zu beschreiben dran, da nach Möglichkeit keine doppelte Nummerierung vorhanden sein sollte.
Alles klar, Danke für die Rückmeldung, owT
06.01.2017 12:24:07
Michael
Von mir auch Danke für die Rückmeldung. o.w.T.
06.01.2017 19:12:38
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige