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

Excel 2003 / 2007 : opdrachtknop / VB

Status
Niet open voor verdere reacties.

gast0225

Inventaris
Lid geworden
24 mrt 2001
Berichten
37.163
Als Excel gebruiker van simpele spreadsheets is het werken met VB mij net even een brug te 'ver'. Dat moge ook blijken uit het wellicht simpele, maar voor mij vooralsnog onoplosbare probleem om een drukknopje in een werkblad te maken waar, na een muisklik, een instructiie wordt uitgevoerd.
Het werkblad zelf betreft een voetbalpool (hoe origineel : EK 2012 ;) ) Op het blad waar de voorspellingen van de deelnemers staan heb ik dus op de voorgeschreven wijze een drukknop (active-X) gemaakt (met behulp van Microsoft help). Dit is prima gelukt. De instructie(s) die ik nu onder die knop wil hebben is de volgende:

de voetbalpool kent naast voornoemd werkblad, nog een tweede tabblad en daarin staat het poolklassement. Anders verwoord : de namen van de deelnemers met daarachter het aantal tot dan toe gescoorde 'punten' per juist voorspelde uitslag. Ik gebruik deze pool al vele EK's en WK's en hij werkt altijd prima. Tot aan vandaag werkte ik voor het opmaken van het klassement met een macro die de pooler kon activeren door de CTRL + een letter. Die macro maakte keurig netjes het klassement op.
Nu wil ik echter de pool op dit punt ietwat automatiseren door die drukknop toe te voegen.

In afbeelding 1 het werkblad met de gemaakte drukknop (klassement)
In afbeelding 2 de macro die ik ooit gemaakt heb en die prima werkt.
In afbeelding 3 het resultaat van het dubbelklikken op die drukknop waarin ik in het vb scherm kom.


Waar ik nu niet uitkom is hoe ik die macro uit afbeelding 3 in het VB schermpje van afbeelding 2 integreer. Ik heb al van alles geprobeerd, kopieren en plakken tussen die tekst in afbeelding 2, erboven en / of eronder plakken, dat maakt allemaal niet uit, de tekst komt er dan wel te staan, maar als ik de 'drukknoptekst' dan opsla en vervolgens in de pool op de drukknop 'klassement' klik, dan gebeurt er helemaal. niets.

Wat / waar doe ik wat fout of moet het anders? Volgens mij ben ik mogelijk héél dicht bij een werkende drukknop, maar mis ik dat laatste stukje..........................

Voor alle duidleijkheid : de gemaakte macro werkt als macro uitstekend, dáár zit het probleem dus niet.
 

Bijlagen

  • opdrachtknop.jpg
    opdrachtknop.jpg
    40,3 KB · Weergaven: 104
  • VB.jpg
    VB.jpg
    35,1 KB · Weergaven: 81
  • macro.jpg
    macro.jpg
    33,9 KB · Weergaven: 72
Laatst bewerkt:
In die ontwerpmodus kun je met rechts klikken op die knop waar je dan kiest voor Programmacode weergeven.
Plak hierin tussen Sub en End Sub de code van je macro zonder de bestaande regels Sub en End Sub.
 
Als jij bedoelt wat ik denk dat je bedoelt, dan heb ik dat programmacodeschermpje in plaatje 3 geplaatst.
Als ik je dan voor de 2e keer goed meen te begrijpen dan plak ik de macrotekst (plaatje 2) minus de eerste en de laatste regel van die macrotekst in dat programmacodeschermpje?
 
Laatst bewerkt:
Niet helemaal.
De eerste en laatste regel in dat programmacode schermpje laat je staan.
Plak de macro erin minus de eerste en laatste regel van de bestaande macro. Je laat er dus de regel Sub Klassement() en de End Sub van weg.
 
Dan had ik je toch goed begrepen maar heb ik mijn vorige bericht wellicht verkeerd verwoord, want zoals je het nu beschrijft is precies wat ik in mijn vorige berichtje bedoelde / vroeg. Ik ga het nu testen en ben met een minuutje weer terug. Alvast dank!
 
Als we elkaar dan nu goed begrijpen komt het wel in orde :)
 
Hm, de drukknop werkt nu wel, maar na het indrukken krijg ik een klein rechthoekig popupje van Windwos met daarin de foutmelding :

fout 1004 tijdens uitvoering
methode select van klasse range is mislukt

In de foutopsporing laat Excel mij dan het onderstaande zien:
 

Bijlagen

  • Presentatie1.jpg
    Presentatie1.jpg
    78,1 KB · Weergaven: 67
Ik neem aan dat die macro ook nog steeds aan de sneltoets Ctrl-k hangt?
Wat gebeurd er als je die gebruikt?
 
vooralsnog vreemde dingen, ik verwijder even de macro en maak 'm opnieuw.
 
Ik denk dat de aangegeven Range niet meer als zodanig aanwezig is.
Dat is het nadeel van een opgenomen macro.
 
Macro verwijderd, opnieuw gemaakt en deze werkt nu weer uitstekend. Ik zal die nieuwe eens op de door jou aangegeven wijze in dat VB schermpje plaatsen.
 
Bijzonder, bijzonder.............

ik heb de macro gemaakt, verwijderd, opnieuw gemaakt en getest. Deze werkt uitstekend. Plak ik 'm daarna in het programmacodeschermpje dan krijg ik (terwijl de 'knop' dus prima werkt) weer die foutmelding, waarbij de hieronder vetgedrukte tekst geel wordt weergegegeven door de foutopsoringsmodus. Als ik de range echter bekijk, dan benoemt deze exact het bereik waarop het ee.a. van toepassing is in de macro die, zoals ik al zei, als macro prima werkt.


Private Sub CommandButton1_Click()

Sheets("Klassement").Select
Range("B4:C84").Select
ActiveWorkbook.Worksheets("Klassement").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Klassement").Sort.SortFields.Add Key:=Range( _
"C4:C84"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Klassement").Sort.SortFields.Add Key:=Range( _
"B4:B84"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Klassement").Sort
.SetRange Range("B4:C84")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2:C2").Select

End Sub
 
Laatst bewerkt:
Vreemd, dat zou ik in het werkblad zelf moeten bekijken.
Gebruik je Office 2003 of 2007?

Dit klopt trouwens niet:
Range("B4:C84").Select ActiveWorkbook.Worksheets("Klassement").Sort.SortFields.Clear

Dat moeten 2 regels zijn.
 
Ik heb Office 2007 op mijn machine, maar omdat de pool door velen met Excel 2003 wordt gbruikt, heb ik de pool niet als 2007 sheet maar als 2003 opgeslagen in 2007.

Zou daar dan de bottleneck zitten : compatibiliteitsprobleem binnen Office 2007 -> opslaan als 2003....?
 
Ok, ik wil er best in het werkblad zelf even naar kijken als je die plaatst of me even mailt.
 
Graag ! Naar welk mailadres mag het?
Het bestandje is een kleine 900 Kb, dus hier plaatsen is geen optie.
 
Doe maar naar edmoor @ gmail.com
 
OK, ik ga het je zodadelijk toesturen. Wacht er maar niet op, want ik heb met een kopie van het originele bestand inmiddels zoveel gerommeld (om het voor elkaar te krijgen) dat ik nu het originele bestand ga verzenden. Ik zal daarin de knop weer aanmaken maar verder leeglaten. Ik zal wel de werkende ctrl-k macro maken. Ik hoop dat de gmail Excelbestanden met macro accepteert? Ik stuur anders het bestandje ook wel als .jpg, dan zal je alleen even de extensie moeten veranderen naar .xls
Verder moet ik de werkblad beveiliging even uitschakelen en van spelers wat privégegevens wissen (anders vermoorden ze mij als ik het bestand zo opstuur) Niet dat ik aan jou twijfel, maar je weet nooit wie of waar onderweg het bestand wordt onderschept.

Als je dus morgen of zo tijd hebt om er even naar te kijken dan graag, Het bestand werkt als pool uitstekend, er zitten 0 programmafouten in. Vul anders maar eens een wedstrijduitslag in in een van de groene cellen en druk daarna op de ctrl-k. Dan zie je dat die macro uitstekend werkt.
Ik heb een halfuurtje nodig om het bestand verzendgereed te maken, maar ik stuur het je toe.

Alvast dank!
 
Laatst bewerkt:
Is prima.
En privé gegevens van anderen wissen is een heel normale zaak.
Daar zie ik geen wantrouwen in :)
 
ik heb je net de mail gestuurd, maar natuurlijk heb ik alleen een mail gestuurd zonder bijlagen.................. en realiseerde ik mij dat de bijlagen er niet bij zaten toen ik al op de verzendknop had gedrukt.
Komt er zo nog één.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan