Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Änderung der Berechnung

Änderung der Berechnung
17.12.2005 17:34:59
Gerhard
Hallo!
Habe ein Problem. Möchte in einem Macro die Berechnung ändern, schaffe es aber nicht. Habe eine Testmappe erstellt wo ich alles reingeschrieben habe was mein Problem ist.
https://www.herber.de/bbs/user/29395.xls
Bitte um Hilfe!
Gruss
Gerhard

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

Betreff
Datum
Anwender
Anzeige
AW: Änderung der Berechnung
17.12.2005 17:50:57
Peter
Servus,
änder die Zeile.
With Workbooks("Testabrechnung.xls").Sheets("Datenbank").Cells(lngZeilen, 4) Zur Erklärung cells(Zeilennr.,Spaltennr.) MfG Peter
AW: Änderung der Berechnung
17.12.2005 22:30:28
Gerhard
Hallo Peter!
Danke für deinen Tipp!
Aber das haut nicht hin.
With Workbooks("Testabrechnung.xls").Sheets("Datenbank").Cells(lngZeilen, 4)
Mit der Spalte D in der Datenbank will ich gar nichts machen.
Ich will beim ausführen des Makros das der Wert in der Spalte D der Abrechnung von dem Wert in der Spalte C der Datenbank abgezogen wird, natürlich nur dann wenn eine Übereinstimmung in den Spalten A der beiden Tabellen gegeben ist.
Mit diesen Zeilen wird der Wert auch angezeigzt.
'lngAbzug = Workbooks("Testabrechnung.xls").Sheets("Abrechnung").Cells(lnfRowFind, 4).Value
'MsgBox .Value & " " & lngAbzug 'Nur zum Test
Kannst selber in meinen Programm ausprobieren wenn du die beiden Zeilen aktivierst.
Aber wenn ich dann in der Zeile:
If .Value "" Then .Value = .Value - 1
statt -1 -(lngAbzug) hinschreibe dann passiert gar nichts.
Und da steige ich aus! Keine Ahnung wieso das nicht hinhaut.
Gruss
Gerhard
Anzeige
AW: Änderung der Berechnung
17.12.2005 22:37:30
Gerhard
Hallo Peter!
Danke für deinen Tipp!
Aber das haut nicht hin.
With Workbooks("Testabrechnung.xls").Sheets("Datenbank").Cells(lngZeilen, 4)
Mit der Spalte D in der Datenbank will ich gar nichts machen.
Ich will beim ausführen des Makros das der Wert in der Spalte D der Abrechnung von dem Wert in der Spalte C der Datenbank abgezogen wird, natürlich nur dann wenn eine Übereinstimmung in den Spalten A der beiden Tabellen gegeben ist.
Mit diesen Zeilen wird der Wert auch angezeigzt.
'lngAbzug = Workbooks("Testabrechnung.xls").Sheets("Abrechnung").Cells(lnfRowFind, 4).Value
'MsgBox .Value & " " & lngAbzug 'Nur zum Test
Kannst selber in meinen Programm ausprobieren wenn du die beiden Zeilen aktivierst.
https://www.herber.de/bbs/user/29395.xls
Aber wenn ich dann in der Zeile:
If .Value "" Then .Value = .Value - 1
statt -1 -(lngAbzug) hinschreibe dann passiert gar nichts.
Und da steige ich aus! Keine Ahnung wieso das nicht hinhaut.
Gruss
Gerhard
Anzeige
AW: Änderung der Berechnung
17.12.2005 23:05:23
Peter
Servus,
versuchs mal so. Wobei das mit einer Formel wesentlich komfortabler gehen würde (s.u.) ?
Sub t() Dim lzeileS As Long, lZeileE As Long Dim rng As Range, ranrngSuch As Range, rngErg As Range Dim myarr Dim intZ As Integer With Sheets("Datenbank") lzeileS = .Cells(.Rows.Count, 1).End(xlUp) Set rngSuch = Range("A2:A" & lzeileS) End With With Sheets("Abrechnung") lZeileE = .Cells(.Rows.Count, 1).End(xlUp) Set rngErg = Range("A2:A" & lZeileE) ReDim myarr(2, lZeileE) For Each rng In .Range(rngErg.Address) myarr(0, intZ) = rng myarr(1, intZ) = rng.Offset(0, 1) myarr(2, intZ) = rng.Offset(0, 3) intZ = intZ + 1 Next End With With Sheets("Datenbank") For Each rng In .Range(rngSuch.Address) For intZ = 0 To intZ - 1 If rng = myarr(0, intZ) And rng.Offset(0, 1) = myarr(1, intZ) Then _ rng.Offset(0, 2) = myarr(2, intZ) 'Wenn du willst das die vorhandenen Werte addiert werden sollen, dann änder die obere 'Zeile in: ' rng.offset(0,2) = rng.offset(0,2) + myarr(2,intz) Next Next End With End Sub
Datenbank
 CD
355
Formeln der Tabelle
D3 : {=WENN((Abrechnung!$A$2:$A$16=Datenbank!A3)*(Abrechnung!$B$2:$B$16=Datenbank!B3);Abrechnung!$D$2:$D$16)}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
MfG
Peter
Anzeige
AW: Änderung der Berechnung
18.12.2005 17:16:58
Gerhard
Hallo Peter!
Das schaut gut aus! super!!
In der Testdatei funktionierts perfekt.
Hätte auch lieber alles über Formeln gemacht aber in meiner richtigen Anwendung ist es nicht so einfach. Das ganze befindet sich in mehreren Dateien mit diversen Formeln und Verknüpfungen. Am Monatsabschluss ändere ich dann alle Dateien um ohne Formeln und Verknüpfung zur weiteren Verwendung für andere. Erst dann mache ich den Schritt mit dem Macro, einmal im Monat.
Möchte mich recht herzlich bedanken für deine Bemühungen und super Hilfe.
Mit besten Grüssen aus dem verschneiten Salzburg
Gerhard
Anzeige
sehr gerne ....
18.12.2005 19:40:30
Peter
Servus,
aus dem ebenfalls verschneiten Chiemgau. sind ja auch nur 50 km zu euch ;-)
MfG Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige