Hej! (Provar att skriva Snälla!!! i rubriken, så kanske ngn svarar ;) ) Hej Mathias, Hej Dennis och tack för ditt svar! Du kan spara ditt egentillverkade verktygsfält i Excelboken och öppna detta när boken öppnas samt radera det innan boken stängs. Fullt möjligt och fungerar då hos alla som öppnar boken och tillåter makron. Är dom inte duktigare på detta i MsOffice forumet ? Du kan skapa en toolbar med de knappar du önskar när du öppnar filen: Hej och tack för alla era inlägg! Vet inte om office 97 stödjer events på samma sätt. Tack så mycket Andreas!Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Är det någon som vet ifall det är möjligt att få en CommandButton i Excel att stanna
kvar i samma läge på skärmen oavsett åt vilket håll man scrollar?
Är det möjligt att på något vis ta reda på vilka kolumner och rader som presenteras på skärmen,
d.v.s. om jag har scrollat åt höger lite så att de kolumner jag ser är D t.o.m. L och
raderna jag ser är 1 t.o.m. 31. Det jag tänker mig är något liknande Blad1.VisibleRange...
MVH Mathias Sv: Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Ställ markören i cellen B3 och välj kommandot Fönster | Lås fönsterrutor. När du scrollar så kommer alltid cellområdet A1:A2 vara tillgängligt. Placera en knapp i detta område (ett större går också bra) så finns den alltid tillgänglig. Du återställer Excel med kommandot Fönster | Lås upp fönsterrutor.
Alternativt kan du skapa ett verktygsfält som inte dockas i någon fast position (floating) och som du positionerar relativt till det synliga cellområdet.
Dock tror jag att det första alternativet kan lösa det du frågar efter.
Mvh
DennisSv:Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Problemet är att det är ett stort antal personer som skall använda sig utav detta Exceldokument,
sä det kommer inte att vara möjligt att skapa ett "flytande" verktygsfält.
Dokumentet som jag har är redan låst på det sätt du anger, men problemet är att knapparna
tar upp för stor plats av det låsta fältet..!
Om det finns någon möjlighet att fånga en händelse när man scrollar och samtidigt kan få ut vilka
kolumner och rader som visas på skärmen kan man ju sätta positionen på varje knapp,
men jag vet inte hur man gör.
MVH MathiasSv: Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
rad och kolumn borde man kunna fånga med:
C = ActiveWindow.ScrollColumn
R = ActiveWindow.ScrollRow
och en timer... Inte standard i Excel... ? hm...
Ger inte heller slutkolumn och slutrad... Sv:Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Sv: Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Private mCommandBar As CommandBar
Private WithEvents mCommandBarButton As CommandBarButton
Private Sub Workbook_Activate()
On Error GoTo Workbook_Activate_Err
'Hides the toolbar when we switch Workbook
mCommandBar.Visible = True
Workbook_Activate_Exit:
Exit Sub
Workbook_Activate_Err:
MsgBox Err.Description, vbCritical
Resume Workbook_Activate_Exit
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Workbook_BeforeClose_Err
If Not mCommandBar Is Nothing Then
'Removes the toolbar
mCommandBar.Delete
Set mCommandBar = Nothing
End If
Workbook_BeforeClose_Exit:
Exit Sub
Workbook_BeforeClose_Err:
MsgBox Err.Description, vbCritical
Resume Workbook_BeforeClose_Exit
End Sub
Private Sub Workbook_Deactivate()
On Error GoTo Workbook_Deactivate_Err
If Not mCommandBar Is Nothing Then
'Shows the toolbar when we return to Workbook
mCommandBar.Visible = False
End If
Workbook_Deactivate_Exit:
Exit Sub
Workbook_Deactivate_Err:
MsgBox Err.Description, vbCritical
Resume Workbook_Deactivate_Exit
End Sub
Private Sub Workbook_Open()
On Error GoTo Workbook_Open_Err
'Creates the toolbar
Set mCommandBar = Application.CommandBars.Add(, MsoBarPosition.msoBarFloating, False, True)
'Creates the button
Set mCommandBarButton = mCommandBar.Controls.Add(msoControlButton, , , , True)
mCommandBarButton.Caption = "Click me!"
mCommandBarButton.Style = msoButtonCaption
'Shows the toolbar
mCommandBar.Visible = True
Workbook_Open_Exit:
Exit Sub
Workbook_Open_Err:
Select Case Err.Number
Case 5
'Set mCommandBar = Application.CommandBars(ToolbarName)
Resume Next
Case Else
MsgBox Err.Description
Resume Workbook_Open_Exit
End Select
End Sub
Private Sub mCommandBarButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
MsgBox "You have clicked on me!", vbInformation
End Sub
Koden klarar även att ha flera instanser av filen öppen.
Sv:Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Har provat ditt förslag Andreas som verkar väldigt intressant!
Dock stötte jag på problem med deklarationenPrivate WithEvents mCommandBarButton As CommandBarButton
där jag fick följande felmeddelande när jag stänger/öppnar arbetsboken:
"Kompileringsfel:
Objektet initierar inte Automation-händelser."
Några förslag?
MVH Mathias
Edit: Använder Office 97, tyvärr...
Sv: Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Då får du ange vilken funbktion som skall köras i en egenskap.
<code>
Private mCommandBar As CommandBar
Private Sub Workbook_Activate()
On Error GoTo Workbook_Activate_Err
'Hides the toolbar when we switch Workbook
mCommandBar.Visible = True
Workbook_Activate_Exit:
Exit Sub
Workbook_Activate_Err:
MsgBox Err.Description, vbCritical
Resume Workbook_Activate_Exit
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Workbook_BeforeClose_Err
If Not mCommandBar Is Nothing Then
'Removes the toolbar
mCommandBar.Delete
Set mCommandBar = Nothing
End If
Workbook_BeforeClose_Exit:
Exit Sub
Workbook_BeforeClose_Err:
MsgBox Err.Description, vbCritical
Resume Workbook_BeforeClose_Exit
End Sub
Private Sub Workbook_Deactivate()
On Error GoTo Workbook_Deactivate_Err
If Not mCommandBar Is Nothing Then
'Shows the toolbar when we return to Workbook
mCommandBar.Visible = False
End If
Workbook_Deactivate_Exit:
Exit Sub
Workbook_Deactivate_Err:
MsgBox Err.Description, vbCritical
Resume Workbook_Deactivate_Exit
End Sub
Private Sub Workbook_Open()
Dim CommandBarButton As CommandBarButton
On Error GoTo Workbook_Open_Err
'Creates the toolbar
Set mCommandBar = Application.CommandBars.Add(, MsoBarPosition.msoBarFloating, False, True)
'Creates the button
Set CommandBarButton = mCommandBar.Controls.Add(msoControlButton, , , , True)
CommandBarButton.Caption = "Click me!"
CommandBarButton.Style = msoButtonCaption
CommandBarButton.OnAction = "RunMeWhenYouClick"
'Shows the toolbar
mCommandBar.Visible = True
Workbook_Open_Exit:
Exit Sub
Workbook_Open_Err:
Select Case Err.Number
Case 5
'Set mCommandBar = Application.CommandBars(ToolbarName)
Resume Next
Case Else
MsgBox Err.Description
Resume Workbook_Open_Exit
End Select
End Sub
Public Sub RunMeWhenYouClick()
MsgBox "You have clicked on me!", vbInformation
End Sub
</code>
Skapa ett "Macro" i en modul med koden du vill köra när man trycker:
Public Sub RunMeWhenYouClick()
MsgBox "You have clicked on me!", vbInformation
End Sub
Sv:Snälla!!! Flytta kommandoknapp när man scrollar i Excel??
Jag kommer att prova detta asap!
MVH Mathias