Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1876to1880
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

Routine bei Worksheet_Activate

Routine bei Worksheet_Activate
27.03.2022 18:19:29
AL
Hallo zusammen,
ich brächte Hilfe bei folgender Problemstellung:
Wenn das Tabellenblatt "Tabelle2" aktiviert wird, dann sollen zwei Routinen eintreten:
1. Wenn im Bereich C7:C13 #NV sind, dann sollen in den entsprechenden Zellen des Bereichs E7:E13 FALSCH eingesetzt werden.
2. Suche um Bereich C7:C13 die letzte Zelle mit JA und trage in die entsprechende Zelle des Bereichs E7:E13 WAHR ein.
Für das erste Problem habe ich eine (eher wenig elegante) Lösung gefunden (siehe Beispielmappe). Ich brächte Hilfe bei der zweiten Lösung.
Danke schon mal vorab.
Schönen Sonntag noch.
AL
https://www.herber.de/bbs/user/152080.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Routine bei Worksheet_Activate
27.03.2022 18:56:34
AlterDresdner
Hallo,
ein Vorschlag

Private Sub Worksheet_Activate()
Dim zeile As Long, zmerk As Long
With Tabelle2
For zeile = 7 To 13
If IsError(.Cells(zeile, 3)) Then
.Cells(zeile, 5) = False
ElseIf .Cells(zeile, 3) = "JA" Then
zmerk = zeile
End If
Next zeile
If zmerk > 0 Then .Cells(zmerk, 5) = True 'mindestens ein JA gefunden
.Range("H9").Select
End With
End Sub
Gruß der ALteDresdner
AW: Routine bei Worksheet_Activate
27.03.2022 18:57:41
AlterDresdner
Hallo,
ein Vorschlag:

Private Sub Worksheet_Activate()
Dim zeile As Long, zmerk As Long
With Tabelle2
For zeile = 7 To 13
If IsError(.Cells(zeile, 3)) Then
.Cells(zeile, 5) = False
ElseIf .Cells(zeile, 3) = "JA" Then
zmerk = zeile
End If
Next zeile
If zmerk > 0 Then .Cells(zmerk, 5) = True 'mindestens ein JA gefunden
.Range("H9").Select
End With
End Sub
Gruß der ALteDresdner
Anzeige
AW: Routine bei Worksheet_Activate
27.03.2022 19:18:11
ralf_b

Private Sub Worksheet_Activate()
Dim rng As Range, rngBereich As Range
With Tabelle2
Set rngBereich = .Range("C7:c13")
'zu 1.
For Each rng In rngBereich
If IsError(rng) Then rng.Offset(, 2).Value = False
Next
'zu 2.
Set rng = rngBereich.Find("JA", LookIn:=xlValues, Lookat:=xlWhole, Searchdirection:=xlPrevious)
If Not rng Is Nothing Then
rngBereich.Offset(, 2).Value = False
rng.Offset(, 2).Value = True
End If
End With
'CODE:
'Suche den letzten Eintrag im Bereich C7:C13 der
'das Wort JA enthaelt und trage in die entsprechende
'Zelle im Bereich E7:E13 WAHR ein.
'Alle anderen Zellen in E7:E13 sollen FALSCH enthalten.
End Sub

Anzeige
AW: Routine bei Worksheet_Activate
27.03.2022 19:46:18
GerdL
Moin

Private Sub Worksheet_Activate()
Dim C As Range
With WorksheetFunction
For Each C In Range("C7:C13")
If .IsNA(C) Then C.Offset(0, 2) = False
If C.Text = "JA" Then
If .CountIf(Range("C7:C13"), "JA") = .CountIf(Range(Range("C7"), C), "JA") Then C.Offset(0, 2) = True
End If
Next C
End With
End Sub
Gruß Gerd
@ GerdL
27.03.2022 19:58:24
ralf_b
die Anforderung für Punkt 2 lese ich so, das alle Werte auf Falsch gesetzt werden sollen, außer das letzte JA. Somit auch ein evtl. vorhandenes früheres JA.
Die Anforderungen scheinen sich nicht miteinander zu vertragen.
Wie siehst du das?
Anzeige
AW: @ GerdL
27.03.2022 20:28:24
GerdL
Nicht so. Aber jenseits vom Text u. Bespiel ist die Auffassung des Fragestellers entscheidend.
AW: @ GerdL
27.03.2022 20:58:02
AL
Guten Abend zusammen,
ja richtig, alle Werte bis auf das letzte Ja sollen auf Falsch gesetzt werden.
Danke euch für die Hilfe.
AL
AW: Wie entsteht der Fehlerwert #NV an der Stelle?
27.03.2022 19:39:44
JoWE

132 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige