Wat doet deze VBA code??

Status
Niet open voor verdere reacties.

Elerosse

Nieuwe gebruiker
Lid geworden
31 mrt 2020
Berichten
3
Hoihoi,

Ik kan meestal redelijk volgen wat een VBA code doet.
Nu ben ik echter met een bestaand bestand aan de gang dat een update behoeft en kom ik bij ELK blad in dit bestand de volgende code tegen waarvan ik geen idee heb wat die doet en waarvan ik vermoeden heb dat het het bestand onnodig zwaar en traag maakt.

Wie kan me helpen?

Groet
Elerosse


Private Sub CommandButton1_Click()
End Sub
Option Explicit


Private Sub Worksheet_Activate()
VeranderNaam Range("nummer")
End Sub


Private Sub Worksheet_Change(ByVal target As Excel.Range)
VeranderNaam Range("nummer")
End Sub


Sub VeranderNaam(target As Range)
Const sNAMECELL As String = "nummer"
Const sERROR As String = "Ongeldige werkbladnaam in cel "
Dim sSheetName As String

With target
If Not Intersect(.Cells, Range(sNAMECELL)) Is Nothing Then
sSheetName = Range(sNAMECELL).Value
If Not sSheetName = "" Then
On Error Resume Next
Me.Name = sSheetName
On Error GoTo 0
If Not sSheetName = Me.Name Then _
MsgBox sERROR & sNAMECELL
End If
End If
End With
End Sub
 
Hij verandert elke keer als je een werkblad activeert, of er iets in verandert, de naam van het werkblad op basis van een range die "nummer" heet.
 
Hoi OctaFish,

Dank je voor je reactie. Iets in die richting had ik wel verwacht.
Als ik dit test en ik verander de Range "Nummer" dan wordt de sheetname aangepast.
Bovenstaande lijkt me dan ook een erg omslachtige manier om de sheetname aan te passen aan de Range "Nummer" Dat kan mijn inziens ook handiger.

Thanx voor de toelichting.
 
gewoon met het handje aanpassen in het minst omslachtig
Code:
Private Sub Worksheet_Activate()
   VeranderNaam
End Sub


Private Sub Worksheet_Change(ByVal target As Excel.Range)
   If Not Intersect(target, Range("nummer")) Is Nothing Then VeranderNaam
End Sub


Sub VeranderNaam()
   On Error Resume Next
   If Me.Name <> Range("Nummer").Value Then
      Me.Name = Range("Nummer").Value
      If Me.Name <> Range("Nummer").Value Then
         MsgBox "Er is iets fout gegaan, mogelijk ongeldige werkbladnaam of naam bestaat al", vbCritical
      End If
   End If
   On Error GoTo 0
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan