Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Blattnamen-abhängig Daten eintragen
#1
Hallo zusammen,

ich will in einen Kalender die Feiertage eintragen lassen. Das mache ich mit folgenden Codes:

DieseArbeitsmappe:
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
   Dim iSht As Integer

   '  Pwd = "Password"                                          ' für ein festes Passwort
   '  ActiveSheet.Unprotect Pwd
  
   For iSht = 1 To Sheets.Count
      If Sheets(iSht).Name <> "Feiertage" Then
         Call Feiertage_eintragen
      End If
      Call Datum_Uhrzeit_anspringen                                'Datum_anspringen
    
    Next iSht
  
   '  ActiveSheet.Protect Pwd
   '  ActiveSheet.Name = Range("z9").Value
  
End Sub

Allgemeines Modul:
Code:
Sub Feiertage_eintragen()              ' Beverley
   Dim lngZeile As Long
   For lngZeile = 2 To IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
      If Not IsError(Application.Match(Cells(lngZeile, 1), Worksheets("Feiertage").Range("C59:C87"), 0)) _
             Then Cells(lngZeile, 2) = "F"
   Next lngZeile
End Sub

Warum wird aber trotzdem das F auch in das Blatt "Feiertage" eingetragen?
Antworten Top
#2
Hallo Ralf,

Es wird immer in das aktivierte Blatt geschrieben.

Im Ereignis Makro ganz am Anfang vor der For Schleife eine If Abfrage einbauen.

In der Art: If ActiveSheet.Name <> "Feiertage" Then

So wie ich das Sehe, macht die Schleife keinen Sinn. Damit alle Blätter abgearbeitet werden, müsstest Du iSht an das Modul weitergeben. Da ich per Handy unterwegs bin, kann ich Dir jetzt keinen Code zeigen.
Gruß Atilla
Antworten Top
#3
Hallo Ralf,

dieses Konstrukt ist doch "Lötzinn", aber ohne Kolophonium. ;)
Bei jedem Aktivieren eines Blattes wird die Schleife so oft wie Blätter vorhanden -1 durchlaufen, um dann jedes Mal alle Tage abzuklappern und Feiertage dann trotzdem immer wieder nur im aktiven Blatt zu kennzeichnen. :)
Das passiert so auch mit dem Blatt "Feiertage", auch wenn es beim Abklappern nicht mitgezählt wird.

Gruß Uwe
Antworten Top
#4
Hallo Uwe,


So drastisch konnte ich es nicht ausdrücken. Wink
Gruß Atilla
Antworten Top
#5
alles klar, dann werde ich mal meine Ent-Lötsaugpumpe verwenden!

Danke!
Antworten Top
#6
Hallo Ralf,

so wäre es schon besser:

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'  Pwd = "Password"                                          ' für ein festes Passwort
'  ActiveSheet.Unprotect Pwd

  If Sh.Name <> "Feiertage" Then
    Call Feiertage_eintragen
    Call Datum_Uhrzeit_anspringen                                'Datum_anspringen
  End If
  
'  ActiveSheet.Protect Pwd
'  ActiveSheet.Name = Range("z9").Value
End Sub

Gruß Uwe
Antworten Top
#7
Hi,

(18.11.2014, 15:35)Rabe schrieb: alles klar, dann werde ich mal meine Ent-Lötsaugpumpe verwenden!

habe es jetzt so gelöst:
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

   '  Pwd = "Password"                                          ' für ein festes Passwort
   '  ActiveSheet.Unprotect Pwd
  
      If ActiveSheet.Name <> "Feiertage" Then
         Call Feiertage_eintragen
      End If
      Call Datum_Uhrzeit_anspringen                                'Datum_anspringen
  
   '  ActiveSheet.Protect Pwd
   '  ActiveSheet.Name = Range("z9").Value
End Sub

eure Tips waren clever! Wie immer hier im Excel Forum!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste