ewaldmauritz
Gebruiker
- Lid geworden
- 19 okt 2011
- Berichten
- 87
Onderstaande code werkt bijna zoals het zou moeten. Het geeft tabbladen een naam en neemt dat over uit respectievelijk de invoer in G4:G24 of H4:H9. Overigens heb ik dit gedeeltelijk gekopieerd van het forum op worksheet.nl.
Wat ik graag nog anders zou willen is het volgende:
Bij helerange1 (het eerste gedeelte van de code met range G4:G24) worden de tabbladen "Inlogpagina", "Totaaloverzicht", "TJ", "TTH" en "TV" genegeerd. Dit wil ik eigenlijk vervangen door het negeren van tabblad "Inlogpagina" + alle tabbladen met een naam uit H4:H9 (helerange2).
En ook het omgekeerde:
Bij helerange2 (het tweede gedeelte van de code met range H4:H9) wordt het tabblad "Inlogpagina" genegeerd. Dit wil ik eigenlijk vervangen door het negeren van tabblad "Inlogpagina" + alle tabbladen met een naam uit G4:G24 (helerange1).
Hoe moet onderstaande code hiervoor worden gewijzigd?
Wat ik graag nog anders zou willen is het volgende:
Bij helerange1 (het eerste gedeelte van de code met range G4:G24) worden de tabbladen "Inlogpagina", "Totaaloverzicht", "TJ", "TTH" en "TV" genegeerd. Dit wil ik eigenlijk vervangen door het negeren van tabblad "Inlogpagina" + alle tabbladen met een naam uit H4:H9 (helerange2).
En ook het omgekeerde:
Bij helerange2 (het tweede gedeelte van de code met range H4:H9) wordt het tabblad "Inlogpagina" genegeerd. Dit wil ik eigenlijk vervangen door het negeren van tabblad "Inlogpagina" + alle tabbladen met een naam uit G4:G24 (helerange1).
Hoe moet onderstaande code hiervoor worden gewijzigd?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wsh As Worksheet, r As Range, helerange As Range
Set helerange1 = Range("G4:G24")
Set helerange2 = Range("H4:H9")
If Target.Count = 1 And Not Intersect(Target, helerange1) Is Nothing And Target <> "" Then
If WorksheetFunction.CountIf(helerange1, Target) > 1 Then
MsgBox "Deze naam bestaat al." & vbCr & vbCr & _
"Je kan geen 2 tabbladen dezelfde naam geven.", vbCritical + vbOKOnly
Target.ClearContents
Exit Sub
Else
For Each wsh In ThisWorkbook.Worksheets
If WorksheetFunction.CountIf(helerange1, wsh.Name) = 0 And wsh.Name <> "Inlogpagina" And wsh.Name <> "Totaaloverzicht" And wsh.Name <> "TJ" And wsh.Name <> "TTH" And wsh.Name <> "TV" Then
wsh.Name = Target
Target.Select
Exit Sub
End If
Next
End If
End If
If Target.Count = 1 And Not Intersect(Target, helerange2) Is Nothing And Target <> "" Then
If WorksheetFunction.CountIf(helerange2, Target) > 1 Then
MsgBox "Deze naam bestaat al." & vbCr & vbCr & _
"Je kan geen 2 tabbladen dezelfde naam geven.", vbCritical + vbOKOnly
Target.ClearContents
Exit Sub
Else
For Each wsh In ThisWorkbook.Worksheets
If WorksheetFunction.CountIf(helerange2, wsh.Name) = 0 And wsh.Name <> "Inlogpagina" Then
wsh.Name = Target
Target.Select
Exit Sub
End If
Next
End If
End If
End Sub