Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Liste automatisch auf Seiten aufteilen
#1
Hallo Leute!

Ich hab zwar schon das ein oder andere hier aus dem Forum übernehmen können, bzw haben mir hier einige Anregungen bei den Problemen geholfen, aber jetzt ist der Ofen aus und ich stehe dumm da. :/
Deswegen musste ich mich jetzt doch nachträglich anmelden :)

Das ganze ist irgendwie sehr kompliziert, und ich weiß nicht wo ich anfangen soll.

Grundidee:
In der angehängten Datei befindet sich das Problem.
Im Sheet "Kabelliste" will ich manuell die Spalten A und B ausfüllen, das klappt schonmal :D
Die Spalten D bis I sollen automatisch ausgefüllt werden, je nach Aderzahl mal so mal so. Das klappt auch erstmal.
Im Sheet Ergebnis_1 soll nun die Druckvorlage automatisch ausgefüllt werden, aber fortlaufend, weshalb ich keine festen Bezüge nehmen kann. Ich vermute das ich ohne VBA gar nicht dahinkomme :22:
Die restlichen 3 Sheets sind eine manuell geschrieben Liste wie es am Ende aussehen sollte.
Ich hatte erst an etwas wie "WENN die Zelle H1 keinen Text enthält, dann mach bei I1 weiter, wenn auch I1 kein Text enthält, dann springe zu D2" aber das will alles nicht so wie ich das will.

Wenn ich schon auf VBA setzten muss, dann würde ich die Druckvorlage als Sheet hinterlegen und über einen Button dann die zu druckenden Seiten als neue Sheets erzeugen lassen wollen.

Ich hoffe ihr versteht das Problem bzw vorallem was ich so vor habe und könnt mir helfen.
Wenn alle Stricke reißen, dann gehts halt wieder manuell weiter

Vielen Dank

Gruß
WeisserWolf


.xls   LWL-Liste.xls (Größe: 81,5 KB / Downloads: 6)
Antworten Top
#2
Hallo Weisser Wolf,


Zitat:Deswegen musste ich mich jetzt doch nachträglich anmelden [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

ich hoffe doch sehr, dass dies nicht allzu großes Unbehagen hervorgerufen hat. :05: :25:

Doch nun ernsthaft.

Zitat:Die Spalten D bis I sollen automatisch ausgefüllt werden, je nach Aderzahl mal so mal so. Das klappt auch erstmal.

Hier habe ich dir mal die Formeln verändert, damit tatsächlich nur ein Eintrag nach Anzahl der Adern erfolgt:

Kabelliste

ABCDEFGHI
1KabelnummerAderzahl
2i.111.1014i.111.101/1i.111.101/2i.111.101/3i.111.101/4
3i.111.1025i.111.102/1i.111.102/2i.111.102/3i.111.102/4i.111.102/5
4i.117.1013i.117.101/1i.117.101/2i.117.101/3
5i.117.1022i.117.102/1i.117.102/2
Formeln der Tabelle
ZelleFormel
D2=$A2&"/"&B2+SPALTE(A1)-B2
E2=WENN(D2="";"";WENN(RECHTS(D2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(B1)-$B2))
F2=WENN(E2="";"";WENN(RECHTS(E2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(C1)-$B2))
G2=WENN(F2="";"";WENN(RECHTS(F2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(D1)-$B2))
H2=WENN(G2="";"";WENN(RECHTS(G2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(E1)-$B2))
I2=WENN(H2="";"";WENN(RECHTS(H2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(F1)-$B2))

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Ab deinen nächsten Fragen tüftle ich mal. Sollte es aber auf VBA hinauslaufen, werde ich dir nicht helfen können.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hi,

in meinem vorigen Vorschlag habe ich nicht berücksichtigt, dass in deiner Beispieldatei noch zwei Einträge folgen. So müsste der Automatismus (nach Einbau einer Hilfsspalte C, die du einfach ausblenden kannst) klappen:

Kabelliste

ABCDEFGHIJ
2i.111.1014i.111.101/4i.111.101/1i.111.101/2i.111.101/3i.111.101/4i.111.101i.111.101
3i.111.1022i.111.102/2i.111.102/1i.111.102/2i.111.102i.111.102
4i.117.1012i.117.101/2i.117.101/1i.117.101/2i.117.101i.117.101
5i.117.1024i.117.102/4i.117.102/1i.117.102/2i.117.102/3i.117.102/4i.117.102i.117.102
Formeln der Tabelle
ZelleFormel
C2=$A2&"/"&B2
D2=$A2&"/"&B2+SPALTE(A1)-B2
E2=WENNFEHLER(WENN(D2=C2;"";WENN(ODER(D2=$A2;D2=$C2);$A2;WENN(RECHTS(D2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(B1)-$B2)));"")
F2=WENNFEHLER(WENN(E2=D2;"";WENN(ODER(E2=$A2;E2=$C2);$A2;WENN(RECHTS(E2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(C1)-$B2)));"")
G2=WENNFEHLER(WENN(F2=E2;"";WENN(ODER(F2=$A2;F2=$C2);$A2;WENN(RECHTS(F2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(D1)-$B2)));"")
H2=WENNFEHLER(WENN(G2=F2;"";WENN(ODER(G2=$A2;G2=$C2);$A2;WENN(RECHTS(G2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(E1)-$B2)));"")
I2=WENNFEHLER(WENN(H2=G2;"";WENN(ODER(H2=$A2;H2=$C2);$A2;WENN(RECHTS(H2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(F1)-$B2)));"")
J2=WENNFEHLER(WENN(I2=H2;"";WENN(ODER(I2=$A2;I2=$C2);$A2;WENN(RECHTS(I2;1)*1>=$B2;"";$A2&"/"&$B2+SPALTE(G1)-$B2)));"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Erkläre mir doch bitte noch die Logik, nach deren die Einträge in die Tabellen Seite 1, Seite 2 usw. erfolgen. Hier komme ich nicht dahinter.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • WeisserWolf611
Antworten Top
#4
Hallo Günter,

bevor du weitermachst:

Erstmal vielen Dank für deine Unterstützung!
Der rechte Teil der Tabelle enthielt einen kleinen Fehler in den Spalten H & I. Dort sollte eigentlich wirklich nur die Kabelnummer aus Spalte A stehen. Da kamen zwei Fehler auf einmal.
Dedankenfehler.

Ich wollte den rechten Teil so fertig machen, das dort alles generiert wird, aber das war nich konsequent zu ende gemacht.

Später im Ausdruck brauche ich die Spalten D-G und A jeweils 2x. Deswegen könnten H&I eigentlich entfallen.

Die kabel haben nur entweder 2 oder 4 Adern. Nicht mehr und nicht weniger.
Ich mach das gleich nochmal neu und werd in der excel-Datei etwas kommentieren, dann wird es hoffentlich übersichtlicher, was ich vorhabe. Sorry dafür!

EDIT:

So schnell nochmal neu angefertigt. Die Kabelliste ist immer unterschiedlich lang, mal mehr mal weniger Kabel mit 4 Adern.
Daher muss das ganze intelligent sein, weshalb ich vermute ohne VBA geht da gar nichts :(

Ich habs in der Datei nochmal versucht zu erklären, irgendwie ist das gar nicht so einfach es für Außenstehende so zu formulieren, das es ohne Probleme verstanden werden kann

.xls   LWL-Liste.xls (Größe: 128 KB / Downloads: 4)
Antworten Top
#5
So, ich habe dir erst einmal für die Kabelliste ein etwas anderes Layout einschließlich anderer Formeln spendiert.
Wegen der Intelligenten Liste einfach nur in Spalte_A und Spalte_B den Wert eingeben, der Rest wird dann automatisch ausgefüllt.

Ich muss jetzt erst einmal los Richtung Kundschaft, mal sehen, ob ich nachher noch Zeit für die restlichen Aufgaben finden ... Angel


Angehängte Dateien
.xlsx   LWL-Liste.xlsx (Größe: 1,02 MB / Downloads: 5)
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
[-] Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:
  • WeisserWolf611
Antworten Top
#6
Hi Weisser Wolf,

mein Namensvetter hat dir ja ebenfalls eine Lösung (imho die bessere) zu deiner ersten Frage gepostet.

Nun zu deinem zweiten Teil. Da würde mich interessieren, ob die Aderbeschriftung tatsächlich an den Kabeln angebracht wird. Falls ich mit meiner Vermutung richtig liege, dann würde es doch genügen, deine Liste zweimal auszudrucken.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#7
Hallo,

ich habe auch etwas rumgebastelt.

Die Aderbeschriftung in der Tabelle Kabelliste wird bei mir per Vba erzeugt und sieht erweitert so aus:

Arbeitsblatt mit dem Namen 'Kabelliste'
 ABCDEFGHIJKLM
1KabelnummerAderzahl Aderbeschriftung
2i.111.1014 i.111.101i.111.101/1i.111.101/2i.111.101/3i.111.101/4i.111.101i.111.101/1i.111.101/2i.111.101/3i.111.101/4
3i.111.1022 i.111.102i.111.102/1i.111.102/2i.111.102i.111.102/1i.111.102/2    
4i.117.1012 i.117.101i.117.101/1i.117.101/2i.117.101i.117.101/1i.117.101/2    
5i.117.1022 i.117.102i.117.102/1i.117.102/2i.117.102i.117.102/1i.117.102/2    
6i.401.1014 i.401.101i.401.101/1i.401.101/2i.401.101/3i.401.101/4i.401.101i.401.101/1i.401.101/2i.401.101/3i.401.101/4
7i.401.1022 i.401.102i.401.102/1i.401.102/2i.401.102i.401.102/1i.401.102/2    
8i.401.1032 i.401.103i.401.103/1i.401.103/2i.401.103i.401.103/1i.401.103/2    
9i.401.1044 i.401.104i.401.104/1i.401.104/2i.401.104/3i.401.104/4i.401.104i.401.104/1i.401.104/2i.401.104/3i.401.104/4
10i.401.1054 i.401.105i.401.105/1i.401.105/2i.401.105/3i.401.105/4i.401.105i.401.105/1i.401.105/2i.401.105/3i.401.105/4
11i.401.1074 i.401.107i.401.107/1i.401.107/2i.401.107/3i.401.107/4i.401.107i.401.107/1i.401.107/2i.401.107/3i.401.107/4
12i.402.1014 i.402.101i.402.101/1i.402.101/2i.402.101/3i.402.101/4i.402.101i.402.101/1i.402.101/2i.402.101/3i.402.101/4
13i.402.1022 i.402.102i.402.102/1i.402.102/2i.402.102i.402.102/1i.402.102/2    
14i.402.1032 i.402.103i.402.103/1i.402.103/2i.402.103i.402.103/1i.402.103/2    
15i.402.1042 i.402.104i.402.104/1i.402.104/2i.402.104i.402.104/1i.402.104/2    
16i.402.1054 i.402.105i.402.105/1i.402.105/2i.402.105/3i.402.105/4i.402.105i.402.105/1i.402.105/2i.402.105/3i.402.105/4
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Anhand dieser Liste wird dann auf die Seiten verteilt.

Obiges aussehen und die Verteilung auf die Seiten erfolgt mit folgendem Code:

Code:
Option Explicit

Sub verteilen()
 Dim lngLetzte As Long
 Dim gesamtAnzahl As Long
 Dim anzahlSeiten As Long
 Dim i As Long
 Dim j As Long
 Dim k As Long
 Dim Seite As Long
 Dim Spalte As Long
 Dim Zeile As Long
 
 Application.ScreenUpdating = False
 With Worksheets("Kabelliste")
   lngLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
   gesamtAnzahl = Application.WorksheetFunction.Sum(.Range("B2:B" & lngLetzte)) * 2 + (lngLetzte - 1) * 2
   anzahlSeiten = Application.WorksheetFunction.RoundUp(gesamtAnzahl / 88, 0)
   .Range("D2:M" & lngLetzte).ClearContents
   For i = 2 To lngLetzte
     .Cells(i, 4) = .Cells(i, 1)
     For j = 1 To .Cells(i, 2)
       .Cells(i, j + 4) = .Cells(i, 1) & "/" & j
     Next j
     If .Cells(i, 2) = 4 Then
       .Range(.Cells(i, 9), .Cells(i, 13)).Value = .Range(.Cells(i, 4), .Cells(i, 8)).Value
     Else
       .Range(.Cells(i, 7), .Cells(i, 9)).Value = .Range(.Cells(i, 4), .Cells(i, 6)).Value
     End If
    Next i
 End With

 j = 0
 i = 0

 For Seite = 1 To anzahlSeiten
   With Sheets("Seite_" & Seite)
   Spalte = 0
   Zeile = 0
     Do While i <= lngLetzte And k < 88
       k = k + 1
       j = j + 1
       Spalte = Spalte + 1
       .Cells(Zeile + 2, Spalte) = Sheets("Kabelliste").Cells(i + 2, j + 3).Value
       If Sheets("Kabelliste").Cells(i + 2, j + 4) = "" Then
         j = 0
         i = i + 1
       End If
       If Spalte = 11 Then
         Spalte = 0
         Zeile = Zeile + 3
       End If
     Loop
   End With
   k = 0
 Next Seite
 Application.ScreenUpdating = True
End Sub

Ich verstehe nur nicht, warum Du in den Seiten 11 Spalten ausfüülen lässt, wo doch die Werte in der Aderliste in 6 oder 10 Spalten versteilt stehen können.
Das wäre meiner Meinung nach etwas strucktruierter.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • WeisserWolf611
Antworten Top
#8
(07.01.2016, 19:39)WillWissen schrieb: mein Namensvetter hat dir ja ebenfalls eine Lösung (imho die bessere) zu deiner ersten Frage gepostet.

Na ja, das beweist doch nur eines:
Je besser und vor allen Dingen vollständiger die Problembeschreibung (Lastenheft) ist, um so besser kann durch uns Helfer eine Lösung erstellt werden.
Ich bin ja ziemlich spät eingestiegen ...
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#9
Ich bin grad ganz überwältigt von soviel freundlicher Unterstützung :)
Ich werde mir das ganze erstmal nach und nach ansehen und versuchen zu verstehen.
Im Laufe des Tages werde ich nocheinmal Stellung nehmen :)


Zitat:atilla


Ich verstehe nur nicht, warum Du in den Seiten 11 Spalten ausfüülen lässt, wo doch die Werte in der Aderliste in 6 oder 10 Spalten versteilt stehen können.
Das wäre meiner Meinung nach  etwas strucktruierter.
Das ist ganz einfach: Die Folie auf die das ganze gedruckt wird, hat nunmal 11 Spalten. Da ein Blatt 5,39€ kostet, will ich natürlich so wenig wie möglich verschwenden. :)
Antworten Top
#10
So. Es hat doch etwas länger gedauert, als ich ursprünglich gedacht hatte. :20: 

Aber jetzt ist der Zeitpunkt gekommen, wo ich sagen kann, ich hab eure Lösungen verstanden und kann sie auch auf andere Dinge anwenden, das ist mir wichtig.
Nur Copy/Paste und funktioniert ist schön, aber nicht Sinn und Zweck der Übung.

@GMG-CC und @WillWissen: Vielen Dank an euch für eure Verbesserung meiner Tabelle. In diesem Fall nutze ich sie zwar nicht, aber ich konnte damit noch die ein oder andere Tabelle verfeinern. :18:

@atilla: Auch dir vielen Dank für deine Lösung. Letztendlich habe ich viel Zeit gebraucht um dahinter zukommen was dein Code zu welchem Zeitpunkt eigentlich macht. Aber ich habs irgendwie doch hinbekommen :18:

Wie gesagt VIELEN DANK an euch für die Unterstützung. Ich bin um ein vielfaches schlauer geworden :)


Kann man das Thema als erledigt makieren?!
Antworten Top


Gehe zu:


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