Tak som niečo poskúšal. Na konci stačí prázdny ENTER
Option Explicit
Dim Isect As Range
Dim x As String
Dim Nad As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Isect = Application.Intersect(Range("C2:C500"), Range(ActiveCell.Address))
If Not Isect Is Nothing Then
Set Nad = Isect.Offset(-1, 0)
If Nad <> "" And Isect = "" Then
Isect = "'" & Right(Nad, Len(Nad) - InStr(Nad, "-") - 1) & " - "
x = InputBox(Isect)
Isect = Isect & x
If x = "" Then
ActiveCell.Offset(0, 0).Clear
Else
ActiveCell.Offset(1, 0).Select
End If
End If
End If
End Sub
A čo tak vložiť tam INPUTBOX? Nie je to veľmi praktické, ale na tento účel snáď použiteľné.
Option Explicit
Dim Isect As Range
Dim Nad As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Isect = Application.Intersect(Range("C2:C500"), Range(ActiveCell.Address))
If Not Isect Is Nothing Then
Set Nad = Isect.Offset(-1, 0)
If Nad <> "" And Isect = "" Then
Isect = "' " & WorksheetFunction.Text(Right(Nad, Len(Nad) - InStr(Nad, "-") - 1), "h:mm") & " - "
Isect = Isect & InputBox(Isect)
End If
End If
End Sub
No niečo sa mi podarilo aj bez makra.
Treba si označiť poslednú bunku v stlpci A
Je to pomenovaná bunka "posledná" a je to vlastne číslo posledného riadku.
No neviem, či sa tam tá hodnota bude vyskytovať viackrát. Ak áno potom je najlepšie urobiť to makrom.
A možno by si mohol vyskúšať automatický filter. Dáš si zobraziť potrebnú hodnotu a potom to ručne skopíruješ, kam budeš chcieť. Tých 10 listov si môžeš spojiť do jedného listu, alebo si to 10 krát zopakuješ.
Skús priložiť nejakú ukážku.
V stlpci E je zoznam priezvisk. V stlpci F sa ti ukáže, či sa nachádza v stlpci A.
V bunke E1 si vyber priezvisko, ktoré chceš zobraziť a v stlpci B sa ti zobrazí. Automatickým filtrom si to môžeš vyfiltrovať.
Nie je to dokonalé. Hľadá to aj priezviská neoddelené nijakým znakom.
Pri hodnote=-1 musia byť prvky zoradené zostupne.
Možno by stačilo aj toto
=(A1>0)*(B1<0)
A ak by to chcel ako v predchádzajúcom príspevku, tak
=CHOOSE(((A1>0)*SIGN(-B1))+2;0;"";1)
Povolenie makier je na zošite nezávislé. Inak by ochrana asi nemala zmysel. "Vypnutie" makier je možné pri otvorení zošitu s makrami, podržaním klávesu "SHIFT".
To by asi museli "prekopať" excel.
obrázok
Veď to ide. Len potom sa bude spúšťať každé makro aj to, ktoré nebudeš chcieť. Teda nebudeš mať žiadnu ochranu pred vírusmi.
Karta vývojár -> zabezpečenie makra.
Tu je súbor
Do bunky C2 daj vzorec
=(B2-A2)*1440-SUMPRODUCT(($E$2:$E$5>=A2)*($G$2:$G$5<=B2)*($G$2:$G$5-$E$2:$E$5)*1440)
a skopíruj po C8
Neuvažujem s tým, že odíde počas prestávky.
1440=24*60
SUMPRODUCT je myslím SKALARNI.SOUCIN
Sub Makro1()
Set ws = Sheets("Effectifs")
For i = 1 To 3
heslo = InputBox("Heslo")
If heslo = "Heslo123" Then
ws.Visible = 1 - ws.Visible
Exit Sub
End If
Next i
Application.DisplayAlerts = False
Application.Quit
End Sub
Asi takto?
Sub Makro2()
textstr = "C2=A2+B2"
ActiveCell.FormulaR1C1 = textstr
ActiveCell.Characters(Start:=1, Length:=Len(textstr)).Font.Superscript = False
ActiveCell.Characters(Start:=2, Length:=1).Font.Superscript = True
ActiveCell.Characters(Start:=5, Length:=1).Font.Superscript = True
ActiveCell.Characters(Start:=8, Length:=1).Font.Superscript = True
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.