Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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
Zeile löschen, Tabellenblatt in andere Mappe
Bowl
Teilweise mit Makro Aufzeichnen, teils aus Tipps selbstzusammengebastelt, klappen tut des ganze Teilweise klappt des ganze; das wichtigste nur:
Blatt muss an letzte Stelle der anderen Mappe verschoben werden.
Beim löschen der entsprechenden Zeilen (die Zeilen in der in B der Blattname des verschobenen Sheets bzw der Wert aus B3 der verschobenen Sheets) muss die Zeile gelöscht werden/oder der Inhalt, darunterliegendes Zeug um eins nach oben verschoben werden und am besten eine Zeile vor der Zeile 70 wieder eingefügt werden (damit die Summen die in Zeile 70 stehen wirklich erst in Zeile 70 stehen und nicht mit der Zeit immer weniger Platz für neue eintragungen bliebt)
Die Buttons auf dem Tabellenblatt, dass kopiert wird müssen gelöscht werde
Code:

Sub auftragloeschen()
Dim WS As Worksheet
Dim y, i As Integer
Dim tmp As Long
Application.ScreenUpdating = False
If MsgBox("Das Löschen hätte zur Folge, dass dieser Auftrag in der Gesamtplanung nicht mehr  _
Berücksichtigt werden würde." & vbCrLf & "Dieses Planungsblatt würde in die Datei Archiv verschoben werde" & vbCrLf & "Wirklich entfernen?", vbQuestion + vbOKCancel) = vbOK Then
tmp = ActiveSheet.Cells(3, 2).Value
Application.DisplayAlerts = False
Dim myShape As Shape
For Each myShape In ActiveSheet.Shapes
myShape.Delete
Next
ChDir _
"C:\xyc\Planung 1"
Workbooks.Open Filename:= _
"C:xyc\Planung 1\Archiv.xls"
Windows("Auftragsplanung.xls").Activate
Sheets(tmp).Select
ActiveSheet.Move After:=Workbooks("Archiv.xls").Sheets(i)
ActiveWorkbook.Save
ActiveWindow.Close
Windows("Auftragsplanung.xls").Activate
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Vorlage").Select
ActiveWorkbook.Save
Application.DisplayAlerts = True
For Each WS In Worksheets
If InStr(WS.Name, "A_") = 1 Then
With WS
For y = 10 To .Cells(.Rows.Count, 2).End(xlUp).Row '200
If .Cells(y, 2) = tmp Then
.Unprotect
.Rows(y).Delete
.Rows(70).Select
Selection.Insert Shift:=xlDown
Exit For
End If
Next y
End With
End If
Next WS
End If
Application.ScreenUpdating = True
Sheets("Vorlage").Activate
Sheets("Vorlage").TextBox1.Value = ""
End 

Sub


		

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
wird sofort erledigt.........
08.07.2009 08:12:35
xyz
AW: Aber flott !!!
08.07.2009 09:25:43
Chef
Teilweise Lösung: Verschieben noch Offen
08.07.2009 09:50:56
Bowl
Teil mit Zeile löschen und neu einfügen klappt jetzt Problemlos

For Each ws In Worksheets
If InStr(ws.Name, "A_") = 1 Then
With ws
For y = 10 To .Cells(.Rows.Count, 2).End(xlUp).Row '200
If .Cells(y, 2) = tmp Then
.Unprotect
.Rows(y).Delete Shift:=xlUp
.Rows("70:70").Insert Shift:=xlDown
Exit For
End If
Next y
End With
End If
Next ws


Wird Zeile gelöscht, nach oben verschoben und neue Zeile unten angehängt.
Problem ist immer noch, Blatt an Ende von Archiv.xls zu hängen

AW: Zeile löschen, Tabellenblatt in andere Mappe
08.07.2009 10:59:45
Bowl
ActiveSheet.Move After:=Workbooks("Archiv.xls").Sheets(1)
wird ja das Blatt hinter Blatt 1 verschoben.
a = ActiveWorkbook.Sheets.Count
werden die blätter gezählt (oder etwa doch nicht?)
und mit
ActiveSheet.Move After:=Workbooks("Archiv.xls").Sheets(a)
würden doch Aktive Blätter hinter Sheet a verschoben werden müssen...
zumindest in der theorie, in der Praxis klappts halt doch nicht.
sind auch die jeweiligen Blätter/Mappen im richtigen moment Aktiv
Anzeige
Tabellenblatt in andere Mappe
08.07.2009 11:08:52
Bowl
mir fehlt definitiv nachträgliche editieren funktion xD

tmp = ActiveSheet.Cells(3, 2).Value
Application.DisplayAlerts = False
ChDir "C:\Dokumente und Einstellungen\e.burger\Eigene Dateien\Auftragsplanung"
Workbooks.Open Filename:= _
"C:\Dokumente und Einstellungen\e.burger\Eigene Dateien\Auftragsplanung\Archiv.xls"
Windows("Archiv.xls").Activate
a = ActiveWorkbook.Sheets.Count
Windows("Auftragsplanung.xls").Activate
Sheets(tmp).Move After:=Workbooks("Archiv.xls").Sheets(a)  


Der teil wos ausbeisst:
tmp ist Blattname der zu verschiebenden Datei
a also Anzahl der Blätter in Mappe Archiv.xls


Sheets(tmp).Move After:=Workbooks("Archiv.xls").Sheets(a)


hier wird dann Laufzeitfehler 9 gemeldet
in tmp und a stehen auf jeden fall in der zeile die richtigen werte...

Anzeige
AW: Tabellenblatt in andere Mappe
09.07.2009 10:22:22
Bowl
Problem gelöst:
Statt namen Blattindex zu weisen:
x = Activesheet.index
'Dann Sprung in anderes Fenster; code lass ich mal weg
a = activeworkbook.Sheets.Count
'sprung zurück;
Sheets(x).Move After:=Workbooks("Archiv.xls").Sheets(a)

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige