Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Änderungen im zweiten Sheet speichern

Betrifft: Änderungen im zweiten Sheet speichern von: Christian
Geschrieben am: 20.10.2014 12:32:28

Hallo liebe Gemeinde,

folgende Situation:

In der angehängten Datei gibt es zwei Sheets: "Maske" und "Analyse"

In Maske gibt es eine kleine Tabelle mit den Überschriften Kriterium, X , Y, Wert.
A4:A51 ist gefüllt mit den verschiedenen Kriterien.
D4:D51 ist gefüllt mit den zugehörigen Werten.

Über eine UserForm gibt es die Möglichkeit die Werte zu verändern.

Besteht die Möglichkeit, falls sich die Werte in D4:51 ändern, die Gesamten werte aus D4:51 in das Sheet Analyse mit dem Tagesdatun zu kopieren?

In dem Sheet ist bereits eine kleine vorgefertigte Tabelle.
Es soll nach vollziehbar bleiben, wann die Werte auf welchen Stant gebracht werden.
Dazu immer ein Tagesdatum.

https://www.herber.de/bbs/user/93245.xlsx

Bin sehr gespannt auf euren input!


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Steffi
Geschrieben am: 20.10.2014 14:25:51

Hallo Christian,

meintest du etwas so in dieser Art? (Code gehört zum Tabellenblatt Maske)

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ltzS As Long

    With ThisWorkbook.Sheets("Analyse")
        If Not Intersect(Target, Range("D4:D51")) Is Nothing Then
            ltzS = .Cells(4, .Columns.Count).End(xlToLeft).Column + 1
            .Cells(3, ltzS) = Date
            .Range(.Cells(4, ltzS), .Cells(51, ltzS)) = ThisWorkbook.Sheets("Maske").Range("D4: _
D51").Value
        End If
    End With
End Sub
Jedesmal wenn auf dem Blatt 'Maske' etwas in D4 bis D51 verändert wird, wird auf dem Blatt "Analyse" eine neue Spalte hinzugefügt mit dem Datum von heute und den Werten aus D4 bis D51.

Ich hoffe das kann dir helfen.


Gruß Steffi


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Christian
Geschrieben am: 21.10.2014 07:40:29

Hallo Steffi,

vielen Dank für deine tolle Arbeit.

Direkt übernehmen konnte ich die Formel nicht wurde direkt rot angezeigt.

Musste sie ändern auf:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ltzS As Long

    With ThisWorkbook.Sheets("Analyse")
        If Not Intersect(Target, Range("D4:D51")) Is Nothing Then
            ltzS = .Cells(4, .Columns.Count).End(xlToLeft).Column + 1
            .Cells(3, ltzS) = Date
            .Range(.Cells(4, ltzS), .Cells(51, ltzS)) = ThisWorkbook.Sheets("Maske").Range("D4: _
D51").Value
            
        End If
    End With
End Sub

Hab ich dadurch großartig was verändert? Weil im Prinzip funktioniert die Formel soweit.

Vielen Dank!


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Steffi
Geschrieben am: 21.10.2014 07:50:08

Hallo Christian,

freut mich das es so weit schon mal klappt. :)

Ich seh gerade ehrlich gesagt auch nicht was verändert wurde. Ich finde keinen Unterschied. Wahrscheinlich lag der Fehler nur an der Zeile mit dem Zeilenumbruch, der hier eingefügt wurde weil an der einen Stelle nicht alles in eine Zeile passte. Da macht er dann beim Reinkopieren in VBA eventuell Probleme. Sonst seh ich wie gesagt keine Veränderung.


Gruß Steffi


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Christian
Geschrieben am: 21.10.2014 08:23:58

Hallo Steffi,

.Range(.Cells(4, ltzS), .Cells(51, ltzS)) = ThisWorkbook.Sheets("Maske").Range("D4: _
D51").Value

hat sich verändert. "_" habe ich entfernen müssen. Weiß nicht ob das große Auswirkungen hat.

Wenn ich die Werte manuell änder funktioniert das auch alles reibungslos. Die Werte werden aber aus einer UserForm raus durch eine Textbox geändert. Der Anweder kann durch einen Command-Knopf plus oder minus den Wert ändern.

Dann kopiert er die werte zwei zeilen weiter nach links ohne datum, und nur den geänderten Wert.

Das macht die Sache jetzt wahrscheinlich wesentlich komplizierter oder? Liegt das noch im Bereich des machbaren?

Gruß,

Christian


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Steffi
Geschrieben am: 21.10.2014 08:34:28

Das du "_" entfernt hast ist das mit dem Zeilenumbruch was ich meinte. Das verändert am Code selbst gar nichts. Das Zeichen sagt eigentlich nur dass der Code in der Zeile noch nicht zu Ende ist und in der nächsten Zeile weitergeht. Benutzt wird es dann wenn der Code zu lang für nur eine Zeile wird.

Zu deiner Erweiterung mit Userform: Das wird sicherlich auch gehen. Allerdings ist es schwer das nur anhand einer Beschreibung zu sagen. Wenn du da eine konkrete Lösung haben möchtest, dann bräuchte ich eine Beispieldatei und eine Erklärung was da noch verändert werden soll.


Gruß Steffi


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Christian
Geschrieben am: 21.10.2014 08:59:35

Hallo Steffi,

anbei die neue Test-Datei. Habe die entsprechende User-Form "Feedback" direkt mit reingepackt.

https://www.herber.de/bbs/user/93259.xlsm

Seltsamer weise geht es hier direkt ohne Probleme. Jedoch erstellt er für jede Änderung direkt eine neue Zeile. Gerade wenn man die Werte nur über die Textboxen ändert, sollte es sich doch so einrichten lassen, dass die Textboxen zuerst den Wert aus den Spalten einmal abrufen, dann ändert man die Werte, und erst wenn man auf schließen drückt, werden die Werte in die Tabelle eingefügt. Sonst enstehen zig eintrage bei jeder kleinen Änderung. Vielleicht lässt sich das auch Tagesbezogen machen. Egal wie oft der Wert geändert wird, alles was an Tax X passiert, bleib in Tag X, ohne das eine zweite Datumsspalte dazu entsteht. Naja soweit meine Gedanken zu.

Bin gespannt was du zu dem Feedback modul sagst, ist noch in der aufbau phase :D

Gruß,

Christian


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Steffi
Geschrieben am: 21.10.2014 10:01:14

Hallo Christian,

ich hab die Datei jetzt so weit angepasst. Ich hoffe es funktioniert so wie es soll:

https://www.herber.de/bbs/user/93262.xlsm
(Bevor das funktioniert musst du den Dateinamen erst wieder auf 'Test-Datei2' ändern.)

Eine neue Spalte wird jetzt immer nur angefangen, wenn zu dem Datum von heute noch kein Eintrag da ist. Ansonsten werden die Werte in der Spalte nur aktualisiert.



Gruß Steffi


  

Betrifft: AW: Änderungen im zweiten Sheet speichern von: Christian
Geschrieben am: 21.10.2014 10:49:35

Hallo Steffi,

es war wie folgt:

Ich habe deinen Code in meine userform eingefügt, habe es ausprobiert, es hat sofort exakt so geklappt wie ich es mir vorgetellt habe. Ohne Kompromisse.
Ich weiß gar nicht wie ich dir danken soll...
Vielen vielen Dank.

Gruß,

Christian


 

Beiträge aus den Excel-Beispielen zum Thema "Änderungen im zweiten Sheet speichern"