Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketCelle med formel skal ændre Ark-navnet

 Besvar Besvar
Forfatter
Krameren Se dropdown
Forum Begynder
Forum Begynder


Medlem: 03.Feb.2019
Land: Danmark
Status: Offline
Point: 1
Direkte link til dette indlæg Emne: Celle med formel skal ændre Ark-navnet
    Sendt: 03.Feb.2019 kl. 17:37
Jeg har rodet rimelig meget rundt med et udspil til en læsekontrakt, hvor læreren skal kunne skrive en masse data på en forside og så slår eksempelvis navn, klasse og antal sider der skal læses igennem på de følgende ark i mappen - ligeledes slår elevernes data igennem på hovedarket. Alt det har jeg lavet.


Når man på forsiden ved 1 skriver navnet på den første elev - f.eks. Peter Hansen, Så skrives der automatisk Peter Hansen på det ARK tilhørende elev1.

Det kunne være fedt hvis det elevens navn Peter Hansen, blev automatisk lavet til navnet på Arket (sheet). Dvs. læreren skriver navnet på forsiden - navnet slår igennem ude på elev ARKET og så ændrer arkets navn til elevens navn.
uploads/2386/læsekontrakt-blank-31elever.xlsm - læsekontrakt-blank-31elever.xlsm
Til top



Til top
maxzpad Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 04.Aug.2016
Land: Danmark
Status: Offline
Point: 569
Direkte link til dette indlæg Sendt: 05.Feb.2019 kl. 09:00
Dette kan kun lade sig gøre med en makro/VBA-kode. Det forudsætter, at du har 100 % styr på dine arks indeksnumre, dvs. i hvilken rækkefølge de står fra venstre mod højre - inklusive eventuelle skjulte ark.

Samtidig skal du være opmærksom på, at to ark ikke kan have identiske navne, og at arknavnet højst kan være 31 karakterer langt.

Hvis dit hovedark er placeret længst til venstre (og der ingen skjulte ark er til venstre for arket), vil dette ark have indeksnummer 1. Hvis det første elev-ark står umiddelbart til højre for hovedarket (og der ingen skjulte ark er imellem dem), vil dette første elev-ark have indeksnummer 2, og så fremdeles.

En makro skal så detektere indtastninger i de celler, hvor elevernes navne står. Hvis eleven står i række 1, og vedkommendes data skal stå i arket med indeksnummer 2, kan det skrives således i hovedarkets kodemodul:

Private Sub Worksheet_Change(ByVal Target As Range)

    ' Hvis ændringen foretages i kolonne 1 (kolonne A)
    If Target.Column = 1 Then
   
        ' Gå videre ved fejl (f.eks. arknavn allerede anvendt)
        On Error Resume Next
       
        ' Hvis indholdet af cellen ikke er blank/tom
        If Target <> "" Then
       
            ' Navnet for arket med indeksnr. = cellens rækkenr. plus 1
            ' sættes lig med cellens 31 første karakterer fra venstre
            Sheets(Target.Row + 1).Name = Left(Target.Value, 31)
           
        Else
       
            ' Hvis indholdet af cellen ER blank/tom
            ' sættes arknavnet til "Ark" + rækkenr. + 1
            Sheets(Target.Row + 1).Name = "Ark" & Target.Row + 1
           
        End If
       
        ' Ved fejl vises Excels fejlbesked
        If Err.Number <> 0 Then
       
            MsgBox Err.Description, vbOKOnly + vbExclamation, "Fejl i arknavn"
           
        End If
       
        On Error GoTo 0
   
    End If

End Sub

Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk