so mein letztes Problem konnte Ich zum Glück noch selber Lösen, es sind nun mal die kleinigkeiten!!
War nur eine Zelle zu weit berechnet :-( Die Formel läuft Super!!!
Nun aber zu meinem heutigen Problem, habe mir in VBA ein kleines Makro gebastelt, es läuft soweit auch ganz gut, aber Ich hätte es gern etwas komfortabler.
Es stellt sich folgendermaßen da.
Ich bekomme jeden morgen aus unserem Systen einen Report, dessen Daten kopiere Ich immer in meine eigene Datenbank.
Im Anschluß muß Ich die Inhalte einger Spalten in eine Zahl Umwandel und die Zellen neu Formatieren.
Sobald dieses abgeschlossen ist muß Ich nun in den Spalten N; O; P, Formeln anwenden.
Mein Problem ist nun folgendes, würde Ich nun die Formel bereits in der ganzen Tabelle einfüge würde Ich zuviel leistung für das Berechnen benötigen.
Mein gedanke ist nun, das Ich immer den Bereich an Zellen aussuche der noch nicht berechnet ist, und diesen dann auch nur einmalig berechne.
In meinem Makro muß Ich immer schon einen Zielbereich eingebenund dieser wird dann auch immer komplett berechnet
.Range("O3:O6000").FormulaLocal = "=DATUM(WENN(0+(LINKS(C3;2)) Für diese Formel ist das auch noch OK, aber für die Formel mit "SVerweis" geht das nicht mehr.
Geht es auch, das man die Zellen nur im Makro berechnet und die werte in die Formel einfügt?
Oder die berechneten Zellen im anschluß kopiert und nur die Werte einfügt, so mach Ich es derzeit auch von Hand.
Ihr würdet mir mit euren Ideen sehr weiterhelfen!!!Ich versuche noch eine Datei Hochzuladen, derzeit ist leider die Dateigröße zu hoch :(
Aber hier schonmal mein bisheriger Code!!
Grüße Burkhard
Private Sub CommandButton1_Click()
'Text in Zahl umwandeln
Dim intSpalten() As Variant 'Array enthält die Spaltennummern
Dim i As Integer
ReDim intSpalten(1 To 20)
intSpalten() = Array(5, 6, 7, 8, 11, 13)
Range("AN1") = 1
Range("AN1").Copy
For i = LBound(intSpalten) To UBound(intSpalten)
Range(Cells(3, intSpalten(i)), Cells(Cells(Rows.Count, 1).End(xlUp).Row, intSpalten(i))) _
_
.PasteSpecial _
Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
Next i
Range("A1:P6000").Select
With Selection.Font
.Name = "Calibri"
.Size = 8
Rows("1:6000").RowHeight = 12
End With
Dim oBlatt As Worksheet
'Berechnung Buchungsdatum
Set oBlatt = ThisWorkbook.Worksheets("Daten") 'Tabellennamen gg. anpassen
With oBlatt
.Range("O3:O6000").FormulaLocal = "=DATUM(WENN(0+(LINKS(C3;2))