22. september 2008 - 12:17Der er
9 kommentarer og 1 løsning
Visning af VBA "lopslag" i statusbar
Hej
Jeg har brug for en lille funktion, der kan foretage et opslag i en liste på baggrund af den valgte celles værdi (indhold) og vise resultatet af opslaget i statusbaren.
Listen:
Navn: Initialer: Navn 1 N1 Navn 2 N2 Navn 3 N3
I forskellige ark i projektmappen står medarbejdernes initialer. Når jeg markere en celle med initialer i skal det fulde navn vises i statusbaren.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Det er rigtig. Hvis nu initialerne altid skrives med stort og ikke må være længere end tre tegn, vil det så hjælpe?
Excelent har tidligere udarbejdet denne til mig til brug for visning af dato i statusbaren, hvis den på nogen måde kan være til hjælp:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.StatusBar = "" If Intersect(Target, Range("G:M")) Is Nothing Then Exit Sub Application.StatusBar = Format(DateSerial(Val(Ark2.Range("Tår")), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + Target.Column - 6, "dd-mm-yyyy") End Sub
Private Sub Workbook_Open() Bruger = [Navne], navngivet område End Sub
I arkets modul
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim I As Integer Application.StatusBar = "" If Intersect(Target, Range("G:M")) Is Nothing Then Exit Sub For I = 1 To UBound(Bruger) If Bruger(I, 2) = Target Then Application.StatusBar = Bruger(I, 1) Exit For Else Application.StatusBar = "" End If Next End Sub
den sidste kan også være i thisWorkbook modulet, så gælder den for alle ark
så hedder den Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim I As Integer Application.StatusBar = "" If Intersect(Target, Range("C:I")) Is Nothing Then Exit Sub For I = 1 To UBound(Bruger) If Bruger(I, 2) = Target Then Application.StatusBar = Bruger(I, 1) Exit For Else Application.StatusBar = "" End If Next End Sub
Private Sub Workbook_Open() Bruger = [medarbejdere] End Sub
Du kan også sætte denne ind i stedet, der er isat en linje, der tjekker om data er indlæst, hvis ikke, så gør den det.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim I As Integer Application.StatusBar = "" If Intersect(Target, Range("C:I")) Is Nothing Then Exit Sub If IsEmpty(Bruger) Then Call Workbook_Open 'NY LINJE For I = 1 To UBound(Bruger) If Bruger(I, 2) = Target Then Application.StatusBar = Bruger(I, 1) Exit For Else Application.StatusBar = "" End If Next End Sub
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.