Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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
Inhaltsverzeichnis

mehrere Sheets in neue Datei

mehrere Sheets in neue Datei
10.06.2016 14:18:56
Christien
Hallo liebes Forum,
ich bräuchte mal wieder eure Unterstützung. Ich habe ein realtiv umfangreiches Problem und versuche nun nach und nach die Probleme zu lösen.
Könntet ihr mir vllt sagen, wie ich bei dem folgenden kleinen Problem weiter komme?
Ich habe eine Excel-Datei, bei der ich nach einem Fragebogen ausleiten möchte. Dafür möchte ich zunächst alle Tabellenblätter in eine neue Datei kopieren, welche dann sortiert wird. Bisher ist es mir nur gelungen ein Tabellenblatt in die neue Datei zu bekommen, wie mache ich das mit mehreren? Bei mir kommt dann immer ein Fehler mit Listentrennzeichen oder ) einfügen. Habe da schon sämtliches probiert. Wäre über eine Hilfe sehr dankbar. Wie ginge es bspw mit Blatt 1 und Blatt 3?
Private Sub CheckBox41_Click()
Application.ScreenUpdating = False
MsgBox "Eine neue Datei wird angelegt. Bestätigen mit OK !"
'Tabelle kopieren in neues Blatt
Application.ScreenUpdating = False
Sheets("Blatt2").Select
Sheets("Blatt2").Copy
Sheets("Blatt2").Name = neu & Format(Now, "DD.MM.YYYY")
Absicherung 'nach ra sortieren
Anzeige.Hide
End Sub

Zweites Problem liegt bei der Sortierung. Ich möchte, dass die neue Datei in dem Blatt2 sortiert wird, aber nur dort und nicht in der alten Datei. In dem Fall wird nach der Spalte D sortiert, das soll sich nach einer Auswahl über ein Formular richten. Folgenden Code habe ich dazu. Ich weiß nur nicht, wie ich den in die neue Datei bekomme. Vielleicht kann mir da ja auch jemand helfen. Danke.
Private Sub CheckBox41_Click()
ThisWorkbook.Worksheets("Blatt2").Activate
Range("A20:DG566" & ActiveSheet.UsedRange.Rows.Count).Select
Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("D2").Select
End Sub

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Sheets in neue Datei
10.06.2016 15:01:07
Fennek
Hallo,
"Fragebogen" klingt interessant, da würde ich dich gerne unterstützen.
Aber ich verstehe deine Beschreibung nicht, "einem Fragebogen ausleiten", da kenne ich den Begriff nicht und kann nicht einmal ahnen, wie der Datenstrom sein soll.
Meine Kenntnis: egal wie der FRagebogen aufgebaut ist, die Antworten werden in einem Datensatz zusammengefasst, also eine Zeile und so viele Spalte wie notwendig.
mfg

AW: mehrere Sheets in neue Datei
10.06.2016 15:37:06
Christien
Hallo Fennek,
Danke für deine Rückmeldung. Es wäre toll wenn ich das die Tage gelöst bekomme.
In meiner Datei habe ich in den 566 Zeilen verschiedene Themen die ein Fahrzeug betreffen. In den Spalten stehen dann Fragen zu den Themen, Fahrer, Beifahrer, Fond, Bewertung etc. Je nachdem ob der Fragebogen für einen Fahrer oder einen Beifahrer angefertigt wird, sollen die Zeilen neu sortiert werden. Das liegt daran, dass beispielsweise die Fragen für einen Fahrer ganz andere Themen beinhalten als die für den Fond-Mitfahrer. Ich habe es recht einfach gehalten und einfach in den Spalten Fahrer etc Zahlen eingegeben. Heißt Thema x ist bei Fahrer die Nummer 1 und bei Fond Insassen zB Nummer 4.
Über VBA habe ich dann ein Formular erstellt wo ich nach Fahrer etc auswählen kann, um damit einen "Fragebogen auszuleiten". Bei der Checkbox41 habe ich beispielsweise Fahrer angeklickt und möchte nun, dass eine neue Datei erstellt wird die quasi genauso aufgebaut ist wie die erste Datei. Bisher hat es nur mir mit dem einen Tabellenblatt funktioniert. Wie ginge es denn mit der ganzen Datei oder mit mehreren Tabellenblättern?
Zudem soll diese neue Datei die nach den Themen für den jeweiligen Insassen sortierte Tabelle ausgeben. Das wäre das zweite Thema. Die Sortierung funktioniert aber es sortiert die erste Datei mit, aber es soll ausschließlich die neue Datei sortiert werden.
Hoffe es ist etwas klarer geworden :) Danke :)

Anzeige
AW: mehrere Sheets in neue Datei
10.06.2016 15:47:54
Fennek
Hallo,
ok, etwas deutlicher, aber ohne Beispiel kann ich nur ahnen.
Wenn du alle Sortierungen richtig in einem neuen Blatt geschafft hast, kann man dieses Blatt mit Sheet.move in eine neue Datei bringen. Für mich als "mäßig geübten" ist es notwendig das im enzelschritt-Modus F8 zu machen, um genau zu sehen, wohin der Fokus springt.
mfg
(Das Thema ist vermutlich zu komplex für mich)

AW: mehrere Sheets in neue Datei
10.06.2016 15:57:27
Christien
Naja wie gesagt das mit der Sortierung klappt ja nicht wie gewollt, deshalb hab ich das oben ja einmal aufgeführt, damit vielleicht jemand sieht was ich daran ändern müsste oder ergänzen kann. Bisher ändert er nur die "Ursprungsdatei" und das ist ja nicht mehr rückgängig zu machen über Makros, daher soll es erst in einer neuen Datei sortiert werden. Ich kann/darf leider nicht die ganze Datei schicken, aber was bräuchtest du zum weiteren Verständnis? Bis Sonntag brauch ich das Ergebnis, also brauch unbedingt eure Hilfe o.O

Anzeige
warum schon wieder neuer Thread? owT
10.06.2016 18:15:31
MB12
.

AW: warum schon wieder neuer Thread? owT
10.06.2016 19:28:26
Christien
Zum einen hab ich den alten nicht mehr gefunden, sorry dafür und weil ich jetzt konkrete Codes geschrieben habe und gern zu denen Hilfe hätte. Hast du denn dazu Lösungsvorschläge? Danke dir.

AW: warum schon wieder neuer Thread? owT
10.06.2016 20:08:19
MB12
tja, Christien, ich habe mit deinen Posts die gleichen Probleme wie alle anderen. Geh doch mal besser auf die Hilfswilligen ein.
Und helfen kann ich nur mit Hinweisen: Threads bleiben offen, bis ca. 5 Tage keine Anwort mehr gekommen ist.
Du findest deine aktiven über die Forumliste, dann rechts in Listensuche deinen eigenen Nick eingeben.
Viel Glück, Margarete

Anzeige
AW: warum schon wieder neuer Thread? owT
10.06.2016 20:35:15
Christien
Ich verstehe die Kritik gerade nicht. Ich möchte gern auf die Hilfswilligen eingehen. Was an meinen Posts ist für alle problematisch? Ich habe so weit es mir möglich ist mein Problem beschrieben. Leider weiß ich bei meinem Problem nicht weiter und habe nur nach Hilfe gebeten. Ich hatte zweier meiner Codes online gestellt in der Hoffnung dass mir das jemand korrigieren oder erweitern kann, damit mein Problem endlich gelöst ist.
Ich hoffe immer noch auf Unterstützung. Danke

Angebot zur Güte...
10.06.2016 20:42:19
Michael
Christien,
...obwohl Du Dich auf meine letzte Antwort in Deinem vorigen Thread nicht mehr gemeldet hast - ich wollte helfen, aber wenn Du Dich nicht mehr meldest interessiert es auch nicht.
Hier Dein "Problem-Code" von mir überarbeitet mit Kommentaren - LIES DIE BITTE GENAU!
Private Sub CheckBox41_Click()
'Blatt 1 - 3 DIESER Mappe (Mappe aus der das Makro aufgerufen wird)
'in eine neue Mappe kopieren. In der neuen Mappe Blatt 2 sortieren
'Variablendeklarationen
Dim WbQ As Workbook 'Quell-Mappe
Dim WbZ As Workbook 'Ziel-Mappe
Dim Ws As Worksheet 'Tabellenblatt als Objekt (s.u.)
Dim WsZ As Worksheet 'Ziel-Tabellenblatt (s.u.)
Dim i As Long 'Tabellenblatt über Index ansprechen (s.u.)
Dim Chk As Variant 'Prüf-Variable (Msgbox)
Application.ScreenUpdating = False
'Userabfrage, Klick auf Abbruch steigt aus Makro aus...
Chk = MsgBox("Eine neue Datei wird angelegt. OK?", vbOKCancel, _
"Bitte bestätigen...")
If Chk = vbCancel Then Exit Sub
Set WbQ = ThisWorkbook 'Diese Mappe wird zur Quell-Mappe
'Bei Klick auf Okay geht's ab hier weiter...
Set WbZ = Workbooks.Add 'Eine neue Mappe hinzufügen = Ziel-Mappe
'In der Quell-Mappe
With WbQ
'Blätter 1 bis 3, gem. Reihenfolge in der Mappe,
'kopieren...
For i = 1 To 3 'anpassen
'Das kopierte Blatt wird in der Zielmappe jew. ans Ende kopiert
.Worksheets(i).Copy After:=WbZ.Worksheets(WbZ.Worksheets.Count)
Next i
End With
'    '---- Alternativ: bestimmte Blätter (nach Blattnamen) kopieren
'    With WbQ
'        'Alle Blätter in Quell-Mappe durchgehen
'        For Each Ws In .Worksheets
'            'jeweiligen Blattnamen prüfen...
'            Select Case Ws.Name
'                Case Is = "Blatt1", "Blatt2", "Blatt3"
'                    'Das jew. Blatt in der Zielmappe ans Ende kopieren
'                    Ws.Copy After:=WbZ.Worksheets(WbZ.Worksheets.Count)
'                Case Else
'                    ' Hier könnte etwas mit Blättern passieren, die anders
'                    'heißen als Blatt1, Blatt2 oder Blatt3
'            End Select
'        Next Ws
'    End With
'    '---- Alternativ ----
'In der Zielmappe
With WbZ
'Mit dem Tabellenblatt "Blatt2"
Set WsZ = .Worksheets("Blatt2") 'anpassen
With WsZ
'Blatt2 umbenennen
'Wie die Variable neu definiert ist, hast Du nicht verraten
'Wenn aber im Blattnamen "neu" als String stehen soll, muss
'es so eingepflegt werden...
.Name = "neu" & Format(Now, "DD.MM.YYYY")
'Ich habe keine Ahnung worauf sich diese Aufrufe beziehen,
'hab sie jetzt aber mal auskommentiert drinnen gelassen
'Absicherung 'nach ra sortieren
'Anzeige.Hide
'Ab hier Blatt2 in der Zielmappe sortieren
With .Sort
.SortFields.Clear
'Welche Spalte ist das Sortier-Kriterium
'anpassen
'aktuell: C2:Cx (letzte gefüllte Zelle in C)
'B2:Bx wäre bspw.: Range("B2:B" & WsZ.Cells(WsZ.Rows.Count, 2).End(xlUp).Row)
'--> Beachte die geänderte Spaltenzahl nach (WsZ.Rows.Count, !)
.SortFields.Add Key:=WsZ.Range("C2:C" & WsZ.Cells(WsZ.Rows.Count, 3).End(xlUp). _
Row), _
SortOn:=xlSortOnValues, Order:=xlAscending
'Welcher Bereich wird sortiert
'anpassen
'aktuell: A1:Ex (letzte gefüllte Zelle in E)
'Anpassen nach obigem Muster
.SetRange WsZ.Range("A1:E" & WsZ.Cells(WsZ.Rows.Count, 5).End(xlUp).Row)
'Gibt's eine Überschrift in dem Bereich (die dann nicht mitsortiert wird)
'.Header = xlNo ' Nein
.Header = xlYes ' Ja
.Apply 'Sortierung anwenden
End With
'.Activate 'Optional das Ziel-Blatt aktivieren
End With
End With
'Aufräumen nach Durchlauf
Set WbQ = Nothing
Set WbZ = Nothing
'Set Ws = Nothing 'nur erforderlich, wenn oben For Each Ws... genutzt wird, sonst raus!
Set WsZ = Nothing
Application.ScreenUpdating = True
End Sub
Das Problem mit Deinem Faden ist nach wie vor, dass Du entweder gar keine konkreten Infos gibst, oder Deine Code-Versuche ohne Kontext postest.
Aber ich glaube ich habe soweit halbwegs verstanden was Du willst, ich denke mit den Kommentaren solltest Du den o.a. Code auch anpassen können!
Schönes Wochenende und lg
Michael

Anzeige
AW: Angebot zur Güte...
10.06.2016 21:08:55
Christien
Michael, ich danke dir herzlichst und setze mich direkt ran.
Dass ich auf deine Nachricht in dem letzten Post nicht geantwortet habe, war mir nicht bewusst und keine Absicht. Ich habe da keine Benachrichtigung aktiviert und den Post nicht mehr gefunden. Sorry für meine verpasste Chance, so hätte ich vermutlich früher deine Hilfe in Anspruch nehmen können.
Die Kritik mit den wenigen Infos nehme ich an, ich versuche in Zukunft immer noch genauer das Problem zu schildern. Hier in dem Pfad habe ich auf die Nachricht vom Vorredner Fennek (meines Erachtens) das Problem noch genauer erklärt aber vielleicht immer noch nicht ausreichend. Ich werde darauf achten.
Vielen Dank auf jeden Fall für deine ausführliche Beschreibung. Ich hoffe ich bekomme es hin, ansonsten schreibe ich hier in dem Pfad wieder, um keinen weiteren Post zu eröffnen :) danke !!!!

Anzeige
AW: Angebot zur Güte...
10.06.2016 21:12:15
Christien
Erstmal keine weiteren Fragen. Danke :)

Schon gut...
10.06.2016 21:13:00
Michael
Christien,
...bin am Wochenende selten im Forum. Falls Du noch was brauchst, ich schau vermutlich am Montag hier wieder rein.
LG
Michael

AW: Schon gut...
12.06.2016 18:48:43
Chris
https://www.herber.de/bbs/user/106183.xlsm
Ich habe hier Teile meiner Excel hochgeladen, wo auch die relevanten VBA Codes für folgende Probleme drin sind. Ich hoffe, dass mein Problem so deutlicher wird.
1. Also Michael, ich hab deinen Code angepasst, aber der funktioniert in diesem Konstrukt so leider nicht, ich habe beide Varianten ausprobiert. Ich habe sie auch in einer anderen Datei probiert, da gingen sie aber!! In dieser Datei kommt immer der Laufzeitfehler 9. Ich vermute das liegt bei mir an den vielen Zellbezügen? Ich habe auch Dropdwon-Listen in fast jeder Spalte. (Also pro Spalte habe ich verschiedene Dropdown Fkt, mal über 3 Zeilen gezogen, mal über 5, mal gar keine Dropdown.) Ist in dem Sheet reale Absicherung immer unter vorformulierte Bemerkung. Kann es daran liegen? Werden bei der Sortierung die Dropwon-Listen auch mit sortiert, oder verschiebt sich dann alles?
2. Zudem ist mir aufgefallen, dass ich auch alle VBA Codes in der neuen Datei benötige, geht das, also kann man einen Code programmieren, mit dem alle Codes aus der Datei in eine neue Datei übernommen werden?
3. Dann findet ihr unter Modul 6 einen Versuch eine Maske für ein Diagramm zu erstellen. Diese Möglichkeit soll auf jeden Fall in der zweiten Datei enthalten sein, daher benötige ich die Codes dort auf jeden Fall...Ich hatte vor, dass wenn ich im Sheet reale Absicherung unter "Titel Kriterien" über die Filterfunktion etwas auswähle, dass zu diesem Thema ein Diagramm erstellt wird. Dazu sollte alle "Bewertungen" , die jeweils von 1 bis 4 gehen, von den jeweiligen Personen (plus dazugehöriges Geschlecht und Perzentil) kopiert werden und in die Maske eingefügt werden, am besten automatisch. Und beim Klick auf "Diagramm anzeigen" sollte automatisch ein gestapeltes Diagramm angezeigt werden, das auf der x-Achse in "gut", "eher gut", "eher schlecht" und "schlecht" aufgeteilt ist, wie in dem Beispiel gezeigt. Ich hoffe ihr könnt mir helfen. Danke!!!!

Anzeige
AW: Schon gut...
13.06.2016 09:57:07
Michael
Christien,
...das kannst Du nicht ernst meinen, oder? Die Datei, die Du jetzt hochgeladen hast, ist für Außenstehende völliges Chaos, und wie es mir auf den ersten Blick scheint auch für sich genommen (leere Module, tlw. eigenartige Codes, der Tabellenaufbau ist nicht nachvollziehbar...)
Michael, ich hab deinen Code angepasst, aber der funktioniert in diesem Konstrukt so leider nicht
Das wundert mich nicht, das hat mit den von Dir ursprünglich angefragten Umständen kaum noch was zu
tun.
Alles in Allem: Um Dir hier zu helfen, braucht man a) eine Menge mehr Kontext, welche Aufgaben mit der Mappe, den Tabellen etc. erfüllt werden müssen und b) muss man hier massiv einsteigen - ich geh' davon aus, dass man die Mappe erstmal neu einrichten muss um dann vernünftig VBA-Funktionalität einzupflegen.
Das klingt für mich nach viel Arbeit und nicht mehr im Rahmen des Forums vertretbar. Ich steige hier aus! Ich stell Dich auf offen, vielleicht will hier ja jemand anderer noch einsteigen.
Viel Erfolg
Michael

Anzeige
AW: Schon gut...
13.06.2016 10:12:08
Christien
Ich weiß, dass es viel Arbeit ist, aber ich hoffe trotzdem auf Hilfe,da du ja schon etwas in der Materie drin bist, kannst du mir denn ggfs dabei helfen, dass ich mein Problem 1 und 2 in den Griff bekomme? Heißt dass ich die gewünschten Tabellenblätter kopiert bekomme mit sämtlichen Codes, damit die in der neuen Datei funktionieren?
Wäre wirklich unheimlich nett. Liebe Grüße

AW: Schon gut...
13.06.2016 11:31:11
Michael
Hallo!
da du ja schon etwas in der Materie drin bist
Der war gut. Den Code, den Du von mir erhalten hast, war auf einen Standardfall bezogen. Von dieser Bsp-Mappe hab ich keinen Plan.
Wenn Codes im Tabellenblatt-Modul stehen, werden die automatisch mitkopiert. Codes in allgemeinen Modulen oder im Modul der Arbeitsmappe werden nicht automatisch kopiert. Du könntest entweder immer die GESAMTE Mappe kopieren oder auch überlegen, ob Du nicht mit einer Vorlagen-Datei mit Makros (.xlsm) arbeitest; da steht Dir dann immer eine frische Datei mit den jeweiligen Makros zur Verfügung.
LG
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige