Zellen verschieben in anderes Tabellenblatt
#1
Hallo Excel Experten,
ich habe mich mal wieder an eine VBA heran gewagt. Die Formel stammt aus dem WWW und wurde einwenig umgebaut.
Folgende Probleme habe Ich
  1. wenn im Tabellenblatt Aktionsliste in der Spalte M nein steht soll die ganze Zeile in das Tabellenblatt Absage verschoben werden und dann in dem Arbeitsblatt Aktionsliste gelöscht werden. Das Markro funktioi´niert nur wenn das Markro händisch aufrufe und ausführe.
  2. das gleiche sollte dann wieder rückgängig funktionieren, funktioniert ebenfalls wenn es händisch ausgeführt wird.
  3. Das große Problem ist es sind intelligente Tabellen, und die verschoben Tabellen werden jetzt unterhalb dieser Tabellen eingefügt, ich möchte aber erreichen dass die Zeile in die intelligente Tabellen eingefügt werden.

Gibt es hierfür eine Lösung.

Ich vertraue wieder voll auf euch als EXCEL Profis.

Danke im Voraus Ihr seid die besten.


Tom


Angehängte Dateien
.xlsm   Testmappe Auftrag.xlsm (Größe: 219,2 KB / Downloads: 8)
Antworten Top
#2
Hallo Tom,
das ganze ist alles möglich, aber Du hast nicht erklärt was mit dem kopierten passieren soll. Zum beispiel löschen dann ist aber dort eine Leezeile.
Und dann, was soll passieren rückwärts?
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
[-] Folgende(r) 1 Nutzer sagt Danke an EbyAS für diesen Beitrag:
  • wavemaster
Antworten Top
#3
Hallo EbyAS,
danke erstmal für die Rückinfo.
Also wenn die Zeile verschoben wird von der Aktionsliste in die Absage , sollte die Leerzeile in der Aktionsliste gelöscht werden. Das gleiche gilt natürlich für die Umkehrversion.


Was mir wichtig wäre dass das Makro ausgeführt selbstständig wird .

Hoffe jetzt etwas Licht in s dunkle gebracht zu haben.

Sollte noch etwas nicht richtig formuliert sein würde Ich mich freuen wenn du nochmals schreibst.

Danke

Tom
Antworten Top
#4
Hallo,

meiner Ansicht nach reicht da eine Liste. Den Begriff Absagen kannst du im Status mit aufnehmen. Dann kannst du danach filtern und sparst dir die zweite Liste.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 2 Nutzer sagen Danke an Klaus-Dieter für diesen Beitrag:
  • derHoepp, wavemaster
Antworten Top
#5
Hallo Tom,
hier eine nach Wunsch. Ich bin nicht eher dazugekommen.
.xlsm   Testmappe Auftrag.xlsm (Größe: 227,42 KB / Downloads: 7)
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
[-] Folgende(r) 1 Nutzer sagt Danke an EbyAS für diesen Beitrag:
  • wavemaster
Antworten Top
#6
Hallo,

ich habe aus deinem Wunsch eine Kombination erstellt.

Im Blatt 'Aktionsliste' werden, wenn in Spalte M ein 'nein' eingegeben wird, wird diese Zeile in Blatt 'Ablagen' kopiert und hier im Blatt ausgeblendet.

Wird dem entsprechend im Blatt 'Ablagen' in Spalte M der Wert von 'nein' auf 'ja' geändert, wird im Blatt 'Aktionsliste' die entsprechende Zeile wieder eingeblendet und im Blatt 'Ablagen' diese Zeile gelöscht.

Vielleicht kannst du mit diesem Kompromiss leben.

Gruß Stephan


Angehängte Dateien
.xlsm   Testmappe Auftrag.xlsm (Größe: 225,29 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Stephan für diesen Beitrag:
  • wavemaster
Antworten Top
#7
Hallo EbyAS,
Danke für den Vorschlag. Das was Ich wollte funktioniert soweit zu 90% perfekt.
Leider fügt er die Zeile nicht in die intelligente Tabelle ein.

Mit einem Kniff funktioniert es Tadellos und Zwar wenn Ich in beiden Tabellenblättern in der Tabelle mehrere leere Zeilen einfüge durch Tabstopps.

Vielleicht gibt es noch einen Kniff in der VBA.

Trotzdem Vielen Dank.

18 

Gruß Tom

Hallo Stephan,
auch dir ein großes Dankeschön. Deine Tabelle funktioniert bis auf eine kleine Sache. Beim kopieren und verschieben wird die kopierte Zeile auf anderen Tabellenblatt in die gleiche Zeile geschoben. Das ist leider nicht optimal. Denn wenn ich von 100 Angeboten Nr 17+33+75+88 nicht bekommen habe Ich auf der Absagen Seite ewig viele Leerspalten.

Die Idee ist auf jedenfall Super.

18 

Gruß Tom
Antworten Top
#8
(15.08.2024, 20:42)wavemaster schrieb: Leider fügt er die Zeile nicht in die intelligente Tabelle ein.

das liegt daran das die events schon ausgeschaltet sind. Ausserdem haben intelligente Tabellen eigene Objektreferenzen. Die hier nicht benutzt wurden.

ändere den code in aktionsliste so 
            If Target.Column = 13 And UCase(Target.Value) = "NEIN" Then
              .Range("A" & Zeile).Resize(1, 16).Copy Destination:=Worksheets("Absagen").Cells(CZeile, 1)
              Application.EnableEvents = False
              .Range("A" & Zeile).EntireRow.Delete
              Application.EnableEvents = True
            End If

änder den Code in Absagen so 

  Dim Zeile As Long, CZeile As Long
    If Target.CountLarge > 1 Then Exit Sub
    With Worksheets("Absagen")
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • wavemaster
Antworten Top
#9
Hallo Ralf,
da komme Ich jetzt nicht ganz klar damit. Könntest du mir die 2 VBA Code zusammenstellen. Habe es versucht dann kommen immer Fehler Meldungen.

Danke im Voraus.

Tom
Antworten Top
#10
Hallo Tom,

versuch es jetzt mit dieser Version. 
Hier werden und bleiben die Zeilen (wenn kein Auftrag) ausgeblendet.
Im Blatt 'Absagen' werden, wenn die dortigen Einträge zu Aufträgen werden, die entsprechenden Zeilen gelöscht.

Da es in Excel sehr viele Zeilen gibt, bleiben nicht mehr zum Auftrag geführte Einträge ausgeblendet erhalten.
Hier die Zeilen zu löschen würde nach meinem jetzigen Aufbau ein Chaos auslösen (weil damit nicht die Vorgaben im Blatt 'Absagen'  geändert werden.)

Gruß Stephan


Angehängte Dateien
.xlsm   Testmappe Auftrag_erweitert.xlsm (Größe: 222,68 KB / Downloads: 3)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste