• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Alternatief voor command button

Status
Niet open voor verdere reacties.

verhoog

Terugkerende gebruiker
Lid geworden
7 nov 2001
Berichten
3.143
Ik gebruik command buttons om door grote spreadsheets te navigeren. Klik ik op zo'n button dan schiet mijn cursor bijv naar cel AE250. Ik heb nu zo'n 25 buttons in gebruik, vlak bij elkaar, zodat ze als navigatiebalk gebruikt kunnen worden. De namen en volgorde van deze buttons veranderen regelmatig en dat is steeds best wat werk om aan te passen, dus ben ik op zoek naar een alternatief. Zelf dacht ik aan cellen ipv buttons waaraan de macro die de cursor verplaatst wordt gehangen, maar kan dat? En hoe pas ik in dat geval bij onderhoud van de navigatiebalk de naam van de cel aan als mijn cursor zich verplaatst op het moment dat de cel wordt geselecteerd? Moet je dan alle macro's tijdelijk uitschakelen of zo?

Alvast bedankt voor het meedenken.
 
Zijn het echte Commandbuttons van de ActiveX-besturingselementen?
Die geef je eigenlijk al een positie zodra je ze versleept, en zouden toch op zijn plaats moeten blijven.

Een alternatief is de Dubbelklck-event op een cel (dus zonder die Commandbuttons).
 
Inderdaad, het is een opdrachtknop uit de activeX-set. Ze hebben inderdaad een vaste plaats, maar ik pas de volgorde van de knoppen regelmatig aan omdat ze meer of minder belangrijk worden.

Hoe werkt zo'n dubbelklik event, kan je een voorbeeld geven? Ik gebruik nu de volgende code die aan de button hangt:

Code:
Private Sub KAU_Click()
    Application.Goto ActiveSheet.Cells(ActiveSheet.Cells.SpecialCells(11).Row - 33, 78), True
End Sub
 
Zo dus, met wat aanpassingen in de code om naar de verschillende cellen te gaan moet je zelf even maken.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Application.Goto Cells(Cells.SpecialCells(11).Row - 33, 78), True
End Sub
 
ok, dank je.

Ik ben niet zo heel erg thuis in de code, maar hoe maak ik nu het onderscheid tussen verschillende cellen? Ik wil bijv dat als ik op cel A1 dubbelklik hij naar cel x springt, en als ik op cel A2 dubbelklik hij naar cel y springt. Kan dat ook met deze code?
 
bv.
if target.address(0,0) = e35 then application.goto ........... de rest van de code.
 
Ik kom er nog niet helemaal uit, ik heb nu de volgende code:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Address(0, 0) = H4 Then Application.Goto Cells(Cells.SpecialCells(11).Row - 33, 78), True
End Sub

Wat ik hiermee wil is dat als ik op H4 dubbelklik hij naar de genoemde referentie springt (row - 33, 78), maar er gebeurt niet veel.
 
Dit lijkt me beter.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Address(0, 0) = [COLOR=#ff0000]"H4"[/COLOR] Then Application.Goto Cells(Cells.SpecialCells(11).Row - 33, 78), True
[COLOR=#ff0000]  cancel = true[/COLOR]
End Sub

Gooi het in een select case.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    select case target.address(0,0)
 case "H4" 
        Application.Goto Cells(Cells.SpecialCells(11).Row - 33, 78), True
 case "J4"
        Application.Goto Cells(Cells.SpecialCells(11).Row - 33, 80), True
   end select
        cancel = true
End Sub
 
Laatst bewerkt:
@HSV
Je vergat Case bij de Select Case.

Iets korter (gebruikmakend van de gekozen kolom):
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row = 4 And Target.Column Mod 2 = 0 Then
    Application.Goto Cells(Cells.SpecialCells(11).Row - 33, Target.Column + 70), True
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio,

Ik heb gisteren een nieuwe Pc gekocht, en moet nog van alles installeren en updaten.
Daarom kan ik nog niet veel in Excel doen, dus doe ik een poging vanaf het forum.

Slechte keus zo te zien. doordat je steeds met andere dingen bezig bent.

Bedankt voor je aanvulling, ik ga het direct wijzigen.

Ps. Ik weet de overige cases niet, vandaar dat ik nog niet voor kort ben gegaan.
 
Laatst bewerkt:
Dank je Roncancio (en HSV), dat werkt! :thumb:

Nu een andere vraag, want de code van Roncancio is voor mij niet zo duidelijk als die select case code van HSV: waar in de code is de H4 gedefinieerd? Wat als ik die wil veranderen in G5 bijvoorbeeld, hoe ziet de code er dan uit?
 
Dan zou ik teruggrijpen naar de code van HSV.
In mijn code wordt gekeken naar de rij(4) en of de kolom deelbaar is door 2.
Zit er een bepaalde logica in de gekozen cellen?

Met vriendelijke groet,


Roncancio
 
Ik wil eigenlijk een navigatiebalk maken van ongeveer 20 cellen, elk met een eigen referentie naar een ander deel van de sheet. Zal ik dan de laatste code van HSV gebruiken, (met toevoeging van case bij select case)?
 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D4:K4")) Is Nothing Then Application.Goto Range(Target), True

End Sub

Bovenstaande code kijkt of een cel in het bereik D4 t/m K4 is geselecteerd (dus niet via dubbelklikken).
Zoja dan wordt de cel geselecteerd dat in de gekozen cel staat.

Bijvoorbeeld:
In cel J4 staat T8
Door op cel J4 te klikken verspringt de cursor naar cel T8.

Met vriendelijke groet,


Roncancio
 
Ah, ok, dat zou inderdaad ook prima kunnen werken. Nou wil ik die T8 nogal eens aanpassen, maar hoe doe ik dat als ik J4 niet kan selecteren zonder dat gelijk mijn cursor verspringt? Of kan ik J4 wel selecteren door er met de pijltjestoets naartoe te gaan? Of moet ik dan tijdelijk de macro uitschakelen?
 
Of misschien een UserForm met Buttons die oproepbaar is waar jij wil !!

Het is alleen een extra handeling.

Gr. Henk
 
Je zou gebruik kunnen maken van een togglebutton.
(zie bijlage).

Waarom zou je steeds de verwijzing aanpassen?
Kan dit niet geautomatiseerd?

Met vriendelijke groet,


Roncancio
 

Bijlagen

Hmm, ik bedenk me nu dat jouw oplossing wellicht toch niet helemaal is wat ik zoek. In de cel waar ik op wil klikken komt een omschrijving te staan van de tabel in de spreadsheet waar ik naartoe wil springen. Stel bijvoorbeeld dat in cel T8 de tabel 'crediteuren' staat, dan wil ik bijv in H4 de omschrijving CRED neerzetten. Klik je dan op die omschrijving dan schiet je naar T8. Wellicht is dan de laatste oplossing van HSV beter?
 
Dat kan, maar wellicht kan het geautomatiseerd met minder code.
Het is mij niet helemaal duidelijk wat je precies wilt.
Kan je een voorbeeldbestand bijsluiten?

Met vriendelijke groet,


Roncancio
 
In de bijlage een voorbeeld van hoe het nu is. Met de knoppen links navigeer je naar de verschillende kolommen. Je ziet dat de naam op de knoppen overeenkomt met de naam van elke tabel. Door de tijd heen verander ik de naam op de knoppen en verandert ook de volgorde van de knoppen, maar het is vrij veel werk om dat iedere keer aan te passen. Om die reden wil ik van de knoppen af en daar gewoon cellen voor gebruiken.

Zoals ik het nu kan beoordelen is de laatste oplossing van HSV prima werkbaar, al heb ik deze nog niet kunnen testen.

Bekijk bijlage Tool test.zip
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan