Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
292to296
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
292to296
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblatt kopieren mit Marko

Tabellenblatt kopieren mit Marko
10.08.2003 11:20:41
Mario Bichler
Hallo,
wieder mal ein Problem !
Ich muss das aktive Arbeitblatt kopieren, oder den Inhalt in ein neues Blatt, das automatisch angelegt werden muss, einfügen. WICHTIG ist, dass nur Werte und Formate übernommen werden, Formeln nicht ! Das neue Blatt soll hinten an die Mappe.
Ein weiterer Makro soll das aktive Blatt kompl. mit allen Zellen mit Password (ohne Abfrage)schützen.
Und noch einer das Aktive Blatt wieder löschen.
Alle Vorgänge sollen im Hintergrund ablaufen ohne irgend welche Abfragen wie z.B. Blatt wirklich löschen oder Passwort eingeben.
Ich habe schon ein paar Sachen ausprobiert aber ohne Erfolg. Ich bin da etwas überfordert!!!!
Im voraus herzlichen Dank.
Gruss Mario

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt kopieren mit Marko
10.08.2003 11:42:25
Ramses
Hallo
so ganz ist mir nicht klar was du willst:
"Ein weiterer Makro soll das aktive Blatt kompl. mit allen Zellen mit Password (ohne Abfrage)schützen.
Und noch einer das Aktive Blatt wieder löschen."
Da kannst du das aktive Blatt auch gleich löschen und musst nicht vorher noch alles mit Passwort schützen.
Das folgende Makro macht folgendes:
Es verschiebt die aktive Tabelle ans Ende deiner Mappe, kopiert die ganze Tabelle und fügt nur Werte und Zahlenformate wieder ein.
That's it.

Sub Create_Value_Table()
ActiveSheet.Move After:=Sheets(Worksheets.Count)
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub

Gruss Rainer

Anzeige
AW: Tabellenblatt kopieren mit Marko
10.08.2003 14:03:52
Mario Bichler
Hallo Rainer,
ich fange noch einmal ganz von vorne an.
Ich habe u.a. ein Formular(Reklamationen) erstellt mit Firmenanschrift, Belegnummer, vorgefertigte Textabschnitte und Felder zum selbst ausfüllen, die der Benutzer auswählen kann. Diese Angaben werden unter Verweise in das Formular eingetragen. Das ausgefüllte Formular wird ausgedruckt (die einfachste Variante) ,weiterhin kann der Benutzer auswählen ob er das Blatt in der Arbeitmappe für weiter Vorgänge(gleiche Firma und Texte, es ändern sich nur Mengen) ablegen und ,oder nur eine Sicherheitskopie(mit Deiner Formel) erstellen möchte.
Das wichtigste Problem ist, der immer noch vorhandene Zellbezug der Kopie in der Arbeitmappe und der Sicherheitskopie. Ändere ich am originale Blatt Reklamationen die Daten (zwecks nächsten Auftrag) ändern sich auch die Angabe in der Sicherheitskopie und in der Kopie der Arbeitmappe.
Bis jetzt habe ich um dieses Problem zu umgehen, die Daten aus dem fertigen Original Reklamationen per Makro
a) Textgröße, Verbundene Zellen auf den Standart zurück gesetzt
b)einzeln kopiert und wieder unter Menü Bearbeiten/Inhalte einfügen nur Wert wieder eingelesen
c)und da nach die Zellformatierung (Textgröße, Verbundene Zellen usw.) für jede einzelnen Bereich wieder hergestellt.
...... sehr umständlich und aufwendig ....funktioniert aber...muss für jedes Formular extra erstellt werden.

Deshalb benötige ich am einfachsten ein Makro das eine Kopie, ohne jeglichen Zellbezug und in der gleichen Formatierung der Zellen und des Textes herstellt.(soll aussehen wie der Ausdruck)
Von dieser Seite kann dann ohne Probleme eine Sicherheitskopie, wenn möglich kompl. Schreibgeschütz mit Passwort ohne Passwortabfrage erstellt werden.
Wenn der Benutzer das Formular des öfteren so ausgefüllt benötigt (es ändern sich nur die Mengenangaben) darf es natürlich nicht geschützt werden. à deshalb dieses Makro einzeln
Wird das Formular nicht weiter so ausgefüllt benötig, soll es wieder gelöscht werden (Ohne Abfrage „Formular wirklich löschen“à deshalb dieses Makro einzeln
Da ich mehrer Formularvordrucke habe ist ein Makro, dass „nur“ eine Kopie herstellt ohne Bezüge zum Original, um ein vielfaches einfacher.
Ich weiß nicht ob das Möglich ist???
Ich hoffe ich habe mich diesmal deutlicher ausgedrückt.
In der jetzigen Formel zum Blatt verschieben bekomme ich eine Fehlermeldung!

Sub Create_Value_Table()
ActiveSheet.Move After:=Sheets(Worksheets.Count)
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub

Fehlermeldung
Laufzeitfehler1004
Die PasteSpecial-Methode des Range-Objekts konnte nicht ausgeführt werden
Gruss Mario

Anzeige
AW: Tabellenblatt kopieren mit Marko
10.08.2003 14:27:47
Ramses
Hallo,
die Fehlermeldung ist nicht nachvollziehbar.
Ist dein Tabellenblatt geschützt ? Dann musst du den Blattschutz vorher entfernen
Tut mir leid,... aber ich versteht immer noch weniger.
"Wenn der Benutzer das Formular des öfteren so ausgefüllt benötigt (es ändern sich nur die Mengenangaben) darf es natürlich nicht geschützt werden. à deshalb dieses Makro einzeln"
Erstelle doch einfach eine Vorlage und der Benutzer soll die Vorlage öffnen.,... oder
verstehe ich da was falsch.
"Wird das Formular nicht weiter so ausgefüllt benötig, soll es wieder gelöscht werden (Ohne Abfrage „Formular wirklich löschen“à deshalb dieses Makro einzeln"
Welches Formular ?
Meinst du damit die Arbeitsmappe oder die Tabelle in welche der User die Daten einträgt.
Gruss Rainer

Anzeige
AW: Tabellenblatt kopieren mit Marko
10.08.2003 15:34:49
Mario Bichler
Hallo,
danke für Deine schnell Antwort.
1."Erstelle doch einfach eine Vorlage und der Benutzer soll die Vorlage öffnen.,... oder
verstehe ich da was falsch."
....schon richtig, ich dach nur es währe einfacher da die Firmenadresse schon ausgelesen wurde. Ich gebe dir Recht und werde so machen. Mann darf nicht zu viel Denken, dann wird es zu kompliziert.
2.„Welches Formular ?
Meinst du damit die Arbeitsmappe oder die Tabelle in welche der User die Daten einträgt.“
... ich meine die erstellte Kopie vom Original ohne Zellbezug.
Ganz einfach ausgedrückt (hoffentlich) und am wichtigsten!!!
Wenn der Vordruck von Benutzer ausgefüllt wurde, soll eine Sicherheitskopie erstellt werden.
Diese Kopie muss auf anderen PC auch laufen, deshalb darf kein Zellbezug zum Vordruck vorhanden sein. Deine Formel zum speichern einer Sicherheitskopie klappt super, nur ist die Verknüpfung zum Vordruck noch vorhanden. Die Kopie funktioniert damit nicht auf anderen Rechnern. Es wird nicht nur im Vordruck eine andere Firmenanschrift, sondern auch in der Sicherheitskopie, wenn ein Benutzer diese ändert eingetragen. Das darf nicht passieren.
Gruss Mario
"die Fehlermeldung ist nicht nachvollziehbar.
Ist dein Tabellenblatt geschützt ? Dann musst du den Blattschutz vorher entfernen"
NEIN das Blatt ist nicht geschützt
Das Tabellenblatt wurde nach hinten verschoben, somit hat es funktioniert. Nur diese Fehlermeldung kommt.

Anzeige
AW: ich habe ein ander Möglichkeit gefunden
10.08.2003 23:09:23
Mario
Hallo Rainer,
wenn ich alle Angaben mit VBA
Range("Kundenreklamation!L12") = Range("Berechnungen!c3")
ins Dokument eintrage, sind keine Zellbezüge vorhanden.
Dann kann ich ohne Probleme mit Deiner Formel eine Sicherheitskopie erstellen.
Leider löst die Formel für die Sicherheitskopie die verbundenen Zellen wieder in einzelne auf.

Sub Belegkopie_erstellen()
Dim myFileName As String, mySavePfad As String
'Hier bitte anpassen
mySavePfad = "D:\Datenbank\Sicherheitskopien\" 'Mit Backslash am Schluss !!!
myFileName = Range("L12").Text
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveSheet.Copy
Cells.Select
Cells.Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWorkbook.SaveAs Filename:=mySavePfad & myFileName
Workbooks(myFileName & ".xls").Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Ich danke Dir für Deine Mühe und Zeit.
Gruss Mario


Anzeige
Danke fürs Feedback....
11.08.2003 09:50:37
Ramses
Hallo,
schön dass du mit einem anderen Makro von mir zum ERgebnis kommst :-)
"Deine Formel zum speichern einer Sicherheitskopie klappt super, nur ist die Verknüpfung zum Vordruck noch vorhanden."
Das kann nicht sein weil:
Cells.Select
Cells.Copy
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
diese Anweisung alle Zellinhalte kopiert und nur noch die Werte und Formate wieder einfügt. Dabei werden alle Zellinhalte und Formeln überschrieben und gegen die reinen Werte ausgetauscht.
Egal,... Hauptsache es funktioniert.
Gruss Raier

Anzeige
AW: Danke fürs Feedback....
11.08.2003 12:47:36
Mario Bichler
Hallo Rainer,
die Änderung funktioniert leider nicht, er schmeisst mir dabei eine Fehlermeldung heraus
Cells.Select
Cells.Copy
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Ich habe den Texte nur "AndNumberFormats" entfernt... und mann schaue da, es funktioniert

Sub Belegkopie_erstellen()
Dim myFileName As String, mySavePfad As String
'Hier bitte anpassen
mySavePfad = "D:\Datenbank\Sicherheitskopien\" 'Mit Backslash am Schluss !!!
myFileName = Range("L12").Text
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveSheet.Copy
Cells.Select
Cells.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Cells(1, 1).Select
ActiveWorkbook.SaveAs Filename:=mySavePfad & myFileName
Workbooks(myFileName & ".xls").Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

lt. Formel werden eigendlich nur Werte übertragen, keine Formate. Die Kopie sieht aber super formatiert aus und alle verbundenen Zellen sind voranden.
In der ersten Formel von Dir stand noch Paste:=xlPasteAll.
Jetzt läuft erstmal alles!!!
Danke
Gruss Mario

Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige