Avatar billede bobjoern Nybegynder
05. december 2012 - 09:00 Der er 8 kommentarer og
1 løsning

Booking ark - maks 3 behandlinger pr. periode

Hej

Jeg sidder og er ved at lave et booking ark, til noget booking af en massør.

Her har vi en intern regel om, at folk ikke må booke sig på mere end 3 gange, men det går ikke så godt med at overholde det.

Derfor har jeg brug for en makro der kommer med en fejl, såfremt et navn fremgår mere end 3 gange i listen der strækker sig fra B5 til I10.

Vi er ude i en tællefunktion, men på makroniveau, så er på bar bund.

Håber i kan hjælpe :)
Avatar billede finb Ekspert
05. december 2012 - 09:47 #1
Stå i B5

Gå ind i Datavalidering >> Brugerdefineret
skriv:

=tæl.hvis($B$5:$I$10;B5)<=3

Markér området B5:I10
gå ind i Datavalidering,
tilføj til alle celler
Avatar billede supertekst Ekspert
05. december 2012 - 09:51 #2
eller:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim navn As String, antal As Integer
    If Target.Address >= "$B$5" And Target.Address <= "$I$10" Then
        navn = Target
       
        If navn <> "" Then
            antal = tælAntal(navn)
       
            If antal > 3 Then
                MsgBox navn & " forekommer mere end 3 gange"
            End If
        End If
    End If
End Sub
Private Function tælAntal(navn)
Dim antal As Integer
    anal = 0
    For Each cc In Range("B5:I10").Cells
        If navn = cc.Text Then
            antal = antal + 1
        End If
    Next cc
   
    tælAntal = antal
End Function
Avatar billede finb Ekspert
05. december 2012 - 22:52 #3
Stå i B5

Gå ind i Datavalidering >> Brugerdefineret
skriv:

=tæl.hvis($B$5:$I$10;B5)<=3

Markér området B5:I10
gå ind i Datavalidering,
tilføj til alle celler
Avatar billede bobjoern Nybegynder
07. december 2012 - 10:42 #4
Hej igen

Tak for gode svar

Mht. datavalidering bruger jeg det til en navneliste i forvejen, så den går ikke.

VBA'en giver mig fejl når jeg sletter indholdet i en celle, og man kan godt sætte sit navn på over 3 gange, da man blot får en advarsel og ikke bliver stoppet, kan måske løses ved at slette den aktive celle når man får advarslen?

Mvh Bo
Avatar billede supertekst Ekspert
07. december 2012 - 11:07 #5
Ok - ser på det igen..
Avatar billede supertekst Ekspert
07. december 2012 - 11:15 #6
Rem Får ikke fejl ved sletning af en celle

Private Sub Worksheet_Change(ByVal Target As Range)
Dim navn As String, antal As Integer
    If Target.Address >= "$B$5" And Target.Address <= "$I$10" Then
        navn = Target
       
        If navn <> "" Then
            antal = tælAntal(navn)
       
            If antal > 3 Then
                Target.ClearContents                'tilføjelse
                MsgBox navn & " forekommer mere end 3 gange"
            End If
        End If
    End If
End Sub
Private Function tælAntal(navn)
Dim antal As Integer
    anal = 0
    For Each cc In Range("B5:I10").Cells
        If navn = cc.Text Then
            antal = antal + 1
        End If
    Next cc
   
    tælAntal = antal
End Function
Avatar billede bobjoern Nybegynder
12. december 2012 - 08:18 #7
Super, tak for hjælpen :)
Avatar billede bobjoern Nybegynder
12. december 2012 - 08:18 #8
Venligst smid svar til pointgivning:)
Avatar billede supertekst Ekspert
12. december 2012 - 09:08 #9
Selv tak - du får et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester