| Hallo Zusammen, ich kenne mich mit VBA für Excel wahrlich nicht besonders aus, benötige es aber für wiederkehrende Buchungen. Folgendes Problem: * iin meiner selbstgetrickten Exel Anwendung mache ich neue Buchungen auf einem extra Tabellenblatt und übertrage diese neuen Buchungen dann "per Knopfdruck" auf ein separates Tabellenblatt "Datenbank". Von dieser im Regelfall schreibgeschützten Datenbank werden dann spezifische Auswertungen mittels Pivot Tabellen auf wiederum einem separaten Tabellenblatt erstellt. Dieses Procedere hat sich grundsätzlich so bewährt. * jetzt will ich allerdings gerne auf dem Tabellenblatt "Datenbank" zusätzliche Rechenvorgänge automatisieren. Z.B. sollen weitere Spalten angefügt werden und dort z.B. aus dem vorgegebenen Bruttobetrag und dem vorgebenen MWSt Satz automatisch die enthaltene MWSt berechnet werden. Die Formeln dazu wie üblich in den Zellen dieser Spalte im Tabellenblatt "datenbank"vorab hinterlegt. * wenn ich jetzt neue Datensätze an die "Datenbank" sende, dann gelingt zwar die Übertragung genau Dieser daten, aber die anschließend gewünschte automatische Weiterberechnung in den zusätzlich in der "Datenbank" eingefügten Spalten funktioniert nicht.  * ich vermute als Grund eine Einstellung von Excel beim Einfügen neuer Zeilen, die im Regelfall ihre Berechtigung haben mag, im vorliegenden Fall allerdings nicht. Ich denke, durch entsprechende Ergänzung des bestehdenen VBA Makros zur Datenübertragung müsste das Problem lösbar sein. Mein aktuelles makro hierzu lautet wie folgt.   Sub BuchenAUS()   Dim oWsQ As Worksheet, oWsZ As WorksheetDim rngQ As Range
 'setzt Verweis auf Quellblatt
 Set oWsQ = Worksheets("AUS-EINGABEN")
 'setzt Verweis auf Zielblatt
 Set oWsZ = Worksheets("AUS-DATENBANK")
 'Fehlerüberwachung ausschalten
 On Error Resume Next
 'setzt Verweis auf Zellen mit Werten im Quellblatt
 Set rngQ = oWsQ.Rows("2:" & Rows.Count).SpecialCells(xlCellTypeConstants)
 'Fehlerüberwachung einschalten
 On Error GoTo 0
 'wenn Zellen mit Werten vorhanden sind
 If Not rngQ Is Nothing Then
 'Zielblatt freigeben
 oWsZ.Unprotect
 'kopiere ganze Zeile(n) der Zellen mit Werten
 Application.Intersect(oWsQ.Rows, rngQ.EntireRow).Copy
 'unter letzte belegte Zelle in Spalte 1 des Zielblattes
 With oWsZ.Cells(Rows.Count, 1).End(xlUp).Offset(1)
 'Werte einfügen
 .PasteSpecial xlValues
 'Formate einfügen
 .PasteSpecial xlFormats
 End With
 'Zwischenablage leeren
 Application.CutCopyMode = False
 'Zielblatt schützen
 oWsZ.Protect
 'Zellinhalte des Quellbereiches löschen
 rngQ = ""
 End If
 End Sub
 
 Könnt Ihr mir einen Tipp geben, wie das Makro umzuschreiben ist?? oder alternativ einen anderen einfachen Lösungsansatz für meine Fragestellung. (es hat allerdings seinen Grund, warum ich die genannten Berechnungen erst im "datenblatt" und nicht bereits vorher auf dem Eingabeblatt machen möchte) Lieben Dank im vorhinein Bernd     |