Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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
Inhaltsverzeichnis

Berechnen

Berechnen
18.01.2016 09:19:49
thomas
Hallo Excelfreunde,
ich baue schon wieder Salat zusammen.
Mein ziel ist, wenn in spalte E ein wert ( datum steht)
lgLetzte = Range("e2").End(xlDown).Row ( ich glaube das ist so richtig)
dann berechne =F2-E2+1
die Formeln sollen nicht in der spalte stehen bleiben.
irgendwie stimmt hier was nicht
Intersect(lgLetzte.Offset(0, -2))
ist auch für mich bödsinn.
Kann mir jemand helfen?
liebe grüsse thomas
Sub berechnen_1()
Dim lgCount As Long
Dim lgLetzte As Long
lgLetzte = Range("e2").End(xlDown).Row
With Intersect(lgLetzte.Offset(0, -2))
.FormulaR1C1 = "=RC[3]-RC[2]+1"
.Formula = .Value
End With
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Berechnen
18.01.2016 09:41:50
otto
Hi,
es ist schon mal ein End With zuviel.
Warum berechnest du nicht im Makro? Brauchst du die Formel?
otto

AW: Berechnen
18.01.2016 10:21:43
thomas
Hallo otto,
super das du mal rüber schaust.
Nein die Formel benötige ich nicht aber ich weiß es erstmal nicht besser.
Ich habe auch versucht es irgendwie so schnell zu machen wie es geht.
dies hier funktioniert ja aber es ist so langsam.
Sub Summe()
On Error GoTo Fehler
Dim RR%, TB1, i
Set TB1 = ActiveSheet
RR = TB1.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile
For i = 2 To RR
If TB1.Cells(i, 5)  "" Then            'And TB1.Cells(i, 6)
TB1.Cells(i, 3) = TB1.Cells(i, 6) - TB1.Cells(i, 5) + 1
End If
Next
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
End Sub

Weisst du wie man so etwas schneller bekommt? ich habe bis ca. 2000 datensätze und direckt die formel einzusetzen geht nicht. Ich hatte auch schon den gedanke die spalte mit formel aus ein anderen blatt einfach zu kopieren mit
Sub formeln_anzahl_tage_holen()
' Makro7 Makro
With Sheets("Tabelle2")
.Columns("C:C").Copy
Sheets("für Kalender").Columns("C:C").PasteSpecial Paste:=xlPasteFormulas, Operation:= _
xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("für Kalender").Columns("C:C").Copy
Sheets("für Kalender").Columns("C:C").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks _
:=False, Transpose:=False
End With
Application.CutCopyMode = False
End Sub
Aber hier habe ich das Problem das ich werte oder Formelreste habe die mir in einem anderen macro ärgern . Irgend wie wird das " " aus =WENN(ODER(E4 deshalb der versuch mit der Berechnung per macro.
Hast Du eine idee dazu? Wie man so etwas schnell berechnen kann? Oder die formel so schreibt das das " " wirklich leer ist.
liebe grüsse thomas

Anzeige
AW: nicht leer
18.01.2016 10:49:59
hary
Moin
Deine Zelle ist nicht leer!
Mit ;" "; setzt du ein Leerzeichen in die Zelle.
Die Gaensepfoten gehoeren zusammen ;"";
Lad mal eine Bsp.-Mappe mit ein paar Daten hoch.
gruss hary

AW: nicht leer
18.01.2016 11:27:17
thomas
Hallo,
ich habe mal schnell ein beispiel erstellt.
Das ziel was ich habe ist die anzahl der dazwischen liegenden tage von spalte E und F zu ermitteln.
Es sind zwei butten das wichtigste ist das der butten "Daten prüfen" kein Fehler bringt.
Wenn man die Formel mit dem Butten "formeln aus tabelle2" holt und das prüfmacro rüberlaufen lässt.
denkt das prüfmacro ab zeile 920 das dort irgentwas foul ist.
Das Prüfmacro prüft ob in spalte C die Werte positiv und sich kein #WERT! in der spalte befindet.
Löscht man dann die rot gekennzeichneten zeilen ab zeile 920 mit der hand läuft das prüfmacro ohne probleme durch?
Da ich die daten weiterverarbeite dürfen nach der berechnung keine Formeln mehr in der Spalte C sein.
besten dank schon mal für eure hilfe
liebe grüsse thomas
vielen dank das ihr euch damit beschäftigt
https://www.herber.de/bbs/user/102851.xlsm

Anzeige
AW: Berechnen
18.01.2016 11:35:29
Rudi
Hallo,
sollte schneller sein:
Sub Summe()
Dim RR%, TB1, i, vArr
On Error GoTo Fehler
Set TB1 = ActiveSheet
RR = TB1.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile
ReDim vArr(1 To RR, 1 To 1)
With TB1
vArr(1, 1) = .Cells(1, 3)
For i = 2 To RR
If .Cells(i, 5)  "" Then            'And TB1.Cells(i, 6)
vArr(i, 1) = .Cells(i, 6) - .Cells(i, 5) + 1
End If
Next
.Cells(1, 3).Resize(UBound(vArr)) = vArr
End With
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
End Sub

Gruß
Rudi

Anzeige
wahnsinn besten dank
18.01.2016 12:45:43
thomas
Hallo Rudi,
das ist ja der Hammer. Riesig schnell und zuverlässig Du glaubst gar nicht wie ich mich freue.
Hab recht vielen vielen dank dafür.
Auch besten dank an Harry und Otto für eure hilfe
liebe grüsse thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige