MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 29.02.2008, 08:17   #1
Lars M
MOF User
MOF User
Standard Excel 2007 - Zelle dynamisch füllen

Hallo,

wäre es möglich eine Zelle, die eine Formel enthält so zu gestalten, dass man sie mit einem Wert manuell überschreiben kann, die Formel aber bei Löschung dieses Wertes wieder hergestellt wird?

Gruß

Lars
Lars M ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.02.2008, 08:50   #2
EarlFred
MOF Guru
MOF Guru
Standard

Hallo Lars,
mir fällt da nur die Möglichkeit ein, ein separates Blatt in der Tabelle anzulegen (im Baispiel "Archiv"), in dem die Formeln abgelegt werden und bei bedarf wieder hergestellt werden können.

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = "" Then Target.Formula = Sheets("Archiv").Range(Target.Address).Formula
    If Target.HasFormula Then Sheets("Archiv").Range(Target.Address).Formula = Target.Formula
End Sub
Vor der Verwendung müssen natürlich erstmal alle Formeln ins Archiv übertragen werden. Das geht entweder von Hand oder mit diesem Makro:
Code:

Sub archivieren_erstes_Mal()
    Set rng = Cells.SpecialCells(xlCellTypeFormulas)
    For Each Formel In rng
        Sheets("Archiv").Range(Formel.Address).Formula = Formel.Formula
    Next
End Sub
Hoffe, es hilft Dir weiter.

Grüße
EarlFred

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 8 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,054% per 13.08.2019) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.02.2008, 10:54   #3
Lars M
Threadstarter Threadstarter
MOF User
MOF User
Standard

Dann kann ich aber nur alle Formeln des Tabellenblattes wieder herstellen. Super wäre, wenn man das auf bestimmte Zellen einschränken könnte.

Wo muss ich denn:

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = "" Then Target.Formula = Sheets("Archiv").Range(Target.Address).Formula
    If Target.HasFormula Then Sheets("Archiv").Range(Target.Address).Formula = Target.Formula
End Sub
einfügen.

Der Code zum Archivieren ist kein Problem.

Danke!

Lars
Lars M ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.02.2008, 11:12   #4
EarlFred
MOF Guru
MOF Guru
Standard

Hi Lars,

folgende Ergänzung prüft, ob die Änderung in einem bestimmten Bereich liegt (im Beispiel A1:A100). Wenn nicht, wird der Block übersprungen.

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
    Set ber = Range("A1:A100")
    If Not Intersect(Target, ber) Is Nothing Then
        Application.EnableEvents = False
        If....
        If....
        Application.EnableEvents = True
    End If
End Sub
Ich habe nochmal Application.EnableEvents = False / True hinzugefügt, dann ruft sich das Änderungsereignis nicht selbst auf.

Grüße
EarlFred

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 8 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,054% per 13.08.2019) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.03.2008, 05:09   #5
Lars M
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hi,

wie wird der Code eingebunden?

Danke

Lars
Lars M ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.03.2008, 07:26   #6
EarlFred
MOF Guru
MOF Guru
Standard

Hallo Lars,

der Code mit "Private Sub Worksheet_Change(ByVal Target As Range)" gehört auf Ebene des betreffenden Arbeitsblattes.

Grüße
EarlFred

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 8 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,054% per 13.08.2019) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.