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

Activate or NO Activate

Activate or NO Activate
ing.grohn
Hallo Forum,
man liest allenthalben man möge auf Select und Activate verzichtet.
Ich halte mich so gut es geht daran.
Wenn ich aber testen will ob ein Workbook geöffnet ist oder nicht gehe ich so vor:
On Error Resume Next
Workbooks("Personal-" & Jahr & ".xls").Activate
If Err.Number = 9 Then
Workbooks.Open Filename:=Pfad
End If
Workbooks("Personal-" & Jahr - 1 & ".xls").Activate
For Each ws In Workbooks("Personal-" & Jahr - 1 & ".xls").Worksheets
If Left(ws.Name, 2) = "PN" Then
'Sheets(ws.Name).Select
Tabelle = ws.Name
With Sheets(ws.Name)
.Unprotect
If Not SheetExist(Tabelle, Workbooks("Personal-" & Jahr & ".xls")) Then
MsgBox ("Mitarbeiter " & Tabelle & " ist nicht vorhanden!! (" & Pfad & ")")
Else
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle).Unprotect
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle).  _
Cells(4, 22).Value = .Cells(9, 22).Value
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle).  _
Cells(3, 22).Value = .Cells(5, 22).Value
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle).Protect
End If
.Protect
End With
End If
Next

(Der Pfad wurde vorher bestimmt)
Das Ding funktioniert aber nur dann richtig, wenn ich nach dem Testen/Öffnen der "neuen" Personal-2012-Datei die "alte" Personal-2011-Datei "Activiere"
wie kann ich hier auf Activate verzichten?
Bedankt für die Hilfe!
mit freundlichen Grüßen
Albrecht

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Activate or NO Activate
31.10.2011 13:38:46
guentherh
Hallo Albrecht,
probiers mal mit:
On Error Resume Next
Workbooks("Personal-" & Jahr & ".xls").Activate
If Err.Number = 9 Then
Workbooks.Open Filename:=Pfad
End If
For Each ws In Workbooks("Personal-" & Jahr - 1 & ".xls").Worksheets
If Left(ws.Name, 2) = "PN" Then
Tabelle = ws.Name
With ws
.Unprotect
If Not SheetExist(Tabelle, Workbooks("Personal-" & Jahr & ".xls")) Then
MsgBox ("Mitarbeiter " & Tabelle & " ist nicht vorhanden!! (" & Pfad & ")")
Else
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle).Unprotect
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle). _
Cells(4, 22).Value = .Cells(9, 22).Value
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle). _
Cells(3, 22).Value = .Cells(5, 22).Value
Workbooks("Personal-" & Jahr & ".xls").Sheets(Tabelle).Protect
End If
.Protect
End With
End If
Next
1.) Sheets() bräuchte das Workbook, sonst sucht es im aktiven WB
2.) Wenn WS schon das worksheet ist, direkt verwenden
Gruß,
Günther
Anzeige
AW: Activate or NO Activate
31.10.2011 13:50:38
ing.grohn
Hallo Günther,
man achte auf die Feinheiten!
Vielen Dank
Mit freundlichen Grüßen
Albrecht
AW: Activate or NO Activate
31.10.2011 15:33:45
guentherh
Bitte, gern geschehen.
Ich persönlich verwende keinen With-Befehl.
vielmehr setzte ich Variablen wie QuellWS und ZielWS ein.
muss ich einige Buchstaben mehr tippen, kann's aber länger lesen.
mit
Set ZielWS=Workbooks("Personal-" & Jahr & ".xls").Sheets(ws.Name)
lesen sich Folgezeilen wie
ZielWS.unprotect
ZielWS.Cells(4,22) = WS.Cells(9,22)
für mich auch ohne With-Anweisung ganz gut.
Wenn Dir das gefällt, kannst du es ja mal ausprobieren - reine Geschmackssache!
Beste Grüße,
Günther
Anzeige
AW: Activate or NO Activate
31.10.2011 19:14:50
ing.grohn
Hallo Günther,
ich werde wohl künftig beide Wege gehen.
Die With - Schachtelungen strukturieren sehr schön.
Aber bit dem Set für das Ziel kann ich mich gut anfreunden.
Tipparbeit ist eben sowieso da (was solls)
Einen schönen Abend.
Mit freundlichen Grüßen
Albrecht

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige