22. marts 2013 - 13:31Der 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?
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.
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
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)
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
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.