• 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.

Bestaande sheet openen met hotkey

Status
Niet open voor verdere reacties.

janmulder85

Gebruiker
Lid geworden
11 aug 2007
Berichten
63
Goedenavond,

Graag zou ik willen weten of het ook mogelijk is binnen Excel om met een willekeurige hotkey (bijvoorbeeld F5) een bepaald bereik uit een sheet (bijvoorbeeld A1:G50) te openen in een nieuw venster wat niet al te groot is. dat venster is dan alleen bedoeld om data te kunnen zien en hoeft dus niet bewerkt te kunnen worden.

Ik ben benieuwd of hier een oplossing voor is!:)
 
Ja, dat kan. Hetzelfde bestand kan je nog eens openen via Venster > Nieuw venster. Ga dan in dat tweede deel naar het bereik dat je wil.

Positioneer dan de 2 vensters zodat het een beetje overzichtelijk wordt.

Wigi
 
Wigi,

Dit is niet wat ik eigenlijk bedoelde, wellicht heb ik het niet duidelijk genoeg omschreven.

Mijn bedoeling is als ik bijvoorbeeld in de sheet 'Blad 1' werk om daar gegevens in te vullen, dat ik dan via een knop (F5 bijvoorbeeld) de sheet 'Blad 2' tevoorschijn kan roepen omdat ik daar een soort van bibliotheek heb gemaakt. Als ik dan de gegevens zie die ik zoek in het nieuwe venster kan ik het venster weer sluiten met de ESC toets. Ook zou ik graag een bereik in willen stellen voor 'Blad 2' zodat het venster op maat gemaakt kan worden. het hoeft dus niet een nieuwe Excel werkmap te zijn met alle menu's e.d. erbij. Een leesvenster is voldoende.

Als dit niet mogelijk is zoals omschreven, vind ik het ook prima als het via een knop met macro werkt.
 
Ik schreef mijn vorige post, aangezien het zonder macro's niet zal gaan anders. Kan je evt. niet met hyperlinks werken?
 
Oke, het is me dan duidelijk dat het alleen met macro's kan.

Ik heb al wat uitgevogeld met hyperlinks, maar dat geniet niet mijn voorkeur omdat het eigenlijk op hetzelfde neer komt als onderin op het tabje te klikken van de sheet die je wilt zien, terwijl het net even een handig foefje zou moeten worden om niet steeds van sheets te verwisselen.:)

Dus dan wil ik het toch proberen om het met macro's te realiseren. Zou je me een hint kunnen/willen geven om de basis aan te leggen van de macro die onder de knop moet komen? Ik ben helaas nog niet bedreven genoeg in het zelf schrijven van Visual Basic code... maar al doende leert men;)

Stel dat ik via een knop de sheet 'Basislijst' op wil roepen (openen in een nieuw leesvenster) en dan enkel de gegevens die staan in de kolommen A t/m H, beginnend bij rij 8 t/m de laats ingevulde regel.

Alvast dank!

Jan
 
Zal ik even advocaat van de duivel spelen...

Ik zie echt niet in wat de meerwaarde is om dit bv. op een userform te zetten. Je zou de gegevens allemaal kunnen inlezen in een listbox of zo. Maar waarom je niet gewoon "springt" naar dat andere blad is mij een raadsel.

Sowieso zal het redelijk wat code vereisen, en sneller gaat het er ook niet worden (understatement). Denk erom dat je de code nadien ook moet onderhouden ;)

En wat ga je doen als het om veel rijen gaat? Allemaal op een userform? Lijkt mij niet verstandig.

Wigi
 
Het bestand wat ik aan het maken ben is om kosten te registreren van een bouw, in de lijst die ik wil zien staan alle besteksposten onder elkaar, de codes van iedere bestekspost die in kolom A staan zijn 1 tot 6 cijferig. In de volgende kolommen staan de omschrijving, prijs, hoeveelheid enz.

Ik heb per dag een tabblad waar ik die codes moet registreren, en dat zijn er nogal wat. Op de dagrapporten is een functie verticaal zoeken ingebouwd. Dus zoals het nu is moet ik iedere keer switchen tussen de dagrapporten en de lijst met posten. Scrollen, activiteit opzoeken, code goed onthouden (6 cijfers vaak) terug naar het dagrapport en dan de code typen in de eerste kolom. vervolgens wordt de rest van de informatie dat via VLOOKUP functie erbij gezocht en geplakt.

Mijn idee achter dit topic is dus om vanuit het dagrapport de lijst versneld te kunnen inzien, en het zou helemaal super zijn als ik bijvoorbeeld weet als een bestekspost met de code 9 begint, dat dan de lijst in het nieuwe venster zover doorscrollt tot de cijfers die ik al heb ingevoerd in de cell (in dit voorbeeld alleen de 9)

Enfin, ik had wel verwacht dat dit een lastig verhaal is omdat ik al flink gezocht heb op diverse media maar niks heb kunnen vinden hierover...
 
Wat is het voordeel van een combobox op een userform dan? Het aantal regels van de lijst is ongeveer 300. Moet ik dan alle regels in die combobox zetten? Lijkt me lastig, want een code zonder omschrijving zegt namelijk niks omdat je naar de omschrijving en prijs kijkt en vervolgens besluit welke code het moet zijn.

En kan je een userform dan oproepen als je een cell wilt invullen in het dagrapport?

Jan
 
Wat is het voordeel van een combobox op een userform dan? Het aantal regels van de lijst is ongeveer 300. Moet ik dan alle regels in die combobox zetten? Lijkt me lastig, want een code zonder omschrijving zegt namelijk niks omdat je naar de omschrijving en prijs kijkt en vervolgens besluit welke code het moet zijn.

Ja, die komen allemaal onder elkaar in de combobox. En met een scrollbalk kan je naar beneden.

Evt. zet je code in het Change event van die combobox die ervoor zorgt dat je in de combobox "springt" naar de code die je aan het intypen bent.

En kan je een userform dan oproepen als je een cell wilt invullen in het dagrapport?

Je zou een macro kunnen schrijven die de userform oproept. Dat is maar 1 regel code. En aan die macro hang je een sneltoets. Een hotkey zoals jiij het noemt ;)

Wigi
 
Zo, het begint een beetje tastbaar te worden voor mij. Maar de vragen zijn nog niet helemaal op:)

Kan ik de gegevens van de lijst die dan in kolom A t/m H staan allemaal in 1 combobox stoppen? Of is het verstandiger om het anders aan te pakken?
 
Kan ik de gegevens van de lijst die dan in kolom A t/m H staan allemaal in 1 combobox stoppen?

Dat kan zeker, een combobox kan meerdere kolommen hebben.

Wel er even aan denken dat VBA in controls zoals een combobox en een listbox begint te tellen vanaf 0. Dus het eerste element heeft index 0, en niet 1. Om het laatste element te hebben moet je dus werken met het aantal elementen -1.

Wigi
 
Wigi,

Ik heb inmiddels een userform gemaakt met een combobox erop, alleen nu nog de gegevens erin...

Kan ik een formule koppelen aan de combobox die de gegevens uit de kolommen A t/m H vanaf regel 8 tot de laatste ingevulde regel van de sheet 'Basislijst'. Dit zou wel wenselijk zijn omdat voor ieder project de 'Basislijst' uniek is.

En zou je me een voorbeeldcode kunnen geven als ik in bijvoorbeeld cel A65 sta om dan het userform op te roepen met m'n hotkey;) F5 die de code dan plakt die ik selecteer uit de combobox?

Jan
 
Neem geen toetsen als F5 of zo. Neem Ctrl-Alt-en nog wat, zodat je zeker bent dat die combinatie nog niet aan iets anders toegewezen werd.

Voor het vullen van de combobox. Geef het bereik een naam en zet die naam dan bij de RowSource eigenschap van de combobox.

Wigi
 
Dankjewel Wigi,

Ik was even druk deze week, vandaar m'n late reactie... maar ik ben weer druk aan het experimenteren dit weekend! ;)

Zo is er dan ook weer een probleem aan het licht gekomen... Ik probeer namelijk een bereik in te stellen voor m'n listbox aan de hand van jouw tips, maar ik krijg steeds blanco resultaat te zien als ik de UserForm oproep. Als RowSource heb ik 'rng1' ingevuld. Als ik bij RowSource bijvoorbeeld 'Basislijst!B8' invul, dan zie ik wel de gegevens staan in de listbox.

Deze code heb ik gebruikt voor de UserForm:

Code:
Private Sub UserForm2_Initialize()
     
    Dim rng1 As Range
    Dim rng2 As Range
    Dim rng3 As Range
    Dim rng4 As Range
    Dim rng5 As Range
    Dim rng6 As Range
    Dim r As Range

     
    Set rng1 = Sheets("Basislijst").Range("B8:B535")
    Set rng2 = Sheets("Basislijst").Range("C8:C535")
    Set rng3 = Sheets("Basislijst").Range("E8:E535")
    Set rng4 = Sheets("Basislijst").Range("F8:F535")
    Set rng5 = Sheets("Basislijst").Range("G8:H535")
    Set rng6 = Sheets("Basislijst").Range("H8:H535")

    For Each r In rng1.SpecialCells(xlCellTypeConstants, xlTextValues)
         
        Me.ListBox1.AddItem r.Value
         
    Next
     
    For Each r In rng2.SpecialCells(xlCellTypeConstants, xlTextValues)
         
        Me.ListBox1.AddItem r.Value
         
    Next

For Each r In rng3.SpecialCells(xlCellTypeConstants, xlTextValues)
         
        Me.ListBox1.AddItem r.Value
         
    Next

For Each r In rng4.SpecialCells(xlCellTypeConstants, xlTextValues)
         
        Me.ListBox1.AddItem r.Value
         
    Next

For Each r In rng5.SpecialCells(xlCellTypeConstants, xlTextValues)
         
        Me.ListBox1.AddItem r.Value
         
    Next

For Each r In rng6.SpecialCells(xlCellTypeConstants, xlTextValues)
         
        Me.ListBox1.AddItem r.Value
         
    Next

End Sub

Wie kan mij vertellen wat hier fout gaat?
 
De gegevens worden in de listbox ingevoerd in run time, dus als de code bezig is.

Wat jij doet (als ik het goed begrijp) is rng1 invullen bij de eigenschappen van de listbox. Dit is in design time, niet run time.

Je maakt best een keuze tussen 1 van de 2 methoden.
 
Ook in runtime geeft hij niks weer Wigi, ik roep het UserForm op met CTRL+Q, dit werkt prima, maar dan zie ik slechts 1 blauwe regel in de listbox waar geen tekst instaat. Terwijl ik zeker weet dat er gegevens staan in het bereik dat ik in de code heb aangegeven.
 
Doe dan maar een simpel voorbeeldbestandje, want dit zou wel moeten werken.
 
Inmiddels heb ik het anders opgelost door bij RowSource gewoon het hele bereik in te typen:

Code:
Basislijst!B8:B535:Basislijst!C8:C535:Basislijst!E8:E535:Basislijst!F8:F535:Basislijst!G8:G535:Basislijst!H8:H535

Volgens mij kan dit prima zo(?) Alles werkt nu zo als ik het graag zou willen, alleen zou ik graag de functies ENTER en ESC willen gebruiken. ENTER om een geselecteerde regel te bevestigen en meteen het venster daarna automatisch te sluiten, En ESC om geen keuze te maken en het venster te sluiten.

Zou je me kunnen vertellen hoe ik dit in kan stellen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan