Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Berieche in eine Ablage verschieben

Forumthread: Berieche in eine Ablage verschieben

Berieche in eine Ablage verschieben
07.06.2024 21:17:53
megenius
Hallo

Ich habe eine Tabelle1 Eingabe und Tabbelle 3 Ablage

und möchte die Spalten A bis H in die Ablage veschieben wenn in A ein x steht und die Tabelle gespeichert wird.

Ich habe das gleiche aber bei x in Zelle A bis ...

Kann mir jemand das umschreiben?

Danke im Voraus Mario

https://www.herber.de/bbs/user/169910.xlsm

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim lngInputColumn As Long, lngOutputColumn As Long

With Tabelle8

If IsEmpty(.Cells(1, 1).Value) Then

lngOutputColumn = 1

Else

lngOutputColumn = .Cells(1, .Columns.Count).End(xlToLeft).Offset(0, 1).Column

End If

End With

With Tabelle1

If WorksheetFunction.CountBlank(.Rows(1)) .Columns.Count Then

For lngInputColumn = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column

If Not IsEmpty(.Cells(1, lngInputColumn).Value) Then

Call .Columns(lngInputColumn).Cut(Destination:=Tabelle8.Cells(1, lngOutputColumn))

Call .Columns(lngInputColumn).Delete

lngOutputColumn = lngOutputColumn + 1

lngInputColumn = lngInputColumn - 1

End If

Next

End If

End With

End Sub
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berieche in eine Ablage verschieben
08.06.2024 00:55:54
Oppawinni
Ähm, wo fang ich an...
Du sagst : "Ich habe eine Tabelle1 Eingabe und Tabelle 3 Ablage"
Das ist die Reihenfolge deiner Worksheets.
in VBA würde man da z.B. sagen worksheets(1) - das erste Worksheet, oder worksheets("Eingabe") das Worksheet mit dem Namen "Eingabe"
Jedes Worksheet hat aber auch einen sogenannten Code-Namen (siehst du im VBA Editor im Project-Explorer. Da steht der Code-Name und dahinter in Klammern der Name.
Das Worksheet "Eingabe" hat demnach den Code-Namen Tabelle2, "Ablage" den Codenamen Tabelle1
also war deine Aussage doch etwas irreführend....

In VBA könnte man statt worksheets("Eingabe") auch den Codenamen verwenden, also einfach Tabelle2 schreiben.
So, jetzt hast du da in deinem Excel nen Code, der arbeitet aber nicht mit Tabelle1 und Tabelle2, sondern mit Tabelle1 und Tabelle3 (wenn er denn arbeiten würde)
In dem Code den du hier gepostet hast, steht dann gar Tabelle8.

Ich hab dann auch keine Idee, was uns das Makro da bringen soll, das läuft doch ohnehin nicht.
und deine Beschreibung, was das Macro unter welcher Voraussetzung genau tun soll, hab ich auch nicht wirklich verstanden...

Anzeige
AW: Berieche in eine Ablage verschieben
08.06.2024 08:59:30
Alwin Weisangler
Hallo,
ins Modul des Tabellenblattes "Eingabe":


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Columns(1)) Is Nothing Then
If LCase(Target.Cells) = "x" Then
Range("A" & Target.Cells.Row & ":H" & Target.Cells.Row).Copy
With Tabelle1
If .Cells(1, 1) = "" Then
.Cells(1, 1).PasteSpecial xlPasteAll
Else
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial xlPasteAll
End If
End With
Rows(Target.Cells.Row).Delete
End If
End If
Application.EnableEvents = True
End Sub


Gruß Uwe
Anzeige
AW: Berieche in eine Ablage verschieben
08.06.2024 13:25:44
megenius
Hallo
Danke allen für die schnellen antworten und die Tabelle ist genau richtig und funktioniert.
Noch eine Frage?
Die Artikel und Farbe sind Dropdownlisten aus Artikel.
Kann man in Zelle J die Farben anzeigenlassen die nicht in E stehen da diese besetzt sind, also in J nur die die frei sind.
Ich habe die Tabelle noch mal hochgeladen so wie sie sein soll.
Gruß Mario

https://www.herber.de/bbs/user/170027.xlsm

Anzeige
AW: Berieche in eine Ablage verschieben
08.06.2024 15:08:03
Alwin Weisangler
Hallo,

das wäre einer von diversen Lösungswegen:


Sub Restfarben()
Dim i&, j&, k&, tmp$, arrFarbpool(): arrFarbpool = Range("rng_Farbauswahl").Value
With Tabelle1
For i = 1 To UBound(arrFarbpool)
For j = 3 To .Cells(Rows.Count, 5).End(xlUp).Row
If arrFarbpool(i, 1) = .Cells(j, 5) Then k = k + 1
Next j
If k = 0 Then tmp = tmp & arrFarbpool(i, 1) & ", "
k = 0
Next i
.Cells(2, 10) = Left(tmp, Len(tmp) - 2)
End With
End Sub

Markiere im Blatt Artikel den Bereich C2:C9 und vergebe im Namensmanager diesen Bereich den Namen: rng_Farbauswahl
Dann erkennt die Prozedur den Range und füllt das Array mit diesen Farbvorgaben.

Gruß Uwe
Anzeige
AW: Berieche in eine Ablage verschieben
09.06.2024 14:41:14
megenius
Hallo
Muss ich den Bereich J:3 irgenwie benennen damit die Farben angezeigt werden.
Wo soll ich en Code einfügen Arbeitsmappe oderEingbe oder Artikel?

Gruß Mario
AW: Berieche in eine Ablage verschieben
09.06.2024 17:07:41
Alwin Weisangler
Hallo Mario,

.Cells(2, 10) ist J2
.Cells(3, 10) wäre dann J3

Die Prozedur kannst du mit einem Button starten.
Wenn die Prozedur mit der Auswahl des Dropdowns geschehen soll, dann ins Modul des Tabelleblattes "Eingabe":


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E3:E33")) Is Nothing Then
Application.EnableEvents = False
Restfarben
Application.EnableEvents = True
End If
End Sub


Gruß Uwe

Anzeige
AW: Berieche in eine Ablage verschieben
09.06.2024 18:04:04
megenius
Hallo
Danke für die Hilfe es funktionirt jetzt.
Noch eine letzte Frage
Beim verschieben mit x in die Ablage werden nue 3 Gespeichert.
Eigentlich sollten alle Daten in der Ablage erhalten bleiben.

Gruß Mario
AW: Berieche in eine Ablage verschieben
09.06.2024 18:06:48
megenius
Hallo
ich habe die Tabelle noch mal hochgeladen.

Gruß Mario

https://www.herber.de/bbs/user/170040.xlsm
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige