Pagina 1 van 1

microsoft excel

Geplaatst: 04 mei 2004, 19:01
door MaRtO
Kan het zijn dat je bij micosoft excel iets kunt invoegen zodanig
dat als je de volgende keer dat bestand opent er een kadertje komt
met een tekst dat je zelf kunt schrijven. Hoe moet ik dat dan doen??

Ps: Ik heb het vroeger nog gekund maar ik weet niet meer hoe. :twisted:

Geplaatst: 05 mei 2004, 09:13
door SIR
Bedoel je een introductie popup???

Zoiets dat opkomt wanneer je een programma opent met de titel van het programma en de gegevens van de ontwikkelaar.

Geplaatst: 05 mei 2004, 12:29
door MaRtO
Ja zoiets
maar je moet ook zelf tekst kunnen schrijven. :P

Geplaatst: 05 mei 2004, 12:30
door Squirtle

Code: Selecteer alles

Private Sub Workbook_Open()
    MsgBox "Sup Biach?", vbQuestion + vbOKOnly, "Bling-bling"
End Sub


Plak dit in het VB venster van je workbook (alt+F11). Selecteer een codewoord en duw op F1 om de beschrijving + argumenten te zien in excel.

Geplaatst: 05 mei 2004, 13:35
door meon
Squirtle schreef:

Code: Selecteer alles

Private Sub Workbook_Open()
    MsgBox "Sup Biach?", vbQuestion + vbOKOnly, "Bling-bling"
End Sub

Lol, funny popup :)

Geplaatst: 05 mei 2004, 14:35
door Squirtle
Voor de volledigheid: je kan ook een form maken en dit laten openen in het workbook_open event. Dit gewoon voor de fancy-pants onder ons die graag eigen graphics willen tonen ;-)
Nu ja, van zodra je VB code in je excel file plaatst zal ie eerst vragen of je de macros wel wil laten uitvoeren en is de verassing er ook wel af voor wie je filetje opent.

Geplaatst: 05 mei 2004, 19:05
door MaRtO
Hoe kan ik het dan in een excel bestand plaatsen????? :???:

Geplaatst: 06 mei 2004, 09:45
door Squirtle
Awel, open je xls, mep eens stevig op Alt+F11 om de VB editor te openen, dan plaats je dat stukje code in de module die met de workbook gelinked is (genaamd 'ThisWorkBook' in '97E).
Voor een form doe je een insert --> userform en dan is het drag & drop met controls enzo.
Doe ook een Debug --> Compile VBA project, die gaat ook je syntax en objecten/functies checken.
En de help van excel is heel degelijk voor VBA, maak er gebruik van!

Geplaatst: 06 mei 2004, 20:51
door MaRtO
bv: Als je naar blad 2 gaat kun je daar dan ook zoiets zetten??
Ik heb het al geprobeerd met die code die je gegeven hebt
maar het lukt niet.
Kan je ook geen sneltoets instellen???? :cry: :???: :P

Geplaatst: 07 mei 2004, 09:33
door SIR
°MaRtO°° schreef:Kan je ook geen sneltoets instellen???? :cry: :???: :P


Je kan altijd via tools->customize een "knop" in je werkbalk zetten die een bepaald script oproept dat werkt op de actieve worksheet.

Geplaatst: 10 mei 2004, 10:34
door Squirtle
Hier is een voorbeeldje dat ik ooit eens in Word gemaakt heb om extra knoppen enzo te plaatsen:

Code: Selecteer alles


Sub autoopen()
   
    'remove possible gui modifs remaining from previous session
    CleanUpIncidentInterface
   
    'create the incident management button
    createNewIncidentToolBar
    'add an item in the EDIT menu bar
    AddIncidentManagementMenuItem
    'make a short-key for the button
    createCustomShortCutKey
   
    'prepare jet
    Initialize
   
    frmIncidentManagment.ClearFields
   
    'fill in comboboxes
    getRequestors
    'getInitialRequestors
    getBuxes
    getBuxNumbers
    getFunctions
    getProjects
    getPriorities
   
    blnHasBeenFilled = False
    blnHasBeenClosed = False
   
End Sub


Sub createNewIncidentToolBar()
    Dim cbrCommandBar        As CommandBar
    Dim cbcCommandBarButton  As CommandBarButton

    ' If the command bar exits, remove it.
    On Error Resume Next
    Application.CommandBars("IncidentManagement").Delete
    ' Add the command bar to the application's  CommandBars collection.
    Set cbrCommandBar = Application.CommandBars.Add
    cbrCommandBar.Name = "IncidentManagement"
    ' Add command button control to the control's
    ' collection of CommandBar objects.
    With cbrCommandBar.Controls
        Set cbcCommandBarButton = .Add(msoControlButton)
        ' Set properties of the command button.
        With cbcCommandBarButton
            .Style = msoButtonIconAndCaption
            .Caption = "Capture Incident"
            .FaceId = 231
            .TooltipText = "Capture the selected text as a new Incident."
            .OnAction = "DisplayIncidentForm"
            .Tag = "Capture Incident"
        End With
    End With
    cbrCommandBar.Visible = True
End Sub



Sub AddIncidentManagementMenuItem()
    Dim cbmMenuBar     As CommandBarPopup
    Dim cbcMenuItem    As CommandBarButton
    Dim strMenuBarName As String

    ' Remove menu item if it exists.
    On Error Resume Next
    Application.CommandBars("Menu Bar").Controls("Edit").Controls("Capture Incident").Delete False
    ' Identify menu bar that will receive new item.
    strMenuBarName = "Menu Bar"
    Set cbmMenuBar = Application.CommandBars(strMenuBarName).Controls("Edit")
    ' Add menu item.
    Set cbcMenuItem = cbmMenuBar.Controls.Add(Type:=msoControlButton, Before:=8)
    ' Set property values of menu item.
    With cbcMenuItem
        .Caption = "Capture Incident"
        .OnAction = "DisplayIncidentForm"
        .Tag = "Capture Incident"
        .ShortcutText = "Ctrl+I"
        .FaceId = 231
    End With
End Sub


Sub createCustomShortCutKey()
    'link CTRL-I to Incident Management button
    CustomizationContext = ActiveDocument
    KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyI, wdKeyControl), KeyCategory:=wdKeyCategoryMacro, Command:="DisplayIncidentForm"
End Sub


Sub DisplayIncidentForm()

    If Not blnHasBeenFilled Then
        'after clear or first time
        blnHasBeenFilled = True
        frmIncidentManagment.ClearFields
        fillIncidentForm
        frmIncidentManagment.Show
    Else
        If blnHasBeenClosed Then
            blnHasBeenClosed = False
            If Selection.Characters.Count >= 1 Then
                frmIncidentManagment.txtIncidentDesc = Selection.Text
                frmIncidentManagment.txtSolutionPropo = Empty
            End If
        Else
            'after hide
            frmIncidentManagment.Show
        End If
    End If

End Sub


Sub CleanUpIncidentInterface()
    Dim varItem As Variant
   
    'remove EDIT menu item
    For Each varItem In Application.CommandBars("Menu Bar").Controls("Edit").Controls
        If varItem.Caption = "Capture Incident" Then
            varItem.Delete False
        End If
    Next varItem
   
    'remove Incident Management Cmd Bar
    For Each varItem In Application.CommandBars()
        If varItem.Name = "IncidentManagement" Then
            varItem.Delete
        End If
    Next varItem
   
    'remove Ctrl-I from form
    CustomizationContext = ActiveDocument
    FindKey(BuildKeyCode(wdKeyI, wdKeyControl)).Disable
   
End Sub



Dit knopje moest een form openen en achter de controls zat data vanuit een access DB en via de form moest dan geselecteerde text uit het word documentje naar die mdb geschreven worden.
Het grof van die code kan je zelf genereren door de macro recorder aan te zetten en te doen wat je wil dat de macro doet, dan neus je maar eens in de aangmaakte VBA code :P

Als je popups wil per worksheet:

Code: Selecteer alles

Private Sub worksheet_activate()
    MsgBox "Yo!"
End Sub

dit plak je dan in het vba venster van de sheet waarop je de msg wil

Geplaatst: 10 mei 2004, 10:43
door SIR
Is al die code nodig?????

Als je eerst een form en code aanmaakt en dan via "customize" een knop aan het uitvoeren van de code hangt heb je dit toch allemaal niet nodig.

Geplaatst: 11 mei 2004, 11:02
door Squirtle
je kan dat idd via de menus zelf doen maar ik heb al voorgehad dat die extra menus dan ook in andere word documenten tevoorschijn kwamen, daarom dat ik alles via een scriptje laat gebeuren

...en ja, met al die code kan ik nu ook eens den interessante uithangen he ;-)