Autor
|
Thema: Bestimmte Zellen untereinander schreiben (7407 mal gelesen)
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 28. Apr. 2010 10:54 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich mache gerade wieder an meinen Stücklisten herum. Ich habe eine Excel Tabelle die automatisch mit Text befüllt wird. Das ganze ist eine Stückliste. Da wir viele Spalten benötigen ist es schwierig für mich eine geeignete Methode zu finden wie man die Stückliste in einer "anständigen Form" drucken kann. Im Anhang habe ich die Vorlage, mit eurer Hilfe habe ich hier schon gelernt ein großes Problem zu lösen(bedingte Formatierung). Wie man sehen kann habe ich mehrere Blätter angelegt mit varianten. Jedoch komme ich nun in die Praxis und stelle fest, daß nur die variante Sinnvoll ist in der alle Spalten vorhanden sind und um diese "anständig" zu drucken benötige ich A3 quer das ist nicht akzeptabel. Deshalb hier meine Frage, kann ich das ganze nicht irgendwie 2 Zeilig hinbekommen? Bei meiner suche kam ich auf eine Formel, die man in eine weitere leere Mappe eintragen kann. Formel: =INDEX(A;(ZEILE()+1)/2;SPALTE()+50*(REST(ZEILE();2)=0)) das funktioniert, und ich könnte leere Spalten so einfügen, daß das entsprechende auch untereinander steht. Das Problem besteht jetzt eigentlich darin, daß ich eine unbestimmte Zeilenanzahl habe die bedingte formatierung habe ich einfach auf ca. 10 000 Zeilen begrenzt. Was würdet ihr machen bzw wie würdet ihr das machen? Ich könnte doch jetzt zwei(brauche zwei, einmal Struktur und einmal Baukasten) unformatierte Mappen ausfüllen lassen und entsprechend formatierte Mappen mit dieser Formel erstellen und formatieren? Es sollen bestimmte Feler nachher untereinander stehen also Benennung und zusätzliche Benennung sowie Werkstoff und Abmessungen und Lieferant und Bestellnummer usw. Wäre für Anregungen sehr dankbar gruß Heiko ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 28. Apr. 2010 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Heiko spar mal etwas an Text aber sag uns konkret, was Du eigentlich willst. Vor allem ist hilfreich, ja unabdingbar, dass Du kurz den Mechanismus beschreibst, der Deiner Stückliste Daten zuführt. Ist die geplante zweizeilige Darstellung pro Komponente bereits fixiert? Ich würde ja die Chance beim Schopfe packen und die vielen Spalten kräftig durchforsten. Weniger ist oft mehr ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 28. Apr. 2010 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko, geht es Dir darum, die Breite kleiner zu bekommen? 2 Möglichkeiten: a) Datei - Seite einrichten - Reiter Papierformat - Skalierung: Faktor < 100% auswählen --> Schrift schrumpft b) Spalten markieren - Zellen formatieren - Reiter Ausrichtung - Textsteuerung: Zeilenumbruch (Alt+Enter erzwingt Umbruch, hängt allerdings von Deiner Datenquelle ab) [Edit zu b: Natürlich Spalten enger schieben... /Edit] ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 [Diese Nachricht wurde von Paulchen am 28. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 28. Apr. 2010 12:37 <-- editieren / zitieren --> Unities abgeben:
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 28. Apr. 2010 13:08 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von carsten-3m: Heiko spar mal etwas an Text aber sag uns konkret, was Du eigentlich willst. Vor allem ist hilfreich, ja unabdingbar, dass Du kurz den Mechanismus beschreibst, der Deiner Stückliste Daten zuführt.Ist die geplante zweizeilige Darstellung pro Komponente bereits fixiert? Ich würde ja die Chance beim Schopfe packen und die vielen Spalten kräftig durchforsten. Weniger ist oft mehr
Hallo Carsten, ich will die Eierlegende Wollmilchsau , nein die Anzahl Spalten wie in meinem Anhang Struktur alles(bis auf Preis) ist fest. Und das sage ich nicht einfach so, das kam jetzt schon in der ersten Praxiserprobung heraus, daß man diese benötigt. Was ich will eist auch ganz einfach gesagt, aus 12 Spalten 6 Spalten machen, dafür untereinander zweizeilig. Spalte A-F erste Zeile, zweite Zeile Spalte G-L, dann wieder A-F und G-L. Ein Artikel hat dann zwei Zeilen. Die werden importiert und als reiner Text platziert. Mein PDM erkennt das anhand von Text der in den Zellen steht also "$pos:ident" ist der Platzhalter für die Spalte. Dann werden die definierten Felder entsprechend Zeile für Zeile runtergeschrieben, jeder Artikel eine Zeile. War schon wieder soviel text sorry gruß Heiko ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 28. Apr. 2010 13:55 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 29. Apr. 2010 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe habe jetzt eine Fertige Tabelle ausgefüllt mit oben genannter Formel. Es funktioniert teilweise. Da ich mich schlecht ausgedrückt habe hier nochmal die Tabelle inklusive Daten und Formel. Code: =INDEX(Struktur;(ZEILE()+1)/2;SPALTE()+9*(REST(ZEILE();2)=0))
Struktur ist ein markierter Zellbereich in Tabellenblatt "Alles Struktur", die Formel muß in sämtliche Zielzellen kopiert werden also auf Tabelleblatt "Tabelle1" von A9 bis I5100 Zwei Probleme habe ich noch, damit entsprechende Felder untereinander angeordnet sind musste ich leere Spalten einfügen(stört mich ja nicht), diese leere Spalten geben in "Tabelle1" eine "0" aus, jedoch vom PDM gefüllte Spalten die ein leeres Feld übergeben, geben diese "0" nicht aus wieso? Das zweite Problem ist, daß er mir aus irgendeinem Grund die erstene vier Zeilen weggelassen hat, das müsste mit Pos. 1 dann 1.1, 1.2, 1.3 beginnen vielleicht hat noch jemand eine Idee wie ich die Nullen wegbekommen und die restlichen vier Zeilen finde gruß Heiko ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 29. Apr. 2010 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko, zur "Null": Keine Ahnung - welche sind die PDM-Felder? Zu den "fehlenden" Zeilen: Guck in die Hilfe zu INDEX. Zitat: =INDEX(Struktur;(ZEILE()+1)/2;SPALTE()+9*(REST(ZEILE();2)=0))
Du ermittelst die Zeile aus Tabelle 1 (Bereich: Struktur!), also für die erste Zeile mit Werten liefert das eine 9. Dann noch +1 ergibt 10. Die erste Zeile, die aus "Struktur" gelesen wird, ist damit die 10. Zeile in "Struktur" - also Zeile Nr. 17 in Tabelle 1. Ist das so gewollt? Tipp: Teil der Formel markieren, F9 drücken (auswerten), mit Esc verlassen. Was genau dann im hinteren Teil Deiner Formel passiert, entzieht sich meiner Kenntnis. Ansatz: Experimentiere mit den "+1"-Werten für Index, probier' auch mal -3 oder +5. Gleiches gilt für die +9. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 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: 29. Apr. 2010 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Code: =INDEX(Struktur;(ZEILE()+1)/2;SPALTE()+9*(REST(ZEILE();2)=0))
deine Struktur bezieht sich auf einen Bereich von Zeile 8-... Zeile 8 ist Index (1), Zeile 9 Index (2), Zeile 12 Index (5) usw... ZEILE()+1)/2 bezieht sich sich auf die aktuelle Zeile in der die Formel befindet [A9] und ergibt somit den Rückgabe Wert 5 und wertet den Index an 5 Stelle aus (Zeile 12) - (ZEILE()-7)/2 = Rückgabe 1, denn du willst ja bei 1 Anfangen und nicht erst an der 5 Stelle des Indexes.0 Problem - mit so Importgeschichten ist das so eine Sache... Spalte Q (Wärmebehandlung) die Zellen sind zwar scheinbar leer, ein Kopieren der Zelle Q5 auf J8:Mxx entfernt die Nullen - ein Inhalte Löschen der Zellen lässt sie wieder erscheinen... Entweder die 4 Spalten mit 1 Leerzeichen befüllen, oder das Format aus Q auf diese anwenden -Excel hat auch irgendwo einen Schalter Nullen nicht anzeigen- drücken oder das ganze in ein Wennabfrage einbauen, sofern nicht irgendwann doch eine Null als Ergebnis gelten soll.
Code: =WENN(INDEX(Struktur;(ZEILE()-7)/2;SPALTE()+9*(REST(ZEILE();2)=0))=0;"";INDEX(Struktur;(ZEILE()-7)/2;SPALTE()+9*(REST(ZEILE();2)=0)))
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 29. Apr. 2010 12:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für den Tip mit dem experimentieren, meine Formel sieht jetzt so aus Code: =INDEX(Struktur;(ZEILE(A1)+1)/2;SPALTE(A1)+9*(REST(ZEILE();2)=0))
Leider ist das für ein stochern im dunkeln. Ich nehme jetzt einfach mal an daß ich durch das hinzufügen A1 bei Zeile und Spalte definiert habe daß hier der Index beginnt. Das Plus 1 sollte schon stehen bleiben weil das ja den Schritt der Zeile zählt, habe mal getestet was passiert, bei einem Wert von -6 hat er zwar mit 1 begonnen, jedoch war die zweite Zeile um einen Artikel verutscht. Eine Frage hab ich noch: Die bisher einzige Möglichkeit eine Formel zu kopieren die ich kenne ist diese über den Bereich zu "ziehen" ich kann mir aber einen Bereich Benennen und dadurch einen ganzen Bereich markieren, gibt es eine Möglichkeit die Formel in alle markierten Zellen einzufügen? gruß Heiko ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 29. Apr. 2010 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Mahlzeit, ZEILE(A1)+1 liefert 2. Kopierst (ziehst) Du die Formel nach unten, steh da für ZEILE(A2)+1 = 3 usw. Es ist eine Frage des Bezugssystems: Gehst Du von Index im Bereich "Struktur" aus oder von den "echten" Zeilen in Tabelle 1 oder meinst Du mit ZEILE(A1) gar eine Zeile in Deinem Auswertungsblatt ? Wie auch immer, es scheint ja zu klappen. Formel kopieren: Klar geht das. Zelle mit Quellformel markieren, kopieren. Zielbereich (mehrere Zellen) markieren - einfügen. Dann müssen nur noch die Bezüge stimmen, Stichwort: Dollarzeichen $! ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 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: 29. Apr. 2010 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Zitat: Original erstellt von Press play on tape: Die bisher einzige Möglichkeit eine Formel zu kopieren die ich kenne ist diese über den Bereich zu "ziehen" ich kann mir aber einen Bereich Benennen und dadurch einen ganzen Bereich markieren, gibt es eine Möglichkeit die Formel in alle markierten Zellen einzufügen?
Zelle kopieren , die die zu kopierende Formel enthält, Bereich markieren in denen die Formel eingefügt werden soll, RMT und Inhalte einfügen, dort den Schalter Formeln setzen, Enter oder Ok drücken. Hmm, ich nehme mal an du hast auf Paulchens Beitrag geantwortet, ein -7 anstelle -6 sollte kein Verrutschen verursachen...? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 29. Apr. 2010 12:59 <-- editieren / zitieren --> Unities abgeben:
Ja Thomas, der letzte Beitrag war die Antwort auf Paulchens Beitrag. So jetzt erstmal Ergebnis Analyse, es ist Perfekt. Ich habe deine Formel Exakt so eingetragen und funktioniert Wunschgemäß. Trage ich eine Null in die leeren Felder ein so erscheint diese, ein "nichts" ("") ergibt auch nichts. Da ich in meinen Datenbankfeldern entweder nichts oder einen Wert habe wird dies keine Fehler verursachen. Ich habe deinen Beitrag Aufmerksam gelesen nur fehlt mir das Verständnis warum bei der Rückgabewert bei ...(ZEILE()+1)/2... fünf ergibt und bei ...(ZEILE()-7)/2... eins. Und Leider fehlt mir das auch bei meiner Variante...=INDEX(Struktur;(ZEILE(A1)+1)/2;SPALTE(A1)... in der ich in Klammer das Feld A1 (ändert sich beim ziehen dann auf den entspr. Wert, somit unterschiedl. Formeln) das Verständinis, wobei ich hier denke daß ich den Index dann in diesem Feld Explizit auf das entsprechende Feld lege. Auf jedenfall vielen Dank, meine Tabelle funktioniert nun so wie ich es wollte gruß Heiko ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 29. Apr. 2010 13:26 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 29. Apr. 2010 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 29. Apr. 2010 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 29. Apr. 2010 14:04 <-- editieren / zitieren --> Unities abgeben:
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 29. Apr. 2010 15:29 <-- editieren / zitieren --> Unities abgeben:
habs hinbekommen, dyn. Druckbereich Anleitung Excel 2007 Namensmanager(unter Formeln zu finden) Namen eintragen "Druckbereich" (dabei wählen unter Bereich ob Arbeitsmappe oder bestimmte Tabelle) und dann folgende Formel eintragen:
Code: =BEREICH.VERSCHIEBEN(Tabelle1!$A$1:$E$1;;;MAX((Tabelle1!$E$1:$E$5100<>"")*ZEILE(Tabelle1!$1:$5100)))
der Druckbereich passt sich nun an den wirklich beschriebenen Bereich an(Formeln sind dabei ausgeschlossen) ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional 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: 29. Apr. 2010 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Zitat: Ich habe deinen Beitrag Aufmerksam gelesen nur fehlt mir das Verständnis warum bei der Rückgabewert bei ...(ZEILE()+1)/2... fünf ergibt und bei ...(ZEILE()-7)/2... eins.
die Formel steht in Zeile 9 - Ergo (ZEILE(9)+1)/2 =5 und für (ZEILE()-7)/2 aka (ZEILE(9)-7)/2 = 1 HTH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007
|
erstellt am: 29. Apr. 2010 19:43 <-- editieren / zitieren --> Unities abgeben:
Jetzt hab ichs auch kapiert thx Ich habe noch etwas weiter experimentieren müssen und deshalb eine neue Kleinigkeiten eingebaut die ich auch nicht vorenthalten möchte. Durch die Übergabe des Textes mit der Index Formel haben sich die Zeilenhöhen nicht mehr automatisch angepasst. Ich habe folgenden code im VBA Editor in diese Arbeitsmappe direkt eingefügt: Code: Private Sub Workbook_SheetActivate(ByVal Sh As Object) ActiveSheet.Rows.AutoFit End Sub
immer wenn man das Blatt wechselt passt er erstmal die Zeilenhöhen an. gruß Heiko P.S. habe fertig, war teuer!!! ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 30. Apr. 2010 07:54 <-- editieren / zitieren --> Unities abgeben:
Hallo, der Vollständigkeit halber möchte ich nochmals eine Bemerkung zu dieser Tabelle abgeben, vielleicht hat ja jemand mal ein ähnliches Problem. Die Tabelle(n) werden befüllt und anhand des Zelleninhalt(Text z.B. $pos osnr) wird erkannt in welcher Spalte was runtergeschrieben wird. Durch die Index Formel entsteht der Effekt daß der Erkennungstext ebenfalls vorhanden ist und erkannt wird. Dies kann man dadurch umgehen daß man diese Tabellen ganz ans Ende stellt, da die Befüllung von der ersten Tabelle an los geht. Also erste Tabelle, erste Spalte, zweite Spalte usw. dann zweite Tabelle erste Spalte, zweite Spalte usw. die Tabellen mit Index Formel werden Paralell befüllt(durch Formel) und haben dann keinen Kenner mehr, wenn die Übergabe an diesen Blättern ankommt. Nettweise werden die Blätter dann einfach ignoriert und ermöglichen mir die Tabellenblätter. gruß Heiko ------------------ Treffen in Stuttgart am 28.4, ich bin dabei .....der dazu gehörige Plauderthread
Mitglied der Gruppierung "no How" und Kloggle Professional Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |