Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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

Zellen- Inhalt auf Zahl 0 zurücksetzen

Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 17:35:00
Lemmi
Hallo zusammen,
ich habe eine Arbeitsliste in der durch eine Drop- Down Menü Auswahl 0,1,2,3 sowie Leerstelle- Auswahl durchgeführt wird. (ab Spalte M6)
In der Spalte ab O6 wird eine Bewertung Durchgeführt. Diese wird auch durch Drop- Down umgesetzt!
Wird nun in der Spalte O die Auswahl "erledigt" getroffen, so soll die Zelle in der Zeile Spalte M auf Zahl 0 zurückgesetzt !
Zum Beispiel M6 erfolgt die Auswahl erledigt und in O6 steht 3 so wird die Zahl 3 wieder zurückgesetzt auf 0
Nach dem zurücksetzen soll die Auswahl der Drop- Down Menü bestehen bleiben!
Es sind alle drei bedingte Formatierungen in Spalte M belegt. ( 1= rot ; 2= gelb; 3= grün ),deshalb wird eine Lösung wahrscheinlich nur mit VBA möglich sein!... oder ?
Gruß
Lemmi

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 17:46:18
Uduuh
Hallo,

Wird nun in der Spalte O die Auswahl "erledigt" getroffen, so soll die Zelle in der Zeile  _
Spalte M auf Zahl 0 zurückgesetzt !
Zum Beispiel M6 erfolgt die Auswahl erledigt und in O6 steht 3 so wird die Zahl 3 wieder zurü _
ckgesetzt auf 0


wo den nun? Erledigt in M oder O?


Es sind alle drei bedingte Formatierungen in Spalte M belegt. 


Werte kannst du ohnehin nicht per bed. Formatierung ändern.
Ins Modul der Tabelle:


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERRHDL
Application.EnableEvents = False
If Target.Count = 1 And Target.Column = 15 And Target.Value = "erledigt" Then
Target.Offset(0, -2) = 0
End If
ERRHDL:
Application.EnableEvents = True
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 18:17:38
Uduuh
Hallo,
jetzt auf einmal O und Q?

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERRHDL
Application.EnableEvents = False
If Target.Count = 1 And Target.Column = 17 Then
Select Case LCase(Target.Value)
Case "erledigt": Target.Offset(0, -2) = 0
Case "offen":    Target.Offset(0, -2) = 2
End Select
End If
ERRHDL:
Application.EnableEvents = True
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 18:34:00
Lemmi
Hallo Udo,
Entschuldigung für mein falsches und unpräzises Absetzen der in Spalte O und Q !
Hab das Marko eingesetzt .... und leider tut sich nichts?
Kannst Du noch einmal schauen! Vieleicht sogar mit der Datei hochladen!
Gruß
Lemmi
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 18:58:00
Uduuh
Hallo,

Hab das Marko eingesetzt


wo?
Das ist jetzt für O und Q. Ändere ggfs. die 17 in 15
Gruß aus’m Pott
Udo

AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 20:01:00
Lemmi
Hallo Udo,
Dein Hinweis war richtig! habe da Marko falsch eingesetzt! jetzt läuft alles!
Vielen Dank!
Darf ich noch zwei Fragen stellen?
Gruß
Lemmi
Anzeige
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 21:38:35
Uduuh
Hallo,

Darf ich noch zwei Fragen stellen?


Dafür ist das Forum da.
Gruß aus’m Pott
Udo

AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 22:21:42
Lemmi
Hallo Udo,
wie bekomme ich die Funktion in das vorhandenen Marko eingebunden?
Function myKW(newD As Date) As Integer
Dim myDay As Double
myDay = DateSerial(Year(newD + (8 - Weekday(newD)) Mod 7 - 3), 1, 1)
myKW = (newD - myDay - 3 + (Weekday(myDay) + 1) Mod 7) \ 7 + 1
End Function



Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet, n As Long
If Target.Count > 1 Then Exit Sub 'nicht bei Markierung mehrerer Zellen
Set ws = ActiveSheet
n = 16
'bestimmte Excel-Aktivitäten abschalten
getMoreSpeed True
If Target.Column = n Then
'wenn die Anzahl der Aktivitäten im Change-Ereignis unübersichtlich werden, _
dann sollte man zusammenhängende Aktionen in Unterprozeduren auslagern und _
die aktive Tabelle sowie Target als Parameter übergeben
x_Felder_Setzen ws, Target, n
getMoreSpeed False
'und Tschüs...
Exit Sub
End If
'If Application.CutCopyMode Then Exit Sub 'nicht beim Kopieren/Ausschneiden
'Veränderungen im Bereich C6:O1000 werden in E3 mit Datum protokolliert
If Not Intersect(Target, ws.Range("C6:O1000")) Is Nothing Then
ws.Range("E3") = Now
'Veränderungen im Bereich E6:E1000 werden in derjewaligen Zeile in Spalte C mit Datum  _
_protokolliert
If Not Intersect(Target, ws.Range("E6:F1000")) Is Nothing Then
ws.Range("C" & Target.Row) = Date
End If
'Veränderungen im Bereich G6:H1000,M6:M1000,O6:O1000 werden in derjewaligen Zeile und  _
Spalte N mit Datum protokolliert
If Not Intersect(Target, ws.Range("G6:H1000,M6:M1000,O6:O1000")) Is Nothing Then
ws.Range("N" & Target.Row) = Date
End If
'Veränderungen im Bereich H6:H1000 werden in derjewaligen Zeile und Spalte H  mit  _
Datum protokolliert
If Not Intersect(Target, ws.Range("H7:H1000")) Is Nothing Then
'Target.Value = Target.Value & "  " & Now ' mit Datum und Uhrzeit: hh:mm:ss
'oder
'Target.Value = Target.Value & "  " & Date  ' nur mit Datum
'oder
' mit Datum und KW
Target.Value = Target.Value & ",   " & Date & ", KW" & myKW(Date) ' mit Datum und KW; _
Function myKW(newD As Date) As Integer ist hinzu gekommen
End If
End If
getMoreSpeed False
Set ws = Nothing
End Sub



Private Sub x_Felder_Setzen(y_ws As Worksheet, y_Target As Range, y_N As Long)
Dim rg1 As Range, rg2 As Range, rg3 As Range, _
s1 As String, _
n1 As Long, _
ok1 As Boolean, ok2 As Boolean
s1 = "x"
If s1 = y_Target.Value Then
'Zelle In Spalte 'A' gleiche Zeile
Set rg1 = y_Target.Offset(0, (-y_N + 1))
If "" = rg1.Value Then
'wenn Zelle in Spalte 'A' leer, dann Makro-Ende
Set rg1 = Nothing
y_Target.Value = ""
Exit Sub
Else
'Prüfen, ob in Spalte 'B' gleiche Zeile der Wert 0 steht, _
(1. Zeile Themenbereich)
ok1 = rg1.Offset(0, 1).Value = 0
End If
If ok1 Then
'wenn in Spallte B der Wert '0' steht (also 1. Zeile Themenbereich)
ok2 = True
'nächste Zelle in Spalte 'A'
Set rg2 = rg1.Offset(1, 0)
Do While ok2
'solange Schleife durchlaufen, wie in der nächsten Zelle in Spalte 'A' _
der gleiche Wert steht wie in der Zelle darüber
If rg2.Value = rg1.Value Then
'nicht jede Zelle in Spalte 'P' einzeln löschen, sondern erst _
alle Zellen erfassen
If rg3 Is Nothing Then
Set rg3 = rg2
Else
Set rg3 = Union(rg3, rg2)
Set rg2 = rg2.Offset(1, 0)
End If
Else
'Schleifenabbruch
ok2 = False
End If
Loop
If Not rg3 Is Nothing Then
'da die Zellen der Spalte 'A' erfaßt wurden, den Wertebereich um _
15 Spalten nach rechts verschieben (Spalte 'P')
rg3.Offset(0, (y_N - 1)).Value = ""
End If
Else
'wenn nicht 1. Zeile im Themenbereich
n1 = rg1.Value
'suchen des 1. Wertes (ist somit 1. Zeile im Themenbereich
'da die Zellen der Spalte 'A' formatiert sind, muß xlFormulas statt xlValues _
angegeben werden
Set rg1 = y_ws.Columns(1).Find(n1, , xlFormulas, xlWhole, xlByColumns, xlNext)
If Not rg1 Is Nothing Then
rg1.Offset(0, (y_N - 1)).Value = ""
End If
End If
End If
Set rg1 = Nothing
Set rg2 = Nothing
Set rg3 = Nothing
End Sub


Gruß
Lemmi

Anzeige
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 22:32:08
Lemmi
Hallo Udo!
zweite Frage!
...kann man die vielen Markos kleiner und schneller machen?
Eine Lösung sollte man sicherlich in einem anderen Beitrag erarbeiten!
Gruß
Lemmi
AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
02.09.2008 23:12:00
Uduuh
Hallo,
wie, wo, was?
Gruß aus’m Pott
Udo

AW: Zellen- Inhalt auf Zahl 0 zurücksetzen
03.09.2008 07:28:08
Lemmi
Hallo Udo,
wie beschrieben / angezeigt habe ich bereits eine

Private Sub Worksheet_Change(ByVal Target As Range
und soweit ich bis her mitbekommen habe, muss man Dein


Private Sub Worksheet_Change(ByVal Target As Range Einbinden!.....
Ich habe mal Dein Marko nach
getMoreSpeed False
Set ws = Nothing
......hier eingesetzt......
End Sub


funktioniert auch .....oder gibt es noch einen besseren Platz? ist die der Richtige Platz?
Gruß
Lemmi

Anzeige

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige