Thema Datum  Von Nutzer Rating
Antwort
17.04.2008 22:50:22 Lisa
NotSolved
21.04.2008 12:20:09 Holger
NotSolved
Rot Aw:Aw:+1 Addieren unter Bedingung
22.04.2008 11:47:22 Lisa
NotSolved
22.04.2008 16:10:53 Holger
NotSolved

Ansicht des Beitrags:
Von:
Lisa
Datum:
22.04.2008 11:47:22
Views:
1050
Rating: Antwort:
  Ja
Thema:
Aw:Aw:+1 Addieren unter Bedingung
Hallo Holger,

danke für die Antwort. Ich hab´s probiert, leider hat es nicht geklappt. Ich habe meine Befehle im Codebereich der gesamten Arbeitsmappe abgespeichert, weil ich die selben Anweisungen für jedes Tabellenblatt benötige. Momentan habe ich dort folgendes stehen:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim Antwort As Range
Dim Lösung As Range
Dim wof As Range 'wof steht für "wahr oder falsch"
Dim Logikwert As Boolean

Set Antwort = ActiveWorkbook.ActiveSheet.Cells(ActiveCell.Row - 1, 4)
Set Lösung = ActiveWorkbook.ActiveSheet.Cells(ActiveCell.Row - 1, 3)
Set wof = ActiveWorkbook.ActiveSheet.Cells(ActiveCell.Row - 1, 5)
Select Case Antwort
Case Is = Lösung
Logikwert = True
wof = "wahr"
Cells(Target.Row, 7) = Cells(Target.Row, 7) + 1
Case Else
Logikwert = False
wof = "falsch"
Cells(Target.Row, 6) = Cells(Target.Row, 6) + 1
End Select
End Sub

Dank deiner Idee mit dem Befehl "Cells(Target.Row, x") hab ich es jetzt immerhin soweit geschafft, dass in die betreffende Zeile tatsächlich auch 1 dazuaddiert wird...allerdings ununterbrochen, d.h. der Befehl bricht nicht einfach nach einmaliger Addition ab, sondern addiert bis uns Unendliche 1 dazu! Auch der Versuch, die (anscheinende) Schleife durch den Befehl "for i=0 to 1...next i" vorzeitig abzubrechen (und dementsprechend natürlich dann "1" durch "i" zu ersetzen) hat daran nichts ändern können. Was ist das Problem?

Was genau bedeutet eigentlich die Anweisung "Cells(Target.Row, x)? Ich weiß, dass es übersetzt so etwas wie "Ziel-Zeile" bedeutet, aber dazu müsste man ja erst definieren, was das Ziel eigentlich ist, und das wurde ja bei mir nirgends gemacht, oder? In der VBA-Hilfe habe ich dazu leider auch nichts gefunden... Bedeutet es so etwas wie "aktive Zelle"? Komischerweise hat nämlich die selbe Befehlabfolgung nur mit "ActiveCell.Row " statt "Cells(Target.Row)" am Anfang überhaupt nicht funktioniert.

Wär schön, wenn du mir nochmal helfen könntest! Danke schon mal,
Lisa


Holger schrieb am 21.04.2008 12:20:09:

Hallo Lisa,
folgendes Makro sollte dein Problem lösen. Du musst es aber in den Codebereich der relevanten Tabelle und nicht in ein Modul schreiben. Zu diesem Codebereich kommst du, indem du entweder im Projekt-Fenster des VBA-Bildschirmes doppelt auf die Tabelle klickst oder auf dem Excel-Bildschirm mit der rechten Maustaste auf den Reiter dieser Tabelle klickst und "Code anzeigen" auswählst. Schlage die einzelnen Befehle und das Worksheet_Change-Ereignis in der VBA-Hilfe nach.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim reihe As Long
If Not Intersect(Target, Range("a:a")) Is Nothing Then
Select Case Cells(Target.Row, 1)
Case False
Cells(Target.Row, 2) = Cells(Target.Row, 2) + 1
Case True
Cells(Target.Row, 3) = Cells(Target.Row, 3) + 1
Case Else
End Select
End If
End Sub

Viel Erfolg
Holger



Lisa schrieb am 17.04.2008 22:50:22:

Hallo, zusammen,

bin ein blutiger Anfänger in Sachen VBA-Programmierung und komm daher schon bei einer einfachen Sache nicht weiter: Ich habe eine Excel-Tabelle mit (vereinfacht angenommen) 3 Spalten. In der 1. Spalte kann der "wahr" oder "falsch" angenommern werden, die beiden anderen Spalten enthalten Zahlen, die angeben, wie häufig in der jeweiligen Zeile die Werte "falsch" (2. Spalte) oder "wahr" (3.Spalte) in der Vergangenheit bereits angenommen wurden (die Werte werden nämlich immer wieder auf der Grundlage von anderen Daten neu berechnet). Bisher muss ich nach jeder Änderung der Daten in Spalte 1 die Zahlen in Spalte 2 und 3 manuell ändern, indem ich an der richtigen Stelle eins dazuaddiere. Das müsste aber doch sicher auch einfacher gehen!

Ich hoffe, mein Problem ist einigermaßen verständlich. Bin dankbar für jede Antwort!

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
17.04.2008 22:50:22 Lisa
NotSolved
21.04.2008 12:20:09 Holger
NotSolved
Rot Aw:Aw:+1 Addieren unter Bedingung
22.04.2008 11:47:22 Lisa
NotSolved
22.04.2008 16:10:53 Holger
NotSolved