Microsoft Excel

Herbers Excel/VBA-Archiv

Gleiche Zelle addieren | Herbers Excel-Forum


Betrifft: Gleiche Zelle addieren von: stefan
Geschrieben am: 22.01.2010 09:36:29

Hallo,

ich habe ein Problem mit dem Addieren und bin nicht sicher ob das gelöst werden kann. Vielleicht mit VBA. Täglich muss ich Daten dazu addieren die eine Gesammtsumme ergeben.
In Zelle A1 wir die Summe von B1 und C1 addiert. Der Wert B1 bleibt immer unverändert. Gibt es einen Weg, dass ich den Wert in C1 mit einem neue Wert überschreibe, die Summe sich in A1 um den neuen Wert erhöht, ohne die vorherige addition zu vergessen.

Die Tabelle hat 130 Zeilen, wo in jeder Zeile das gleiche abläuft.

Ich hoffe das ich meine Gedanken verständlich ausdrücken konnte.

Gruß

Stefan

  

Betrifft: AW: Gleiche Zelle addieren von: Mike
Geschrieben am: 22.01.2010 09:43:03


Hey Stefan,

aus 5 in A1, bestehend aus 4 in B1 sowie 1 in C1 soll nach neuem Wert 5 in C1 eine 10
werden und nicht eine 9?

Wie willst Du allenfalls die Berechnungen nachvollziehen?

Gruss
Mike


  

Betrifft: AW: Komentar nutzen von: dieter(drummer)
Geschrieben am: 22.01.2010 10:18:15

Hi Stefan und Mike,

ein Möglichkeit ist, in A1 die Änderung in einen Kommentar zu schreiben. So kann man den alten und den geänderten Zustand - durch Änderung in C1 - immer zeigen. Wenn das interessant ist, bitte im Forumsarchiv nach der VBA Lösung suchen.

Gruß
Dieter(Drummer)


  

Betrifft: AW: Gleiche Zelle addieren von: stefan
Geschrieben am: 22.01.2010 10:37:31

Hi Mike,

Das ist genau richtig.

Es handelt sich um Touenzahlen an Maschinen wo täglich die letzten 24h dazu addiert werden. Es gibt die Möglichkeit die Gesammttouren von den Maschinen zu bekommen, was jedoch, wenn ein Artikel in den nächsten Monat mit herein läuft, eine rechnerrei ist.

Danke und Gruß Stefan



  

Betrifft: AW: Gleiche Zelle addieren von: welga
Geschrieben am: 22.01.2010 10:22:45

Hallo Stefan,

schreibe folgendes in den code des Tabellenbalttes und passe ggfs. den Bereich an:

Sub worksheet_change(ByVal target As Range)
Dim i As Integer
If Not Intersect(target, Range("C1:C130")) Is Nothing Then
i = Cells(target.Row, 1).Value
Cells(target.Row, 1).Value = i + Cells(target.Row, 3).Value
End If

End Sub
Gruß
welga


  

Betrifft: AW: Gleiche Zelle addieren von: Hajo_Zi
Geschrieben am: 22.01.2010 10:24:22

Hallo Welga,

warum markierst Du Deine Beiträge häufug als offen?
Du hast doch eine Lösung vorgeschlagen, lasse doch den Fragesteller die Frage als offen kennzeichnen.

GrußformelHomepage


  

Betrifft: AW: Gleiche Zelle addieren von: dieter(drummer)
Geschrieben am: 22.01.2010 10:35:15

Hi Welga,

bei deiner VBA Lösung wird die Änderung in C1 in A1 hinzugezählt. Die Änderung kann man aber nicht mehr in A1 nachvollziehen, wenn man den vorherigen Wert in A1 sich nicht irgendwo gemerkt hat.

Hast Du dafür auch eine Lösung? Interessiert mich auch.

Gruß
Dieter(Drummer)


  

Betrifft: AW: Gleiche Zelle addieren von: welga
Geschrieben am: 22.01.2010 12:34:57

Hallo Dieter,

wenn du die Änderung nachvollziehen willst, also den alten Wert sehen willst,

dann schreibe ihn doch einfach in eine andere spalte


Sub worksheet_change(ByVal target As Range)
Dim i As Integer
If Not Intersect(target, Range("C1:C130")) Is Nothing Then
i = Cells(target.Row, 1).Value
cells(target.row,4).value=i
Cells(target.Row, 1).Value = i + Cells(target.Row, 3).Value
End If

End Sub

wenn du alle änderungen haben willst, geht das vllt so (ist aber ungetestet):
Sub worksheet_change(ByVal target As Range)
Dim i As Integer
Dim a As Long

If Not Intersect(target, Range("C1:C130")) Is Nothing Then
i = Cells(target.Row, 1).Value
a = Cells(target.Row, Columns.Count).End(xlToLeft).Column
If a = 256 Then
Range(Cells(target.Row, 4), Cells(target.Row, 256)).Select
Selection.ClearContents
a = 4
End If
Cells(target.Row, a + 1).Value = i
Cells(target.Row, 1).Value = i + Cells(target.Row, 3).Value
End If

End Sub



  

Betrifft: AW: Danke Welga ... von: dieter(drummer)
Geschrieben am: 22.01.2010 16:14:02

... das ist leider nicht meine Vorstellung. Trotzdem Danke für die Bemühung.

Hätte gerne die Möglichkeit, dass jede Änderung in C1 in A1 im Kommentar zu sehen ist.

Z. B. Alt in A1 = 3 (Summe von B1 + C1, Alt in B1 =2, Alt in C1 = 1.

Dies soll schon in A1 im Kommentar stehen (1 aus C1). Ändere ich C1 in 2, dann ist in A1 = 5 und im Kommentar A1 steht dann: z. B. 3 und darunter/daneben 2. Wäre noch bessere, wenn Änderungsdatum auch aufgeführt würde. Dies ist ein Wunsch.

Danke für's evtl. drum kümmern.

Gruß
Dieter(Drummer)


  

Betrifft: AW: Danke Welga ... von: welga
Geschrieben am: 22.01.2010 16:36:52

Hallo Dieter,

versuch es so:

Sub worksheet_change(ByVal target As Range)
     Dim i As Integer
     Dim a As Variant
     Dim e As Integer
     If Not Intersect(target, Range("C1:C130")) Is Nothing Then
     i = Cells(target.Row, 1).Value
     e = Cells(target.Row, 3).Value
     On Error GoTo weiter
     Cells(target.Row, 1).AddComment
weiter:
    Cells(target.Row, 1).Comment.Visible = False
    a = Cells(target.Row, 1).Comment.Text
    If a = "" Then Cells(target.Row, 1).Comment.Text Text:="Ausgangswert: 0" & Chr(10) & " _
Addierter Wert: " & e
    Cells(target.Row, 1).Comment.Text Text:=a & Chr(10) & "Ausgangswert: " & i & Chr(10) & " _
Addierter Wert: " & e
    Cells(target.Row, 1).Value = i + Cells(target.Row, 3).Value
     End If
     
     End Sub
Jedoch weiß ich nicht, wie man das Kommentarfeld in der Größe anpasst.

Gruß
welga


  

Betrifft: AW: Kompilierungsfehler ... von: dieter(drummer)
Geschrieben am: 22.01.2010 16:48:43

Hi Welga,

Danke für weitere Hilfe. Makro bricht mit Kompilierungsfehler in:

   If a = "" Then Cells(target.Row, 1).Comment.Text Text:="Ausgangswert: 0" & Chr(10) & " _
Addierter Wert: " & e

ab.

Habe Makro in Tabelle 1 kopiert. Kannst Du noch helfen?

Gruß
Dieter(drummer)


  

Betrifft: AW: mal einfach von: hary
Geschrieben am: 22.01.2010 17:54:08

Hallo Dieter
Teste das mal, gilt nur fuer aenderung in Zelle A1.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$A$1" Then  'hier nur bei Zelle A1
    If Target.Comment Is Nothing Then 'wenn kein Kommentar vorhanden
        Target.AddComment    'erstelle einen Kommentar
        Target.Comment.Text Target.Comment.Text & Target.Value & " geändert am  " & Date ' _
schreibe Inhalt aus Zelle A1 in Kommentar
        Else  'wenn Kommentar vorhanden
        Target.Comment.Text Target.Comment.Text & Chr(10) & Target.Value & " geändert am  " &  _
Date 'alter Inhalt und neuer Inhalt Zelle A1
        Target.Comment.Shape.Height = Target.Comment.Shape.Height + 10 ' Höhe des Feldes!!  _
etwas rumprobieren
    End If
 End If
End Sub
gruss hary



  

Betrifft: AW: Hervorragend Hary von: dieter(drummer)
Geschrieben am: 22.01.2010 18:15:16

Klappt prima bei Eingaben in Zelle A1. Braucht ja nur noch Änderung in Zelle C1 in Kommentar in A1 eingefügt zu werden.

Danke erstmal für dein Makro. Muss jetzt wohl zu meiner Bandprobe und gebe morgen Rückmeldung, solltest Du noch etwas ändern.

Gruß
Dieter(Drummer)


  

Betrifft: AW: @Hary von: dieter(drummer)
Geschrieben am: 23.01.2010 13:17:33

Hi Hary,

nun habe ich mir das Makro mal genauer ansehen können. Es funktioniert prima. Wenn jetz noch die Möglichkeit geht, dass Änderungen in A1 additiv der vorherigen Zahl hinzugefügt werden und dieses auch im Kommentar dokumentiert wird, ist alles perfekt und ich kann es anderweitig auch noch verwenden und auf meine Belange anpassen.

Danke fürs evtl. noch anpassen.

Gruß
Dieter(Drummer)


  

Betrifft: AW: frage von: hary
Geschrieben am: 23.01.2010 13:49:02

hallo Dieter
war gestern auf Party. So ganz klappt's bei mir oben noch nicht. Gibt mir mal ein praktisches Beispiel.
Musst Dich aber beeilen in 5 Std geht's zur naechsten. Dann ist der Sonntag gelaufen ;-)
gruss hary


  

Betrifft: AW: Beispiel von: dieter(drummer)
Geschrieben am: 23.01.2010 14:16:21

Hi Hary,

auch feiern muss sein! Hier ein Beispiel:

In A1 steht die Zahl 1 und die Eingabe geht lt. deinem Makro in den Kommentar in A1. Nun gibt man in A1 eine 2 ein und der Wert vorher 1 und dann die Neueingabe 2 ergibt 3 in A1. Die Neueingabe 2 soll auch als 2 Eingabe in Kommentar ersichtlich sein, so:

1 geändert am 23.01.2010
2 geändert am 23.01.2010
....

In Zelle A1 steht dann eine 3. Uhrzeiteingabe wäre noch prima und muss aber nicht sein.Die Sache eilt nicht. Feiern geht vor und ist ein Muss. Viel Spaß.

Gruß
Dieter(drummer)


  

Betrifft: AW: Beispiel von: hary
Geschrieben am: 23.01.2010 16:10:55

Hallo Dieter
Also in Zelle A1 zusammenzaehlengeht nicht, da dann das Change Ereigniss ausgeloest wird.
Hab's mal so geloest: Mit Hilfszelle IV1.Traegst in A1 eine Zahl ein, Kommentar wird erstellt Ergebniss in C1.
pruefen ob Nummer in A1 eingetragen ist, noch nicht drin.
Zellen als hh:mm formatieren, dann gehts auch mit Uhrzeit.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then  'hier nur bei Zelle A1
        If Target.Comment Is Nothing Then 'wenn kein Kommentar vorhanden
            Target.AddComment    'erstelle einen Kommentar
            Target.Comment.Text Target.Comment.Text & Format(Target.Value, "hh:mm") & " geä _
ndert am  " & Date 'schreibe Inhalt aus Zelle A1 in Kommentar
            Target.Comment.Visible = False
            Cells(1, 3) = Target.Value + Range("IV1").Value
            Else  'wenn Kommentar vorhanden
            Target.Comment.Text Target.Comment.Text & Chr(10) & Format(Target.Value, "hh:mm") &  _
" geändert am  " & Date 'alter Inhalt und neuer Inhalt Zelle A1
            Target.Comment.Shape.Height = Target.Comment.Shape.Height + 10 ' Höhe des Feldes!!  _
etwas rumprobieren
            Target.Comment.Visible = False
            Cells(1, 3) = Target.Value + Range("IV1").Value ' zählt in C3 zusammen
        End If
        Range("IV1") = ""
     End If
    End Sub
'----- auslagern des Wertes A1 nach IV1 ----------------
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
   If Target.Address = "$A$1" Then
      Range("IV1").Value = Target.Value
   End If
End Sub

gruss hary


  

Betrifft: AW: Beispiel von: Hajo_Zi
Geschrieben am: 23.01.2010 16:22:26

Hallo harry,

change kann ma abschalten mit
Application.EnableEvents = False
nur nicht vergesen wieder einzuschalten.

GrußformelHomepage


  

Betrifft: AW: Danke Hary und Danke Hajo_Zi von: dieter(drummer)
Geschrieben am: 23.01.2010 16:32:13

Hi Hary,

Danke für schnelle Hilfe und vile Spaß bei der Feier. Werde es morgen mal angehen und mich melden, muss jetzt auch weg.
Dank auch an Hajo_Zi für Info.

Gruß
Dieter(Drummer)


  

Betrifft: AW: Fehler beim Kompilieren- Syntaxfehler von: dieter(drummer)
Geschrieben am: 24.01.2010 13:21:29

Hi Hary,

hoffe Du hattest eine tolle Feier.

Dein letztes Makro bricht ab mit "Fehler beim Kompilieren - Sytnaxfehler" in Zeilen:

Target.Comment.Text Target.Comment.Text & Format(Target.Value, "hh:mm") & " geä _
ndert am  " & Date 'schreibe Inhalt aus Zelle A1 in Kommentar
Fehler taucht auf, sobald ich Zelle A1 aktiviere.

Die Sache hat KEINE Eile.

Gruß
Dieter(Drummer)


  

Betrifft: AW: Fehler beim Kompilieren- Syntaxfehler von: hary
Geschrieben am: 24.01.2010 13:33:51

Hallo Dieter
Habe Minenarbeiter im Kopf ;-))
Also hier kommt ken Fehler, kann ich jeden Falls nicht nachvollziehen.
https://www.herber.de/bbs/user/67444.xls
gruss hary


  

Betrifft: AW: Danke Hary, es funktioniert von: dieter(drummer)
Geschrieben am: 24.01.2010 15:50:55

Hi Hary,

deine Datei funktioniert. Muss wohl beim kopieren deines Makros einen Fehler gemacht haben.

Danke nochmal und einen Gruß an die Minenarbeiter im Kopf, sie sollen leise hämmern ;-)). So geht es mir nach einem Bandauftritt.

Gruß und noch einen erholsamen Sonntag.

Dieter(Drummer)


  

Betrifft: AW: Gleiche Zelle addieren von: stefan
Geschrieben am: 22.01.2010 11:27:23

Hi Welga,

vielen Dank für die Hilfe es klappt... Super

Gruß

Stefan


Beiträge aus den Excel-Beispielen zum Thema "Gleiche Zelle addieren"