Avatar billede cjjessen Novice
22. marts 2013 - 13:31 Der er 7 kommentarer og
1 løsning

Indsætte 1 tal i nogle markerede celler vha. makro

Hej alle i VBA eksperter :)

Jeg har brugt for en makro, som kan indsætte eksempelvis et 1-tal i nogle markerede celler ved hjælp af en makro.

Jeg skal lave en feriekalender, hvor man bare kan markere de dage man holder ferie og trykke på en makro, så sætter den eks. et 1-tal ind og så kan jeg benytte tæl.hvis til at tælle feriedage op.

Endvidere når jeg lister alle datoer op vandret, kan jeg så "fjerne"/"skjule" lørdage og søndage?

Håber I kan hjælpe.

Med venlig hilsen

Claus Jessen
Avatar billede supertekst Ekspert
22. marts 2013 - 14:29 #1
Hvilken periode skal kalenderen dække?

Hvis dato genereres med legalt datoformat - så kan lørdag/søndag også udelades.
Avatar billede cjjessen Novice
22. marts 2013 - 14:36 #2
Hejsa Supertekst.

Den skal dække et helt år. Brugeren skal manuelt kunne gå ind og markere en given feriedag eller ferieperiode.

Mvh. Claus
Avatar billede supertekst Ekspert
22. marts 2013 - 14:50 #3
Er det en fælles kalender, som alle brugere går ind på?
Hvordan makeres en feriedag?

Er kalenderen genereret?

(hvis ikke, kan det lade sig gøre at få en årskalender ugenr, weekmarkering og helligdage, men det er uden for Eksp.)
Avatar billede cjjessen Novice
22. marts 2013 - 15:01 #4
Det er bare et regneark, hvor der kun kan være én bruger på ad gangen. Dagene markeres ved klik med musen og trække altså bare markere én eller flere celler. Kalenderen er genereret ja.
Avatar billede supertekst Ekspert
22. marts 2013 - 15:12 #5
Ok - hvilke rækker / kolonner skal der kunne udføres markeringer i?

I givet fald er velkommen til at sende en kopi af kalenderen - @-adresse under min profil.
Avatar billede kabbak Professor
22. marts 2013 - 21:08 #6
sæt denne kode ind i arkmodulet, så kommer den og spørger, når du højreklikker

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If MsgBox("skriv 1 i alle markerede celler", vbYesNo) = vbYes Then
Target = 1
Cancel = True
End If
End Sub
Avatar billede supertekst Ekspert
23. marts 2013 - 14:03 #7
Const ugeDato1Ræk = 5
Const ugeNrRæk = 12

Dim ugeStartKol As Integer, ugeStartDato As Date
Dim dag1 As Date, dagx As Date
Dim område As String
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim d As Date, dTæller  As Integer, t As Integer
Dim tabel As Variant, startDag As Variant, fPeriode As String, antalDage As Integer
    Application.StatusBar = ""
    fPeriode = ""
   
    Cancel = True
    område = Target.Address
    If InStr(område, ":") > 0 Then
        tabel = Split(område, ",")
       
        For t = 0 To UBound(tabel)
            antalDage = Range(tabel(t)).Cells.Count
            Range(tabel(t)).Select
            dag1 = Cells(ugeDato1Ræk, Selection.Column)
            dagx = DateAdd("d", antalDage - 1, dag1)
           
            Application.StatusBar = dag1 & " - " & dagx
            fPeriode = fPeriode & Application.StatusBar & " / "
           
            dTæller = 0
           
            startDag = Split(tabel(t), ":")
            For dato = dag1 To dagx
                If erDetWeekEnd(dato) = False Then
                    Range(startDag(0)).Offset(0, dTæller) = 1
                End If
                dTæller = dTæller + 1
            Next dato
        Next t
    Else
        dag1 = Cells(ugeDato1Ræk, Target.Column)
        antalDage = antalDage + 1
        Application.StatusBar = Format(dag1, "dd-mm-yy")
        fPeriode = fPeriode & Application.StatusBar & " / "
        If erDetWeekEnd(dag1) = False Then
            Target.Value = 1
        End If
    End If
   
    Application.StatusBar = fPeriode
End Sub
Private Function erDetWeekEnd(dato)
Dim dNr As Integer
    dNr = Weekday(dato, vbMonday)
    If dNr < 6 Then
        erDetWeekEnd = False
    Else
        erDetWeekEnd = True
    End If
End Function
Avatar billede cjjessen Novice
06. april 2013 - 07:06 #8
Det virker perfekt, mange tak for hjælpen. Claus
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
Kategori
Kurser inden for grundlæggende programmering

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