| |
| 3D-Druck in der industriellen Produktion, eine Pressemitteilung
|
Autor
|
Thema: Sortiertes Blatt aus Liste erstellen ??? (1051 mal gelesen)
|
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 24. Feb. 2005 08:44 <-- editieren / zitieren --> Unities abgeben:
Ich habe eine Bestellung wo in Spalte H die verschiedenen Typenbez. stehen (Typ 1- Typ9). Mein Lieferant möchte die Exceltabelle verwenden aber es soll schon „automatisch“ aufgeteilt werden, d.h. pro Typ (1-9) ein zusätzliches Blatt in der Mappe erstellen und nur dort die zugehörigen Typen eintragen. In Blatt 1 meiner Bestellung sind ca. 120 Positionen aber eben nur 9 unterschiedliche Kriterien Typ 1-9. Da einige Typen Lagerwaren sind und andere über Volumen berechnet werden soll die List einmal komplett und jeweils Typbezogen aufgeteilt werden. Ich hoff das meine Problematik so verstanden wird……. Wie kann ich das mit einem Makro machen? ------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rainberg Mitglied
Beiträge: 147 Registriert: 14.01.2005
|
erstellt am: 24. Feb. 2005 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Hallo thewolff, ohne Beispieldatei wird es wohl an einem brauchbaren Lösungsvorschlag hapern. Selbst mit bestem Willen wüsste ich nicht wie ich ein Testbeispiel anhand deiner Info erstellen sollte. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thoumsen Mitglied Konstrukteur Metallbau, Betriebsinformatiker, usw usw..
Beiträge: 100 Registriert: 25.11.2003 Mir gehts prächtig Kate, die Sonne scheint mir aus dem Arsch! ( George Clooney im Film "From Dusk till Dawn" )
|
erstellt am: 24. Feb. 2005 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
hallo wolf, ich denke ich weiss was du brauchst. schau dir mal den menüpunkt daten/teilergebnisse an. damit kannst du sortieren und dann evtl. auf einzelne blätter verteilen. eine ander möglichkeit wäre noch der autofilter (daten/filter/autofilter). gruss.. ------------------ >> fanatismus ist der tod jeder guten idee << Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 24. Feb. 2005 15:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, der Tipp mit dem Autofilter ist i.O. Dann klappt das mit dem Markieren und Kopieren ABER Ich markiere immer einen "Festen Bereich"(Rows 7:80) und die Markierung bleibt nach dem Kopieren noch aktiv Mein Beispiel Selection.AutoFilter Field:=8, Criteria1:="A" Rows("7:80").Select Selection.Copy Sheets("Typ_A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Bestellung").Select
Nun noch die Fragen: Wie kann ich die ausgefilterten Zeilen markieren und wie entferne ich die Markierung bzw. die selection??? ------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 24. Feb. 2005 19:23 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Braucht du das nur einmal? Händisch geht das so: Autofilter; nach jeweiligen Typ filtern (Typ 1 ... Typ 9) Markieren, kopieren in ein neues Blatt... oder Bereich markieren und einen Pivot-tabellenbericht erstellen dabei die Spalte mit den (Typ 1 ... Typ 9) in das Daten- sowie Zeilenfeld ziehen. Nun müsstest du eine Tabelle haben mit den jeweiligen Typen und der Anzahl... Ein Doppelklick auf die jeweilige Aufsummiereung erzeigt ein neues Dabellenblatt mit den gefilterten Werten... Bei beide Bsp.: Man muss nachträglich den Blattnamen ändern. Mit Makro:
Code: Sub Blattanlegen() Dim i As Integer nb = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) For i = 0 To 8 Worksheets.Add after:=Worksheets(Worksheets.Count) ActiveSheet.Name = "Typ " & nb(i) Next i Worksheets(1).Select End SubSub Eintragen() Dim vrow As Variant Dim irow As Integer, irowt As Integer irow = 2 Do Until IsEmpty(Cells(irow, 1)) 'ax = Cells(irow, 8).Value 'bx = Worksheets("test").Cells(irow, 8).Value vrow = Application.Match(Cells(irow, 8).Value, Worksheets("test").Range("H:H"), 0) If Not IsError(vrow) Then With Worksheets(Worksheets("test").Cells(vrow, 8).Value) irowt = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Rows(irowt).Value = Rows(irow).Value End With End If irow = irow + 1 Loop End Sub
Worksheets("test") entsprechend deiner Mappe ändern [Diese Nachricht wurde von Thomas Harmening am 24. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 24. Feb. 2005 20:41 <-- editieren / zitieren --> Unities abgeben:
Hy Thomas, danke für den Code, so ganz verstehe ich den nicht werden diesen aber mal testen. Mit meiner Version durch Autofilter und Copy/Paste bin ich mit der Lösung schon zufrieden aber ich kann die Selektion in den einzelnen Blättern nicht entfernen. Wie kann ich die Selektion durch Rows("7:80").Select Selection.Copy erzeugt wieder zurücknehmen? Habe das mit unselect versucht aber da mache ich was FALSCH... ------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 24. Feb. 2005 21:24 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Abend Marco, unselect gibbets nich, ergo >>> nimm gar nicht erst das dämliche select! ;-)
Code:
Sheets("Bestellung").Rows("7:80").copy _ Sheets("Typ_A").range("A1") application.cutcopymode=false 'oder Sheets("Bestellung").Rows("7:80").copy Sheets("Typ_A").range("A1").PasteSpecial Paste:=xlPasteValues application.cutcopymode=false 'oder mein Favorit;-) Sheets("Typ_A").rows("7:80").value=Sheets("Bestellung").Rows("7:80").value
wenn du die copy - Varianten nimmst, bekommst du mit: Application.cutcopymode=false den Markierungsrahmen [==Zwischenspeicher leer] weg. Gruss Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 25. Feb. 2005 07:33 <-- editieren / zitieren --> Unities abgeben:
Moin Nancy, wie kann ich den bei Deiner "Favoritenzeile" Sheets("Typ_A").rows("7:80").value=Sheets("Bestellung").Rows("7:80").value noch die Autofilterfunktion verwenden? Selection.AutoFilter Field:=8, Criteria1:="A" Da ich den Befehl "selection" nicht mehr verwende? ------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 25. Feb. 2005 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Hi Marco, leider kenn ich deine Tabellenstruktur nicht, keine Ahnung, obs funzt. Hier mal ein mögliches Beispiel mit Autofilter, man könnte aber auch einzeln die jeweilige Spalte auf Value="bla" prüfen und ins andre Blatt rüberschreiben. Gruss Nancy -- Code:
Sub x() Dim ws1 As Worksheet Set ws1 = Sheets("Tabelle1") ws1.Rows(18).AutoFilter ws1.Rows(18).AutoFilter Field:=4, Criteria1:="bla" ws1.AutoFilter.Range.Cells.SpecialCells(xlCellTypeVisible).EntireRow.Copy With Sheets("Tabelle2") .Range("A1").PasteSpecial xlPasteValues Application.CutCopyMode = False .UsedRange.Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End With ws1.ShowAllData: ws1.AutoFilterMode = False End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |