Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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
Inhaltsverzeichnis

Bereich(Wenn Zelle leer dann Text)

Bereich(Wenn Zelle leer dann Text)
17.10.2013 12:03:15
Steffen
Guten Morgen,
ich hoffe Ihr könnt mir weiterhelfen.
In meiner Excel Datei möchte ich einen Bereich prüfen lassen, sobald hier eine
Formel gelöscht wird und keine Text eingegeben wurde, soll die Formel wieder gesetzt werden.
Bis jetzt sieht mein Code so aus:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.Intersect(Target, Range("B11:B24")) Is Nothing Then
Range(Target.Address).FormulaLocal = "=WENN(ISTFEHLER(SVERWEIS(C17;Eichgebühr;2;0));"";  _
_
_
SVERWEIS(C17;Eichgebühr;2;0))"
End If
End Sub

Ich weiß nur noch nicht wie ich die Range(Target.Address) richtig setze, so das er den Wert in die leere Zelle schreibt, statt auf den Bereich.
Vielen Dank!
Gruß steffen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich(Wenn Zelle leer dann Text)
17.10.2013 12:35:53
Rudi
Hallo,
weißt eigentlich was du da machst?
Ich glaube nicht.
Du schreibst bei jeder Änderung der Auswahl in jede Zelle außer B11:B24 die Formel.
Willst du das?
Worksheet_Change wäre erheblich angebrachter.
Range(Target.Address) ist Quatsch. Wozu die Adresse eines Bereichs ermitteln um dann einen Bereich zu erzeugen? Target reich völlig aus.
Gruß
Rudi

AW: Bereich(Wenn Zelle leer dann Text)
17.10.2013 14:21:34
Bastian
Hallo Steffen,
ich hoffe, ich habe Dich richtig verstanden: Wenn im Bereich B11:B24 eine Formel gelöscht wird, und nichts in die Zelle eingegeben wird, soll die Formel wieder in die Zelle. Wenn aber etwas eingegeben wird, kann die Formel überschrieben werden. Zellen, die keine Formel enthalten können auch überschrieben werden.
Wenn das so stimmt, versuch mal folgenden Code:
Option Explicit
Dim strAlterWert As String
Dim HasFormula As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B11:B24")) Is Nothing Then Exit Sub 'Nur Änderungen im Bereich B11: _
B24 berücksichtigen
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" And HasFormula = True Then
Application.EnableEvents = False
Target.FormulaLocal = strAlterWert  'Formel wieder in Zelle schreiben
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Verhindern, dass mehr als eine Zelle selektiert wird
On Error GoTo ErrorExit
Application.EnableEvents = False
ActiveCell.Select
ErrExit:
Application.EnableEvents = True
'Formel der ausgewaehlten Zelle merken, falls Formel vorhanden
If Left(Target.Formula, 1) = "=" Then
HasFormula = True
strAlterWert = Target.FormulaLocal
Else
HasFormula = False
End If
ErrorExit:
End Sub

Gruß, Bastian
Anzeige

416 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige