Hallo,
Es sind zwei Probleme, die mich beschäftigen. Ausgangslage ist ein Tabellenblatt mit Buttons. Bei Buttonclicks sollen Ereignisprozeduren durchlaufen werden. Diese Prozeduren sollen teilweise in andern Tabellenblättern Veränderungen vornehmen.
Problem 1: Ich möchte eine Tabellenzeile (max. 10 Spalten) in eine (Range?)Variable kopieren, dort bearbeiten und dann in einem andern Tabellenblatt speichern. Mir scheint, dass im folgenden Code die Variable auch die Tabellenzeile ist. Jedenfalls finden die Manipulationen auch in der Tabellenzeile statt.
Hier stelle ich fest, dass auch die Zeile im Tabellenblatt verändert ist.
Problem 2: eine Übung. Blatt kopieren/umbenennen/Inhalt löschen, neues Blatt erzeugen … und alles löschen
Wie schon erwähnt sind auf einem Blatt 2 Buttons. In den zugehörigen Click-Prozeduren werden zwei andere Blätter manipuliert.
Hier ist mein Problem, dass nicht die Kopie des Tabellenblattes geleert wird (Inhalte löschen), sondern Zeilen im Blatt, das die Buttons enthält.
Kann ein neu generiertes und umbenntes Tabellenblatt unmittelbar danach auch der laufenden Prozedur heraus selektiert werden?
Die Zeile Kopie!Rows.Delete hat Fehler ‚Objekt erforderlich‘
Freundliche Grüsse
Fritz
Es sind zwei Probleme, die mich beschäftigen. Ausgangslage ist ein Tabellenblatt mit Buttons. Bei Buttonclicks sollen Ereignisprozeduren durchlaufen werden. Diese Prozeduren sollen teilweise in andern Tabellenblättern Veränderungen vornehmen.
Problem 1: Ich möchte eine Tabellenzeile (max. 10 Spalten) in eine (Range?)Variable kopieren, dort bearbeiten und dann in einem andern Tabellenblatt speichern. Mir scheint, dass im folgenden Code die Variable auch die Tabellenzeile ist. Jedenfalls finden die Manipulationen auch in der Tabellenzeile statt.
Code:
Dim rBuchung As Range ' hier wird die Tabellenzeile reinkopiert
' Wenn Kontoblatt nicht vorhanden, dieses erzeugen und einfüllen.
' Zuerst wird immer eine neues Blatt erzeugt. Wenn das Blatt schon existiert sind keine Aktionen vorgesehen.
If Not WorksheetExists(strKontoName) Then
… hier wird eine Tabellenvorlage kopiert und umbenennt
… dann wird die ursprüngliche Tabelle (Buchhaltungsjournal) bearbeitet
If iKonto = Cells(n, "D") Or iKonto = Cells(n, "E") Then
Set rBuchung = Rows(n) ' Zeile in Variable kopieren
If iKonto = Cells(n, "D") Then ' Soll, E,F 1x Shift links
rBuchung.Cells(1, 4) = rBuchung.Cells(1, 5)
rBuchung.Cells(1, 5) = rBuchung.Cells(1, 6)
Else ' Haben, Inhalt Zelle E löschen, KontNr. ist schon richtig, Betrag bleibt im Haben
rBuchung.Cells(1, 5).Delete ' Haben, nur Inhalt Zelle "E" löschen
End If
..
… dann hier die bearbeite Range-Variable in das neue Tabellenblatt kopieren. (fehlt noch bei mir)
… die neue Tabelle hat viel weniger Zeilen als das Original, weil nur eine Auswahl bearbeitet wird.
...Jedesmal in die nächste leere Zeile schreiben.
..
End if
Problem 2: eine Übung. Blatt kopieren/umbenennen/Inhalt löschen, neues Blatt erzeugen … und alles löschen
Wie schon erwähnt sind auf einem Blatt 2 Buttons. In den zugehörigen Click-Prozeduren werden zwei andere Blätter manipuliert.
Hier ist mein Problem, dass nicht die Kopie des Tabellenblattes geleert wird (Inhalte löschen), sondern Zeilen im Blatt, das die Buttons enthält.
Kann ein neu generiertes und umbenntes Tabellenblatt unmittelbar danach auch der laufenden Prozedur heraus selektiert werden?
Die Zeile Kopie!Rows.Delete hat Fehler ‚Objekt erforderlich‘
Code:
Const strKontoName As String = "Kopie"
If Not WorksheetExists(strKontoName) Then
Sheets("verschieben").Copy After:=Sheets(Sheets.Count) 'wird ans ende gestellt
ActiveSheet.Name = "Kopie"
ActiveCell.FormulaR1C1 = "Kopie" ' möchte noch „Kopie“ in Zelle A1 schreiben, eigentlich nach dem Löschen
' Cells.Select ' Select_Methode des Range-Objekts kann nicht ausgeführt werden
' ActiveSheet.Clear ' Objekt unterstützt diese Eigenschaft oder Methode nicht
' ActiveSheet.Rows(1, 25).Delete 'Anwendungs- oder objektdefinierter Fehler
Rows.Delete ' löscht nichts (zumindest in "Kopie"), eher in Blatt Übung, wo die Buttons sind
' Kopie!Rows.Delete ' Fehler. Objekt erforderlich
' Selection.ClearContents
Else
Freundliche Grüsse
Fritz