Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
Anzeige
@ 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?
AW: @ GerdL
27.03.2022 20:28:24
GerdL
Nicht so. Aber jenseits vom Text u. Bespiel ist die Auffassung des Fragestellers entscheidend.
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige