15. maj 2007 - 08:10Der er
16 kommentarer og 1 løsning
Sammentælling på menulinien
Hello
Kan man lave et felt e.l. som ligger på f.eks. menulinien (altså der hvor knapperne er i Excel) som hele tiden tæller en difference mellem to tal i det pågældende regneark.
Jeg taster mange tal ind i et regneark, men på især to ark er det vigtigt for mig at vide differencen med totalsummen på de to ark. Jeg vil ikke fryse linier e.l., men hvis man kunne lave et eller andet smart ville det jo være perfekt.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = Sheets("Sheet1").Range("A1") - Sheets("Sheet2").Range("A2") End Sub
1. Kan man sætte tekst derned, f.eks. difference: (her kommer tallet) 2. Kan man lave flere sammentællinger på statuslinien 3. Hvis det kan hæftes op sammen med/i nærheden af en værktøjslinie e.l. ville det være lidt smartere
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Her kommer diference :" & Sheets("Sheet1").Range("A1") - Sheets("Sheet2").Range("A2") & " mere tekst" End Sub
rem Koden anbringes i ThisWorkBook rem Differencen vises i separat MenuPunkt rem =====================================
Dim MenuObject As CommandBarPopup Const celle1 = "Ark1!A1" '<----------- TILPASSES Const celle2 = "Ark2!A5" '<----------- -"-
Dim strMenuName As String Const strMenuNo As String = 11 Const intBarsNo As Integer = 1 Private Sub workbook_activate() strMenuName = "[Diff.:" visDifference End Sub Public Sub visDifference() Dim difference DeleteMenu strMenuName, intBarsNo
CreateMainMenu strMenuName, strMenuNo, intBarsNo End Sub Sub DeleteMenu(strMenuName As String, intBarsNo As Integer) For Each mm In Application.CommandBars("Worksheet Menu Bar").Controls If InStr(mm.Caption, strMenuName) = 1 Then mm.Delete Exit Sub End If Next mm End Sub Private Sub CreateMainMenu(strMenuName, strMenuNo As String, intBarsNo As Integer) Set MenuObject = Application.CommandBars("WorkSheet Menu Bar").Controls.Add(Type:=msoControlPopup, _ Before:=strMenuNo, Temporary:=False) MenuObject.Caption = strMenuName End Sub Sub Workbook_SheetChange(ByVal Sh As Object, _ ByVal Source As Range) visDifference End Sub
OK - du får et svar - oprindeligt stammer koden fra en dynamisk menusystem (Word 2003 - men også testet Ok på 2007), hvor en række undermapper med skabeloner bliver vist og kan vælges i menusystemets hirarkiske opbygning - samtigt med, at evt. nye undermapper/skabeloner, der tilføjes - med det samme vil blive vist, såsnart menupunktet aktiveres.
Denne historie for at beskrive, at i givet fald kunne andre sammentællinger / differencer evt. blive vist i underliggende menupunkter.
Jeg ville meget gerne have løsningen med tudsindstal til denne:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = Sheets("Sheet1").Range("A1") - Sheets("Sheet2").Range("A2") End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = Format(Sheets("Ark1").Range("A1") - Sheets("Ark2").Range("A1"), "#,###.00") End Sub
'reset ved lukning af projektmappe Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.StatusBar = False 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.