Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
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
Werte in andere Tabelle kopieren und sortieren
02.05.2017 09:19:31
Claudio
Hallo zusammen,
in einer Datei "Eingang Offerten 2017" habe ich für jeden Monat ein Blatt sowie ein Blatt "Arbeitsvorrat" angelegt.
In den Blättern ist jeweils eine Tabelle mit den Spalten Offerte/Abgebot/Auftrag/Absage/Preis. Jede Zelle der Spalten Offerte/Abgebot/Auftrag/Absage hat ein Steuerelement (Kästchen zum anklicken). Durch die Aktivierung der jeweiligen Steuerelemente wird die Hintergrundfarbe der ganzen Zeile farbig (Durch Anklicken des Steuerelements "Auftrag" wird dann die Hintergrundfarbe der ganze Zeile durch eine bedingte Formatierung grün.
Problemstellung: Wenn eine Zeile durch die Aktivierung der bedingten Formatierung grün wird, soll der Wert "Preis" in der letzten Spalte in das Blatt "Arbeitsvorrat" fortlaufend kopiert werden und dies eben von allen 12 Blättern (jeder Monat).
Ich möchte also in dem Blatt "Arbeitsvorrat" eine fortlaufende Liste erstellen, in welche die Werte der einzelnen Aufträge aller Monate aufgelistet sind.
Hat jemand eine Lösung dafür ?
VIIIELEN DANK im voraus !!
Claudio

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte Beispieldatei owT.
02.05.2017 10:01:33
ChrisL
.
AW: Bitte Beispieldatei owT.
02.05.2017 14:09:02
Claudio
Hier ist die Beispieldatei:
https://www.herber.de/bbs/user/113240.xlsx
Die Preise der Aufträge (Hintergrundfarbe grün) der Blätter Januar 2017 bis Dezember 2017 sollen in Blatt "Arbeitsvorrat" fortlaufend in Spalte "L" (Preis exkl. Mwst.) aufgelistet werden.
Danke + Gruss
Claudio
Zeilen übertragen
02.05.2017 14:49:02
ChrisL
Hi Claudio
Hier mal ein erster Wurf. Den Kontrollkästchen müsstest du folgendes Makro zuweisen:
Sub Makro1()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, sh As Shape
Set WS1 = ActiveSheet
Set WS2 = Worksheets("Arbeitsvorrat")
With WS1
For iZeile = .Cells(Rows.Count, 23).End(xlUp).Row To 8 Step -1
If .Cells(iZeile, 23) Then
.Rows(iZeile).Copy WS2.Rows(WS2.Cells(Rows.Count, 1).End(xlUp).Row + 1)
For Each sh In .Shapes
If sh.TopLeftCell.Row = iZeile Then sh.Delete
Next sh
.Rows(iZeile).Delete
End If
Next iZeile
End With
End Sub

Vorerst wird die ganze Zeile kopiert. Es ist mir klar, dass die Datenfelder nicht mit dem Blatt Arbeitsvorrat übereinstimmen. Dies könnte man zwar korrigieren, aber dann verlierst du Daten d.h. Spalten G:J wären gelöscht. Das Feld "Preis" ist dafür doppelt.
Darum würde ich alles kopieren und bei Bedarf die überflüssigen Spalten ausblenden.
cu
Chris
Anzeige
AW: Zeilen übertragen
02.05.2017 15:12:04
Claudio
Hallo Chris,
wow, das ging aber schnell !! DANKE !
Ich hab dir jedoch die falsche Beispieldatei geschickt...
In Blatt "Arbeitsvorrat" möchte ich eben die Werte der Aufträge von Blatt Januar bis Dez. fortlaufend auflisten. Um den Arbeitsvorrat zu ermitteln gibt es nach der Spalte "L" (Preis) Spalten mit der Bezeichnung Teilrechnung 1-4 und die Spalte Rechnung (damit wir wissen ob wir den gesamten Preis verrechnet haben).
Dürfte ich nochmals deine Hilfe in Anspruch nehmen ?
Wäre super !!
Hier die richtige Datei:
https://www.herber.de/bbs/user/113242.xlsx
Gruss
Claudio
Anzeige
Tabellen zusammenfassen
02.05.2017 15:52:38
ChrisL
Hi Claudio
Wie die Sache mit den Teilrechnungen funktioniert ist mir nicht klar.
Sofern ich dich richtig verstehe möchtest du alle grünen Zeilen auf dem Blatt "Arbeitsvorrat" zusammenfassen (kopieren und nicht ausschneiden).
Sub Makro1()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, sh As Shape
Set WS2 = Worksheets("Arbeitsvorrat")
For Each WS1 In ThisWorkbook.Worksheets
If WS1.Name  WS2.Name Then
With WS1
For iZeile = .Cells(Rows.Count, 23).End(xlUp).Row To 8 Step -1
If .Cells(iZeile, 23) Then
.Rows(iZeile).Copy WS2.Rows(WS2.Cells(Rows.Count, 1).End(xlUp).Row + 1)
'            For Each sh In .Shapes
'                If sh.TopLeftCell.Row = iZeile Then sh.Delete
'            Next sh
'            .Rows(iZeile).Delete
End If
Next iZeile
End With
End If
Next WS1
End Sub
Geduld zählt leider nicht zu meinen Stärken. Darum bitte ich Dich, um eine vollständige (auch für Aussenstehende verständliche) Anforderung ggf. mit Beispiel, wie das gewünschte Ergebnis konkret aussieht. Ich bin zuversichtlich, dass wir die Aufgabe damit in einem Wisch erledigen können.
cu
Chris
Anzeige
AW: Tabellen zusammenfassen
02.05.2017 16:56:23
Claudio
Hallo Chris,
In die Tabellen der Blätter Januar bis Dezember tragen wir fortlaufend Monat für Monat Offert-Anfragen ein (Datum, Kunde, Architekt, Preis).
Wenn es zum Auftrag kommt, wird die ganze Zeile grün (durch Aktivierung des Steuerelements in Spalte "S" und bedingter Formatierung), bei Absage rot, bei Offerte orange, bei Abgebot gelb.
Nun sollten nur die Preise der erhaltenen Aufträge, (nicht die ganzen Zeilen) in die Tabelle "Arbeitsvorrat" in Spalte "L" fortlaufend kopiert werden. Und dies fortlaufend und nacheinander von den Tabellen Januar bis Dezember. Die Zeilen, welche in den Tabellen Januar bis Dezember durch die Aktivierung des Steuerelements grün geworden sind, können gelöscht werden.
In Tabelle "Arbeitsvorrat" werden dann die Teilrechnungen (Spalte M bis P) von Hand erfasst und in Spalte "Q" aufsummiert, um zu prüfen, ob der ganze Preis des Auftrags verrechnet wurde.
Hier die Beispieldatei mit Vermerk in Tabelle "Arbeitsvorrat"
https://www.herber.de/bbs/user/113245.xlsx
Gruss
Claudio
Anzeige
AW: Tabellen zusammenfassen
02.05.2017 18:30:46
ChrisL
Hi Claudio
Jetzt kommen wir der Sache näher (Code mache ich morgen). Aber ein paar Fragen hätte ich noch.
- Ausser Preis/Summe steht jetzt überall "Wird von Hand ausgefüllt", dann bleibt nicht mehr viel zum Übertragen ;) Ist es richtig, dass du Datum Eingabe, Kunde, Architekt, Arbeit, Preis übertragen lassen willst?
Spalte B = B, D:F = D:F, U = L
Summenformel in Q
1 Mitarbeiter verkauft 1 Auftrag oder gibt es manchmal auch mehrere Verkäufer für einen Auftrag?
Könnte man für die Mitarbeiter-Kennzeichnung und den Auftragsstatus auch einfach eine Dropdown-Auswahl machen? (Solche CheckBox-Haufen sind etwas umständlich zum Erstellen, im Auswerten und verschieben sich gerne beim Filtern oder Kopieren. Zudem ungünstig in der Wartung z.B. bei Aus- oder Neueintritt.)
Noch ein paar Anregungen zum Aufbau generell. Das Hauptproblem besteht darin, dass du (so wie ich verstehe) manuelle Eingaben auf den Monatsblättern und gleichzeitig auf der Zusammenfassung (Arbeitsvorrat) machst.
Ganz einfach geht eine Aktualisierung, wenn man den Inhalt löscht und die ganze Tabelle neu aufbaut. Wenn jetzt aber die Zusammenfassung manuell bearbeitet wird, kann man nicht löschen/überschreiben. Man muss also prüfen, ob ein Datensatz bereits vorhanden ist und nur bei Nichtvorhandensein neu erstellen. Da auf den Monatsblättern keine eindeutige Auftragsnummer vorhanden ist, ginge dies nur aus einer Kombination von Kundenname und Preis (evtl. noch ein zusätzlicher Quer-Check über die Anzahl). Ohne Primärschlüssel (z.B. eindeutige Auftragsnummer) wird der Abgleich ziemlich unsicher (Beispiel: gleicher Kunde hat mehrere Aufträge mit identischem Preis).
Eigentlich würde ich den Prozess/Aufbau generell überdenken und zwar würde ich unbedingt die Monatsblätter durch Jahresblätter ersetzen (Verwaltung in einer grossen Tabelle). Das "zerstreuen" von Daten ist technisch mühsam und du musst für die kleinste Auswertung in die Trickkiste greifen.
Willst du z.B. mal wissen, wie hoch das Volumen der nicht erhaltenen Aufträge ist, stehst du bereits wieder an. Die zentrale Datenverwaltung hat weitere Vorteile z.B. Suche nach einem bestimmten Kunden, Filtern und Auswerten. Auswerten kannst auch nach Monat (z.B. Pivot-Tabelle oder SUMMEWENNS() Formel). Bezüglich Benutzerfreundlichkeit kann man vieles Tun z.B. Standard-Filter definieren und mit TEILERGEBNIS kombinieren. Oder mit etwas VBA ein automatischer Datumseintrag, Auftragsnummer generieren, User-Erkennung...
Rein Datentechnisch zwar ungünstig, aber m.E. OK, ist der Übertrag von erhaltenen Aufträgen ins nächste Blatt. Aber du brauchst da eine klare Trennung. Entweder verschiebst du den Datensatz (die Zeile) komplett oder die automatisch übertragenen Spalten im Arbeitsvorrat sind zur Bearbeitung gesperrt.
cu
Chris
Anzeige
AW: Tabellen zusammenfassen
03.05.2017 08:51:15
ChrisL
Hi Claudio
https://www.herber.de/bbs/user/113269.xlsm
Private Sub Worksheet_Activate()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, letzteZeile As Long
Set WS2 = Worksheets("Arbeitsvorrat")
For Each WS1 In ThisWorkbook.Worksheets
If WS1.Name  WS2.Name And WS1.Name  "Hilfsblatt" Then
For iZeile = 8 To WS1.Cells(Rows.Count, 4).End(xlUp).Row
If WS1.Cells(iZeile, 13) = "Auftrag" And _
WorksheetFunction.CountIfs(WS2.Columns(4), WS1.Cells(iZeile, 4), _
WS2.Columns(8), WS1.Cells(iZeile, 14)) = 0 Then
letzteZeile = WS2.Cells(Rows.Count, 4).End(xlUp).Row + 1
WS2.Cells(letzteZeile, 2) = WS1.Cells(iZeile, 2).Value
WS2.Range(WS2.Cells(letzteZeile, 4), WS2.Cells(letzteZeile, 6)) = _
WS1.Range(WS1.Cells(iZeile, 4), WS1.Cells(iZeile, 6)).Value
WS2.Cells(letzteZeile, 7) = WS1.Cells(iZeile, 11).Value
WS2.Cells(letzteZeile, 8) = WS1.Cells(iZeile, 14).Value
WS2.Cells(letzteZeile, 13).Formula = "=SUM(I" & letzteZeile & ":L" &  _
letzteZeile & ")"
End If
Next iZeile
End If
Next WS1
End Sub
Das Blatt Arbeitsvorrat aktualisiert sich bei Aktivierung automatisch. Es werden jedoch nur neue Daten hinzugefügt und nicht gelöscht d.h. wenn du den Auftragsstatus von Auftrag auf Absage änderst, dann müsstest du den Datensatz manuell löschen.
Unberücksichtigt sind allfällige Duplikate (identische Aufträge).
cu
Chris
Anzeige
AW: Tabellen zusammenfassen
03.05.2017 09:17:39
Claudio
Guten Morgen Chris
Erst mal Danke dafür, dass du dich meinem Problem so engagiert annimmst !
Deine Lösung sieht super aus, jedoch aktualisiert sich das Blatt Arbeitsvorrat nicht...
Muss ich den Code noch irgendwo eintragen ?
Gruss
Claudio
AW: Tabellen zusammenfassen
03.05.2017 09:37:50
ChrisL
Hi Claudio
Du müsstest Makros aktivieren, dann aktualisiert es sich automatisch.
cu
Chris
AW: Tabellen zusammenfassen
03.05.2017 09:59:37
Claudio
Hallo Chris
Es funktioniert !
SUUUUPER ! Viiiielen Dank !!
Gruss
Claudio

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige