Autor
|
Thema: Blatt kopieren ohne Formeln und Verknüpfungen (5422 mal gelesen)
|
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 19. Feb. 2007 10:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich bin absoluter Anfänger und bastel mir aus Euren Lösungen etwas zusammen, habe aber keine Ahnung vom programmieren. Ich habe mir mit Tastaturaufzeichnung das kopieren von Werten in ein anderes Blatt erstellt um dem Lieferanten keine Verknüpfungen und Formeln zu senden. Nun möchte ich dieses kopieren in eine Vorlage über einen Button oder ein Script machen. Wenn ich das von der Tastaturaufz. in den Quellcode kopiere geht nix mehr und ich habe auch keinen Plan was ich ändern soll. Habt Ihr einen Lösungsvorschlag für mich? Sheets("Bestellung").Select Application.CutCopyMode = False Sheets("Bestellung").Copy Before:=Sheets(2) Sheets("Bestellung").Select Range("A7:I11").Select Selection.Copy Sheets("Bestellung (2)").Select Range("A7:I11").Select Sheets("Bestellung").Select Application.CutCopyMode = False Range("I7:I13").Select Selection.Copy Sheets("Bestellung (2)").Select Range("I7:I13").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Bestellung").Select Range("A7:A11").Select Application.CutCopyMode = False Selection.Copy Sheets("Bestellung (2)").Select Range("A7:A11").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Bestellung").Select Range("H11").Select Application.CutCopyMode = False Selection.Copy Sheets("Bestellung (2)").Select Range("H11").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Bestellung").Select Range("F2").Select Application.CutCopyMode = False Selection.Copy Sheets("Bestellung (2)").Select Range("F2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Bestellung").Select Application.CutCopyMode = False ActiveWindow.SelectedSheets.Delete Sheets("Bestellung (2)").Select Sheets("Bestellung (2)").Name = "Bestellung" Sheets("Bestellung").Select Range("K13").Select Sheets("Typ_B").Select Columns("I:N").Select Selection.EntireColumn.Hidden = True Rows("8:99").Select Selection.Sort Key1:=Range("E8"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Typ_C").Select Columns("I:N").Select Selection.EntireColumn.Hidden = True Rows("8:99").Select Selection.Sort Key1:=Range("E8"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Typ_E").Select Columns("I:N").Select Selection.EntireColumn.Hidden = True Rows("8:99").Select Selection.Sort Key1:=Range("E8"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Typ_F").Select Columns("I:N").Select Selection.EntireColumn.Hidden = True Rows("8:99").Select Selection.Sort Key1:=Range("E8"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Typ_G").Select Columns("I:N").Select Selection.EntireColumn.Hidden = True Rows("8:99").Select Selection.Sort Key1:=Range("E8"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Sheets("Bestellung").Select End Sub Das alles nur um das der Lieferant das Dokument öffnet ohne Verknüpfungen zu haben und auch keine Formeln/Funktionen in dem Dokument findet. Gruß thewolff Wie kann ich einen Button erzeugen und dem das Tastaturmakro zuweisen? ------------------ Gruß Marco 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: 19. Feb. 2007 11:04 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Hallo Marco, ohne mir Deinen Code angesehen zu haben (Zeitmangel): Was hältst Du von Bordmitteln? Kopiere Dir mal die Sachen, die Du weitergeben magst (Strg + c), und nimm dann zum Einfügen die rechte Maustaste - Inhalte einfügen - Werte. Ist das vielleicht ausreichend? [thedit]Oder Du schützt das Blatt und setzt bei den Zellen mit Formeln unter den Eigenschaften - Schutz bei "Ausgeblendet" ein Häkchen?! Und die Sache mit "Inhalte einfügen" kannste auch schnell mit dem Makro-Recorder aufzeichnen [/thedit] ------------------ Gruß, Frederik [Diese Nachricht wurde von Paulchen am 19. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 19. Feb. 2007 11:08 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Hallo Marco, Hab auch mal ein Makro aufgezeichnet. Diese Makro kopiert das aktuelle Blatt (Register) in ein neues File, kopiert anschliessend alle Zellen und fügt diese wieder ein als Wert. **************************** Sheets("Tabelle1").Select Sheets("Tabelle1").Copy Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select End Sub **************************** Ist kein hochstehendes Makro, sollte aber funktionieren. Zu deiner Frage. Wo willst du diesen Button haben, auf dem Excel-Blatt oder in der Symbolleiste?
BTW: das was Frederik (Paulchen) geschrieben hat ist in diesem Makro umgesetzt. Gruss Mike ------------------
The Power Of Dreams Schreib mal wieder 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: 19. Feb. 2007 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Zitat: Original erstellt von Oberli Mike: Zu deiner Frage. Wo willst du diesen Button haben, auf dem Excel-Blatt oder in der Symbolleiste?
Ja, wäre wichtig zu wissen! Willst Du das Makro ausführen oder Dein Lieferant? Hoffentlich nur Du, und Du möchtest den Schalter einfach zur "Arbeitserleichterung"? Sonst müsstest Du die Symbolleiste "weitergeben", was die Sache verkomplizieren würde... ------------------ Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 19. Feb. 2007 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Tag zusammen, habe sowas für eigene Zwecke auch laufen, probiert es mal aus, vielleicht hilft es euch weiter.. Achtung: kopiert alles von Blatt1 auf Blatt2, wenn da schon was draufsteht: Pech gehabt, wird überschrieben.. Speichert danach die Mappe unter anderen Namen ab. Code: Option Explicit Public Sub Export() Dim strNeuerName As String Dim strPfad As String Application.DisplayAlerts = FalsestrNeuerName = "_Export_" & ActiveWorkbook.Name strPfad = ActiveWorkbook.Path 'sheet sichtbar machen, falls noch nicht der Fall Sheets(2).Visible = True 'sheet1 kopieren Sheets(1).Cells.Copy Sheets(1).Cells(1, 1).Select 'in sheet2 kopieren, nur Inhalte; Formate folgen im nächsten Schritt Sheets(2).Activate Sheets(2).Cells.Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False 'Formatierung kopieren Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets(2).Cells(1, 1).Select 'macht Blatt nur unsichtbar, vielleicht braucht man es ja nochmal ;-) 'ansonsten: sheets(1).delete Sheets(1).Visible = xlVeryHidden Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ strPfad & "\" & strNeuerName, FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Application.DisplayAlerts = True End Sub
das Makro auf einen button in der Mappe legen und schon is nett ;-) Ob Du jetzt aber wirklich nen button dafür brauchst? normal reicht auch ne Tastenkombi oder händischer Aufruf über Alt+F8nicht schön, aber funzt. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 19. Feb. 2007 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
"Wie kann ich einen button erzeugen?" Symbolleiste VisualBasic einblenden in den Entwurfsmodus wechseln (das ist das kleine Dreieck mit Stift und Zollstock) Die Steuerelemente-box öffnen (HammerundSchraubschlüssel) button wählen im sheet ein fenster aufziehen -> da ist der button mit RMT auf den button -> "Code anzeigen" -> VB macht sich auf -> da rein das Makro kopieren Entwurfsmodus beenden (sonst kannste nicht auf den button klickern) fertig (?) ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... 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: 19. Feb. 2007 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
;-) habe gerade urlaub Code: Sub Values_dies_and_becomes_a_tomb() Dim aSNr As String Dim strNeuerName As String Dim strPfad As StringaSNr = ActiveSheet.Index 'Aktives Blatt merken strNeuerName = "_Export_" & ActiveSheet.Name &"_" strPfad = ActiveWorkbook.Path ActiveSheet.Copy after:=ActiveSheet 'Blatt ins Leichenzimmer transferieren ActiveSheet.Name = "Version vom " & Date & " " & Format(Time, "HH.MM.SS") 'Grab vergeben Cells.Copy 'Alle Zellen copieren Cells.PasteSpecial Paste:=xlValues 'munteres Formelsterben ThisWorkbook.Sheets(aSNr + 1).Move 'und das Blatt ins Grab schaufeln ;) ActiveWorkbook.SaveAs (strPfad & "/" & strNeuerName & Sheets(1).Name & ".xls") 'Dem Grab einen Namen vergeben (den Pfad anpassen) ActiveWorkbook.Close 'zuschütten aka Grab schliessen 'back to the Roots, äh Sheets End Sub
@Nicole, habe mir mal ein zwei Zeilen aus deinem Code geklaut ,-) [thedit]wenn ich schon Zeilen verwende, dann sollte ich sie auch einbauen ;-)[theditoff] [thedit2]Nicole machte mich aufmerksam, das der blattname zu lang würde -der fehler kommt weil ich den Tabellen namen mit einem führenden Leerzeichen vor Version im Tabellenblatt haben wollte, weil ich beim speichernamen ein & " " ersparen wollte - das geht so natürlich nicht ,)^^[theditoff] ------------------ Am Anfang war kein Licht - und Vater blickte Kalt literaturcafe /// ¡darkerradio! // und den passenden Play für WinampEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 19. Feb. 2007 12:42 <-- editieren / zitieren --> Unities abgeben:
Danke an alle, werde die Lösungsvorschläge testen. Ich möchte das "Makro" ausführen und nur dem Leiferanten eine Liste mit Zahlen und Text zusenden. Vielen Dank für die superschnelle und professionel Hilfe.
------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 19. Feb. 2007 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
Zitat: Hilft nicht ein einfaches Speichern unter TXT
jepp, und danach netterweise wieder umbennen in .xls, sonst würden sich wohl manche damit umbringen... aber wär das nicht viiiel zu einfach? außerdem gehen dabei doch leider sämtliche Formatierungen wie Hintergrund, Schriftgrößen oder Rahmen usw. flöten ;-) und drucken kann ja auch nicht die Lösung sein, wenn der Gegenüber die Tabelle irgendwie nutzen soll, und das wird er sollen, sonst hätte man eh 'ne pdf abgegeben und die Frage hier wäre nie gestellt worden ;-) ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
thewolff Mitglied
Beiträge: 140 Registriert: 03.06.2003
|
erstellt am: 20. Feb. 2007 09:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, das mit dem pdf habe ich "früher" gemacht, aber der Lieferant kann die Excel-Liste dann umsortieren bzw. auch die Felder exportieren in sein PPS. Da das Materialbestellen immer mehr in meinen Aufgabenbereich fällt und ich dieses optimieren möchte (um Zeit zu sparen) suche ich nach Lösungen und kann mir zur Zeit nur durch Tastaturmakros und/oder durch Hilfe/Beispiele in diesem Forum helfen. Ihr habt mir mit Euren vielen tollen Tipps super weitergeholfen. Ihr seid Excel-Profis......Hut ab. Gibt es von Seiten der Profis einige Tipps wie/wo ich Excel lernen kann, welche Bücher, URL's oder Downloads könnt Ihr mir (Blutjunger Anfänger) empfehlen? ------------------ Gruß Marco Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 20. Feb. 2007 09:49 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
|
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: 20. Feb. 2007 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für thewolff
|
Ex-Mitglied | |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|