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

Neusten Status wiedergeben + VBA Ablage"

Neusten Status wiedergeben + VBA Ablage"
14.02.2022 14:34:54
LeRayZ

Guten Tag,
ich bräuchte erneut Hilfe für meine Datei.
https://www.herber.de/bbs/user/151125.xlsx
In Spalte A8 habe ich eine sehr lange und verschachtelte Wenn-Formel, diese sagt eigentlich nur aus: Wenn die am weiteste rechte Zelle in der Zeile ausgefüllt ist, dann soll die Spaltenüberschrift angezeigt werden. In der Original-Datei bin ich schon bei Spalte AY und die Wenn-Formel ist dementsprechend lang.
Kann man dies kürzen?
Wenn ja, gibt es die Option dass es dann quasi wäre: Dass er sich die aktuellste Spaltenüberschrift + den Text in der Zelle anzeigt? (Beispiel Datei: A8 würde stehen ,,Status 3 s"
Am Anfang der Formel ist ja eine Zählenwenn-Formel mit Xverweis, damit immer "siehe Notiz + Überschrift" priorität hat, das muss am besten bleiben.
Ich habe schon versucht die Formel anzuwenden, aber leider klappt das nicht mit "".
Des weiteren wollte ich fragen, ob es per VBA möglich ist, sobald/oder nach ausführen eines Knops, die Zelle unter ,,Verschieben in Ablage" ausgefüllt wird, die jeweilige Zeile in das Blatt ,,Ablage" unten an die Tabelle angehangen wird.
Sodass quasi das Blatt ,,Tabelle 1" immer relativ leer bleibt und sich das Blatt "Ablage" immer weiter füllt.
Hoffe echt man kann mir folgen und weiterhelfen.
Liebe Grüße
LeRayZ

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neusten Status wiedergeben + VBA Ablage"
14.02.2022 16:49:54
Piet
Hallo
schau dir deine Datei bitte jetzt mal an, du findest keine einzige Formel mehr! Die kann ich bei einer VBA Lösung auch nicht brauchen! Sie verfälschen mir die Lastzell!
Nach jeder Eingabe startet ein Target Makro und wertet den Status aus. Wird eine 1 in die Spalte "Verschieben" eingegeben, wird diese Zeile automatisch in die Ablage verschoben! Bei "siehe Notiz" steht dieser Text immer vor dem Status Text. Ich hoffe das ist so geworden wie es dir vorschwebte.
https://www.herber.de/bbs/user/151128.xlsm
mfg Piet
Anzeige
AW: Neusten Status wiedergeben + VBA Ablage"
14.02.2022 16:59:01
Piet
Nachtrag
in Modul1 findest du ein Makro das man nur einmal starten muss. Es füllt dir alle bereits vorhandenen Zeilen mit dem Status ohne Formel aus.
Danach kann man Modul1 löschen. Das andere Makro ist ein Target Makro in der Tabelle1. Es wird bei jeder neuen Eingabe in eine Zelle ausgelöst!
mfg Piet
AW: Neusten Status wiedergeben + VBA Ablage"
16.02.2022 08:12:22
LeRayZ
Wow das ist echt gut!
Leider habe ich das Problem, dass ich in einigen Zellen eine Datenüberprüfung habe und die Zeile trotz einer Fehlermeldung (Eingabe ist dann nicht erfolgt) in die Ablage verschoben wird.
Wäre es möglich das Makro, dass die Zeile wo die Spalte ,,Verschieben" "" ist, in das andere Arbeitsblatt verschoben wird, als Knopf zu konfigurieren? Somit würde man auch die Fehlerquelle, dass man bei einer Eingabe in der falschen Zelle, direkt die Zeile "verliert" vermeiden.
Anzeige
AW: Neusten Status wiedergeben + VBA Ablage"
16.02.2022 08:37:46
LeRayZ
Hey, vielen Dank für die tolle Lösung!
Leider habe ich in einigen Zelle eine Datenüberprüfung und das Makro schiebt die Zeile bereits in die neue Tabelle, obwohl die Eingabe nicht korrigiert wurde.
Wäre es sonst möglich, dass Makro zu Verschiebung als Knopf zu konfigurieren?
Dann könnte man auch die Fehelerquelle, bei Eingabe in der falschen Spalte, vermeiden.
AW: Neusten Status wiedergeben + VBA Ablage"
16.02.2022 09:43:30
Piet
Hallo
kein Problem, ändere die Makros wie folgt: - das 2. Makro gehört in ein normales Modul und bekommt einen Button zugewiesen. Start über Button!
Das 1. Modul befindet sich in Tabelle1. Da habe ich nur den Teil gelöscht der für das verschieben und löschen zuständig war. Das ist schon alles!
Viel Glück beim ändern, dann sollte es perfekt laufen.
mfg Piet
  • Dim lzAl As Long, lz2 As Long, spa As Integer
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row  spa Then Exit Sub
    On Error GoTo Fehler
    'Status in Spalte A eintragen;  Notizen Vorrang beachten!
    Cells(Target.Row, 1) = Cells(7, Target.Column) & " " & Target.Value
    If Target = "siehe Notiz" Then   'Notiz hat Vorrang
    Cells(Target.Row, 1) = "siehe Notiz " & Cells(7, Target.Column)
    End If
    Exit Sub
    Fehler:  MsgBox "Unerarteter Fehler aufgetreten"
    End Sub
    

  • Option Explicit
    'Ver5schieben über Button
    Sub Verschieben_inAblage()
    Dim AC As Range, lzAl As Long
    Dim n, spa As Integer, lz1 As Long
    With Worksheets("Tabelle1")
    lz1 = .Range("A7").End(xlDown).Row + 1
    spa = .Range("A7").End(xlToRight).Column
    lzAl = Worksheets("Ablage").Range("A7").End(xlDown).Row + 1
    If Worksheets("Ablage").Range("A8") = Empty Then lzAl = 8
    wdh: n = 0 'bei n>0 wiederholen
    'Bei "Verschieben in Ablage" Zeile kopieren und löschen
    For Each AC In .Range("A2:A" & lz1)
    If InStr(AC, "Verschieben in Ablage") Then
    AC.Resize(1, spa).Copy
    Worksheets("Ablage").Cells(lzAl, 1).PasteSpecial xlPasteValues
    .Cells(AC.Row + 1, 1).Resize(lz1, spa).Copy
    .Cells(AC.Row, 1).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    lzAl = lzAl + 1: n = n + 1
    End If
    Next AC
    If n > 0 Then GoTo wdh
    End With
    End Sub

  • Anzeige
    AW: Neusten Status wiedergeben + VBA Ablage"
    16.02.2022 10:06:00
    LeRayZ
    Hey, vielen Dank!
    Zum zweiten Part:
    Ich habe nur den Namen inkl. der Namen der Blätter und Spalte geändert.
    Wenn ich das Makro ausführe, kopiert er die Zeile und fügt diese auch in der Ablage ein, jedoch ohne die andere zu löschen (Also Ausschneide-Funktion klappt nicht ganz)
    Ich bekomme folgende Fehlermeldung:
    https://www.herber.de/bbs/user/151159.jpg
    AW: Neusten Status wiedergeben + VBA Ablage"
    16.02.2022 21:21:07
    Piet
    Hallo
    probier zum löschen bitte mal diese Version. Damit sollte es klappen ...
    mfg Piet
  • 
    Sub Verschieben_inAblage()
    Dim AC As Range, lzAl As Long
    Dim j, spa As Integer, lz1 As Long
    With Worksheets("Tabelle1")
    lz1 = .Range("A7").End(xlDown).Row + 1
    spa = .Range("A7").End(xlToRight).Column
    lzAl = Worksheets("Ablage").Range("A7").End(xlDown).Row + 1
    If Worksheets("Ablage").Range("A8") = Empty Then lzAl = 8
    'Bei "Verschieben in Ablage"  Zeile kopieren und löschen
    For Each AC In .Range("A8:A" & lz1)
    If InStr(AC, "Verschieben in Ablage") Then
    AC.Resize(1, spa).Copy
    Worksheets("Ablage").Cells(lzAl, 1).PasteSpecial xlPasteValues
    AC.Resize(1, spa).ClearContents
    lzAl = lzAl + 1:  j = j + 1
    End If
    Next AC
    Application.CutCopyMode = False
    If j = 0 Then Exit Sub
    'gelöschte Zeilen Rückwärts löschen
    For j = lz1 To 8 Step -1
    If .Cells(j, 1) = "" And .Cells(j + 1, 1)  "" Then
    .Cells(j + 1, 1).Resize(lz1 - j + 1, spa).Copy
    .Cells(j, 1).PasteSpecial xlPasteValues
    End If
    Next j
    Application.CutCopyMode = False
    End With
    End Sub
    

  • Anzeige
    AW: Neusten Status wiedergeben + VBA Ablage"
    17.02.2022 08:24:22
    LeRayZ
    Hey,
    ich bekomme leider nach wie vor den Fehler.
    https://www.herber.de/bbs/user/151188.jpg
    Könnte es daran liegen, dass ich das Makro in 5 verschiedene Modulen habe?
    Habe in jedem Modul die Worksheets sowieso Suchkriterium geändert und ich habe die Range immer von A7 auf B7 geändert, weil mir aufgefallen ist, dass ich den Status in der Ablage ja gar nicht mehr brauche.
    AW: Neusten Status wiedergeben + VBA Ablage"
    19.02.2022 23:06:18
    Piet
    Hallo
    Sorry, hatte privat zu tun, war einige Zeit nicht im Forum. Hast du die Möglichkeit die Datei mal hochzuladen?
    mfg Piet
    AW: Neusten Status wiedergeben + VBA Ablage"
    21.02.2022 08:06:35
    LeRayZ
    Hey, alles gut! :)
    Ich habe dir die Datei mal nachgebaut.
    https://www.herber.de/bbs/user/151256.xlsx
    Unterschiede zur echten:
    Hier ist es nur ein Blatt quasi, da die Datei nur 300MB groß sein darf.
    Und Wirklichkeit sind es 5 Blätter für die Daten und dann 5 Blätter für die Ablage
    Also quasi:
    Blatt 1 + Blatt 1 Ablage
    Blatt 2 + Blatt 2 Ablage
    Blatt 3 + Blatt 3 Ablage
    ......
    Außerdem sind es wesentlich mehr Statusoptionen und die entscheidende Spalt heißt nicht ,,Option Ablage", jedoch würde ich dies einfach anpassen.
    Benötigt wird ja ein Makro, welches pro Blatt die Ablage macht, indem die Zeile wo die Spalte hier: "Option Ablage" ausgefüllt ist ausgeschnitten und das Blatt hier: ,,13-2 Ablage" eingefügt wird. (Ich habe in den Datenblättern zwei Spalten am Anfang ausgeblendet, die bei der Ablage eingeblendet sind, hoffe das macht keine Probleme)
    Außerdem wäre es ganz schön, wenn durch das Cut/Copy keine leeren Zeilen in den Tabellen entstehen.
    Anzeige
    AW: Neusten Status wiedergeben + VBA Ablage"
    17.02.2022 08:34:06
    LeRayZ
    EDIT: Falles es helfen kann.
    Die Blätter heißen so.
    Für die Ablage ist immer nur eine Kopie des Blatts erstellt wurden mit dem Extra ,,... Ablage" im Namen.
    Die erste Spalte betrifft ab jetzt A8.
    Wäre es eigentlich möglich, dass sich die Zeilen der Tabelle nach dem "Transfer" aktualisiert, sodass keine leeren Zeilen entstehen?
    AW: Neusten Status wiedergeben + VBA Ablage"
    18.02.2022 09:15:45
    LeRayZ
    Hey, kann mir hier jemand weiterhelfen?

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige