• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

getallen annvullen

Status
Niet open voor verdere reacties.

bascas

Gebruiker
Lid geworden
18 mei 2006
Berichten
441
Hallo, in kolom A staan personeelsnummers, in B de namen. Van iedere medewerker is een tabblad met dit nummer. Nu is de bedoeling dat het personeelsnummer wordt voorzien van 264. Dus Piet heeft nu 45, moet worden 264045. Hoe zou ik dat nu kunnen doen en dat ook de namen van de tabbladen meeveranderen. Aangezien het hier over de 200 medewerkers betreft.

Alvast bedankt voor het meedenken.

Bas
 

Bijlagen

  • aanvullen.xlsx
    31,7 KB · Weergaven: 36
Als het eenmalig is kun je voor het hernoemen de volgende macro gebruiken:
Code:
Sub Hernoemen()
    Dim i As Integer

    'Hernoem de bladen
    For i = 2 To ThisWorkbook.Sheets.Count
        curnam = ThisWorkbook.Sheets(i).Name
        ThisWorkbook.Sheets(i).Name = curnam + 264000
    Next

    'Wijzig de waarde in Kolom A
    For i = 1 To Range("A65536").End(xlUp).Row
        If Val(Blad1.Range("A" & i).Value2) > 0 Then
            Blad1.Range("A" & i).Value2 = Val(Blad1.Range("A" & i).Value2) + 264000
        End If
    Next

End Sub
 
Laatst bewerkt:
Bekijk bijlage scriptbestand.txtIn linux bestaat er een programma genaamd AWK.
Hiermee kun je dit heel makkelijk veranderen als je het opslaat als een CSV (comma-separated values).

Gelukkig bestaat er ook een equivalent van dit programma genaamd GAWK.
Download dit programma HIER

Installeer dit programma en ga naar de map: C:\Program Files (x86)\GnuWin32\bin\
Sla in dit pad het Excelbestand op met als eerste rij het nummer dat veranderd moet worden.
Sla in dit pad ook het bijgevoegde "scriptbestand.txt" op.

Ga nu naar de commandprompt (WindowsVlaggetje + R en typ cmd.exe)
Typ in: cd "C:\Program Files (x86)\GnuWin32\bin" en druk op enter

Typ dan: gawk.exe -f scriptbestand.txt "[het bestand met de nummers].csv" > uitvoer.csv en druk op enter

Er wordt nu een extra bestand gemaakt met de uitvoer (uitvoer.csv).
Wanneer je dit opent met Excel is het allemaal veranderd.

Dit lijkt allemaal meer dan het is, maar dit is veel beter dan alles met de hand :p
 
Laatst bewerkt:
@red

Dat lijkt niet te gaan lukken voor het wijzigen van de werkbladnamen.

Dit wel
Code:
Sub snb()
  for each sh in sheets
    sh.name= format(264000 +val(sh.name))
  Next

  [Blad!A1:A300]=[if(Blad1!A1:A300="","",264000+Blad1!A1:A300)]
End Sub
 
Hij doet het bij mij perfect op het voorbeeld van TS, anders had ik 'm niet geplaatst.
 
Ik dacht dat julie hier bezig waren met het "Hernoemen".
Het is een tabblad een naam geven. (niet meer en niet minder)
Als het eenmalig is kan je niet spreken van hernoemen.
 
De bladen hebben al een naam en moeten van een andere worden voorzien.
Dat wordt ook wel hernoemen genoemd.

Heb je ook nog iets nuttigs m.b.t. de vraag van TS te melden?
 
Laatst bewerkt:
Tabbladen hernoemen - Verwijderen en terugzetten

Tabbladen automatisch hernoemen met de ingevulde cel.
Hiermee kan er zonder beperkingen cellen worden ingevuld.

- Als in kolom A een cel leeg is, wordt het tabblad verborgen
- Als in kolom A de cel ingevuld is, tabblad automatisch zichtbaar.

Bekijk bijlage Tabbladen Hernoemen - Verwijderen en terugzetten.rar

Met de beste groeten,
Daniel
 
Hallo,
In de originele sheet staat deze code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Not Intersect(Target, Range("F3")) Is Nothing And Len(Target) >= 8 Then
For Each ws In Worksheets
If Not IsError(ws.[C6]) Then
If Right(ws.[C6], 8) = Right(Target, 8) Then ws.Select
End If
Next
End If
If Target.Column = 1 And Target <> "" Then
Sheets("999").Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Target
Sheets(Sheets.Count).Unprotect "bascas"

Sheets(Sheets.Count).Range("C3").Value = ActiveSheet.Name
Sheets("Main").Range(Target.Address).Offset(0, 7) = "=" & Target & "!$D$46"
Sheets("Main").Range(Target.Address).Offset(0, 8) = "=" & Target & "!$I$46"
Sheets("Main").Range(Target.Address).Offset(0, 9) = "=" & Target & "!$N$46"
Sheets("Main").Range(Target.Address).Offset(0, 10) = "=" & Target & "!$S$46"
Sheets("Main").Range(Target.Address).Offset(0, 11) = "=" & Target & "!$T$46"
Sheets("Main").Range("D" & Target.Row).Formula = "=HYPERLINK(""" & Target & "!A1" & """,""" & Target & """)"
ElseIf Not Intersect(Target, Range("F3")) Is Nothing And Target <> "" Then
Set knr = Range("E8:E" & Rows.Count).Find(Target, , xlValues, xlWhole)
If Not knr Is Nothing Then Worksheets(knr.Offset(0, -1).Text).Activate
ElseIf Not Intersect(Target, Range("F4")) Is Nothing And Target <> "" Then
Application.Goto Sheets(CStr(Target.Value)).Range("A1")
ElseIf Not Intersect(Target, Range("F5")) Is Nothing And Target <> "" Then
Set knr = Range("B9:B" & Rows.Count).Find(Target, , xlValues, xlWhole)
If Not knr Is Nothing Then Worksheets(knr.Offset(0, -1).Text).Activate
End If

End If
Sheets(Sheets.Count).Protect "bascas"

End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c
For Each c In Sheets("Main").Range("D8:D250")
If c > 0 Then
c.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:="'" & c.Value & "'!A1", TextToDisplay:=" " & c.Value
End If
Next
End Sub

Waar zou ik dan die code moeten plaatsen?

Groet Bas
 
Bas,
Kan die formule ook dienen om tabbladen te hernoemen?
grtjs Daniel
 
Kopieer mijn macrootje, plak die in de ThisWorkbook, zet de cursor ergens in het midden van de code en druk op F5.
Voila, alles heeft het nieuwe nummer.
 
@edmoor: De tabbladen veranderen wel, maar de nummers in kolom A niet. Waar zou dat aan kunnen liggen.

groet Bas
 
Dan zou ik je worksheet moeten zien want in het voorbeeld dat je stuurde werkt het prima en daar is het op gebaseerd.
 
In afwachting hoever Bas gevorderd is?

Het is aan mij niet om dit uit te testen. Als je 2x op F5 drukt verdubbelen de nummers.
Sorry, uw macrootje past niet in dit contekst.
 
Er staat ook bij dat het voor een eenmalige aanpassing is.
 
Ok.
Dat wijkt nogal af van je voorbeeld. Schakel eerst in het blad Main de routine Worksheet_Change uit door er Exit Sub als eerste regel onder de Sub in te zetten.
Gebruik dan de volgende macro en schakel daarna in het blad Main de routiine Worksheet_change weer in.

Code:
Sub Hernoemen()
    Dim i As Integer

    'Hernoem de bladen
    For i = 2 To ThisWorkbook.Sheets.Count
        curnam = ThisWorkbook.Sheets(i).Name
        ThisWorkbook.Sheets(i).Name = curnam + 264000
    Next

    'Wijzig de waarde in Kolom A
    For i = 1 To Range("A65536").End(xlUp).Row
        If Val(Sheets("main").Range("A" & i).Value2) > 0 Then
            Sheets("main").Range("A" & i).Value2 = Val(Sheets("main").Range("A" & i).Value2) + 264000
        End If
    Next
End Sub

Dit is echt om eenmalig die nummers om te zetten. Dat had ik uit je initiële vraag begrepen.
 
Laatst bewerkt:
Edmoor, bedankt voor de moeite die je neemt om te helpen. Maar nog steeds worden alleen de tabbladen verandert en niet de nummers in kolom A. Ik krijg als foutmelding: " Type komen niet overeen" .

Wellicht extra bruikbare info. Werk met een Mac, met excel voor de Mac 2011, versie 14.0.2.

groeten Bas
 
bascas,

Als je dit eens probeerd, zie het rode.
Code:
ThisWorkbook.Sheets(i).Name = curnam [COLOR="#FF0000"]&[/COLOR] 264000
Voor het 2e gedeelte van de macro moet de cel beginnen met een cijfer, anders werkt het niet.
 
Laatst bewerkt:
Edmoor, bedankt voor de moeite die je neemt om te helpen. Maar nog steeds worden alleen de tabbladen verandert en niet de nummers in kolom A. Ik krijg als foutmelding: " Type komen niet overeen" .

Wellicht extra bruikbare info. Werk met een Mac, met excel voor de Mac 2011, versie 14.0.2.

groeten Bas

Bij mij doet hij het prima in het blad dat je me stuurde.
Heb je wel die worksheet_change even uitgeschakeld zoals ik vermelde en heb je de aangepaste macro gebruikt?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan