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

CHECKBOX in een planingsoverzicht mee sorteren op de regels

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hallo

Ik probeer een planboard te maken waarin gebruik maak van checkboxen uit de RIBBON : Developer - Insert - Form Controls.
Als ik per opdracht ongeveer 10 check boxen heb dan heb ik via "Format Control" de mogelijkheid om een cel op de zelfde regel de waarde TRUE/FALSE te geven waardoor ik met die waarde in een kolom E, kan filteren op basis van de waarde 1 die dan in kolom E verschijnt (of juist niet). Daardoor kan ik in de planning alleen de deel-taken laten zien die nodig zijn.

SO FAR SO GOOD

Maar de cel die ik definieer via "Format Control" verwijst naar een vast adres/cel (bijvoorbeeld N14) en zelfs als ik de standaard $ tekens weghaal dan blijft de verwijzing naar N14 vast staan. ( bij jullie vast bekend )

Op zich lijkt dat OK; Maar elke nieuwe opdracht ( bestaande uit 10 regels) transporteer ik middels een MACRO naar een verzamel overzicht = BASIS
Daar kan ik wel een truckje voor bedenken om die nieuwe opdrachten aan een totaal lijst toe te voegen op dezelfde regels als in het invoer SHEET waarbij de nieuwe opdracht en de oude opdrachten keurig naar de juiste cellen verwijzen.

Maar ik wil de opdrachten ook als groep kunnen sorteren, maar dan gaan de checkboxen niet mee.
Ik had gedacht dat ik de optie zou hebben om te sorteren en dat dan de hele opdracht ( dus alle regels) inclusief de verwijzing naar de cell in dezelfde rij zou kunnen meenemen. maar ik kan in Format Control niet de optie "Move and size with cells" aanklikken.

De vragen die ik heb zijn eigenlijk:
1- Kan ik überhaupt als ik checkboxes in cellen heb staan, een sorteer sleutel gebruiken en de horizontale cel verwijzing meenemen?
2- Als dat dan lukt, kan ik dan ook de range met de checkboxes weer weghalen zonder dat de checkboxes achter blijven? Ik heb het idee dat dat helemaal niet mogeljik als ik ze niet naar een nieuw SHEET cut-
paste en dan dat nieuwe SHEET weer delete.
3- als ik een filter erop zet dan blijft soms de laatste ongebruikte checkbox onderaan zweven. Ook niet echt cosmetisch gezien mooi

Alvast bedankt voor de hulp.
Grtnx
Humadgen
 

Bijlagen

Best wel een lang verhaal of niet? Wat is de concreet de vraag? 3 vragen in 1 topic lijkt mij meer iets voor ontwikkelaars die het moeten oplossen en krijg je niet bijeen geharkt dmv een forum.
 
Laatst bewerkt:
Maar ik wil de opdrachten ook als groep kunnen sorteren, maar dan gaan de checkboxen niet mee.
Ik had gedacht dat ik de optie zou hebben om te sorteren en dat dan de hele opdracht ( dus alle regels) inclusief de verwijzing naar de cell in dezelfde rij zou kunnen meenemen. maar ik kan in Format Control niet de optie "Move and size with cells" aanklikken.

De enige workaround die ik ken hiervoor is in ieder geval om de checkboxen in een groep ook daadwerkelijk te groeperen (selecteren en rechtermuisknop --> groeperen). Daarna staan ze per default op 'move and size with cells'. Bovendien helpt het je denk ik met 'weghaalgemak'.
 
De enige workaround die ik ken hiervoor is in ieder geval om de checkboxen in een groep ook daadwerkelijk te groeperen (selecteren en rechtermuisknop --> groeperen). Daarna staan ze per default op 'move and size with cells'. Bovendien helpt het je denk ik met 'weghaalgemak'.

Voor het weghalen zal dat wel lukken maar zodra je een filter toepast wordt het chaos.
Helaas maar bedankt voor het meedenken
 
Best wel een lang verhaal of niet? Wat is de concreet de vraag? 3 vragen in 1 topic lijkt mij meer iets voor ontwikkelaars die het moeten oplossen en krijg je niet bijeen geharkt dmv een forum.

laten we beginnen met de 1e?
Als het helemaal niet mogelijk is om de verwijzing van een checkbox die nu de TRUE /FALSE waarde in een cel in dezelfde regel wegzet ( bijv: N13 ), NIET mee sorteert naar een N30 zodra door de sorteer actie de hele regel 17 plekken feitelijk 17 regels lager komt te staan?

Dan hoeft de rest waarschijnlijk ook niet meer.

Maar bedankt voor het mee discussieren
 
En als je nou na iedere sorteerbeweging alle checkboxes opnieuw toewijst aan hun cellen? Dan heb je wel de dollartekens terug, maar dan werkt de filter wel weer denk ik...

Code:
Dim chk As CheckBox

For Each chk In ActiveWorkbook.Worksheets("BASIS").CheckBoxes
   With chk
      .LinkedCell = _
         .TopLeftCell.Offset(0, 0).Address
   End With
Next chk
 
En als je nou na iedere sorteerbeweging alle checkboxes opnieuw toewijst aan hun cellen? Dan heb je wel de dollartekens terug, maar dan werkt de filter wel weer denk ik...

Code:
Dim chk As CheckBox

For Each chk In ActiveWorkbook.Worksheets("BASIS").CheckBoxes
   With chk
      .LinkedCell = _
         .TopLeftCell.Offset(0, 0).Address
   End With
Next chk

misschien een stomme vraag, maar waar zet ik die code?
 
Code:
Sub Sorteer_opdrachten()
'
' Sorteer_opdrachten Macro
'

'
    Range("A6").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range("A6:AG6").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("BASIS").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("BASIS").Sort.SortFields.Add Key:=Range("A6:A73"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("BASIS").Sort.SortFields.Add Key:=Range("B6:B73"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("BASIS").Sort.SortFields.Add Key:=Range("C6:C73"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("BASIS").Sort
        .SetRange Range("A6:AG73")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    Dim chk As CheckBox

    For Each chk In ActiveWorkbook.Worksheets("BASIS").CheckBoxes
       With chk
          .LinkedCell = _
             .TopLeftCell.Offset(0, 0).Address
       End With
    Next chk
End Sub

Dit lijkt bij mij te werken.
 
Code:
Sub Sorteer_opdrachten()
  With Sheets("BASIS")
     .Range("A6:AG73").Sort .[a6], , .[b6], , , .[c6], , xlGuess
     For Each chk In .CheckBoxes
        chk.LinkedCell = chk.TopLeftCell.Address
     Next chk
  End With
End Sub
 
Die form controls (en de ACtiveX ook) zijn leuk maar niet als je ze zo gebruikt. Meer dan een handvol controls op een werkblad geeft vaak gedoe. Ik zou zeggen gewoon een 0 of 1 (of J of n) in laten vullen. Simpel en gaat altijd goed :-)
 
Met je eens Jan Karel.

Je moet ze zelfs nog weer op true of false zetten zoals ze stonden.
Code:
Sub Sorteer_opdrachten()
Dim chk As CheckBox
  With Sheets("BASIS")
     For Each chk In .CheckBoxes
        c00 = c00 & chk.Name & "|" & chk.Value & "|"
     Next chk
.Range("A6:AG73").Sort .[a6], , .[b6], , , .[c6], , xlGuess
     For Each chk In .CheckBoxes
        chk.LinkedCell = chk.TopLeftCell.Address
        chk.Value = CLng(Split(c00, "|")(Application.Match(chk.Name, Split(c00, "|"), 0)))
     Next chk
  End With
End Sub
 
In plaats van check boxen te gebruiken kun je als alternatief ook een vinkje plaatsen dmv dubbelklikken.

Zo gaat het sorteren ook eenvoudiger.
Deze functie heb ik niet aangepast het ging mij even alleen om het vinkje.
 

Bijlagen

In plaats van check boxen te gebruiken kun je als alternatief ook een vinkje plaatsen dmv dubbelklikken.

Zo gaat het sorteren ook eenvoudiger.
Deze functie heb ik niet aangepast het ging mij even alleen om het vinkje.


VenA - ZiGZaG37 - HSV en jkpieterse allemaal bedankt voor het meedenken en aanleveren van opties.

De oplossing van popipipo is wel erg lekker. Daar ga ik verder mee aan de slag.
Dank jullie wel voor de input

Ik zou toch zo graag meer willen weten van hoe jullie die code zo wegschrijven.
Als ik het lees dan snap ik 80% van wat er gebeurd in de codes, en tot nu toe heb ik bij eerdere antwoorden dan code verder bewerkt en dat lukt dan meestal best wel, maar het is steeds met `trial en error´ dat ik er moet komen.

Als jullie tips hebben hoe ik me daar verder in kan bekwamen ..... links via Youtube ..... delen mag altijd, thanks.
Maar voor nu allen bedankt

Humadgen
 
Laatst bewerkt:
Toch nog en laatste vraag op de oplossing van popipipo

Hoe kan ik ervoor zorgen dat de range niet alleen voor de G kolom maar ook voor de L kolom gebruik
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("G7:G500000")) Is Nothing Then
If Target.Value = "" Then
           With ActiveCell
            .Value = Chr(254)
            .Font.Name = "Wingdings"
           End With
               Target.Offset(1, 0).Select
              Else
     
       With Target
        ActiveCell.Value = ""
                   .Font.Name = "calibri"
 
        End With

        Target.Offset(1, 0).Select
End If
End If
End Sub
 
Ik zou toch zo graag meer willen weten van hoe jullie die code zo wegschrijven.
Als ik het lees dan snap ik 80% van wat er gebeurd in de codes, en tot nu toe heb ik bij eerdere antwoorden dan code verder bewerkt en dat lukt dan meestal best wel, maar het is steeds met `trial en error´ dat ik er moet komen.

Zo is iedereen begonnen. De clue is om te achterhalen hoe de andere 20% werkt - daar leer je namelijk van. Wat voor mij heel erg heeft gewerkt is beginnen met relatief simpele (en vaak totaal irrelevante) programmeeropgaves. Daar leer je van hoe je een probleem snel en eenvoudig naar code vertaalt. Als je iets niet weet, kun je gewoon googlen - maar dan heb je in ieder geval een gerichte en specifieke vraag.

Hoe dan ook, het is vooral oefenen oefenen oefenen. Uiteindelijk ontwikkel je je eigen stijl. Vandaar dat je van 5 mensen 5 verschillende antwoorden krijgt.
 
Code:
If Not Intersect(Target, Range("G7:G500000[COLOR="#FF0000"],L7:L500000[/COLOR]")) Is Nothing Then

Logisch hè ;)
 
Code:
If Not Intersect(Target, Range("G7:G500000[COLOR="#FF0000"],L7:L500000[/COLOR]")) Is Nothing Then

Logisch hè ;)


Ja idd. het was waarschijnlijk laat vannacht laat. Had al wel lopen spelen, maar de fout die ik maakte was (best stom eigenlijk)

Code:
If Not Intersect(Target, Range("G7:G500000","L7:L500000")) Is Nothing Then

lijkt erop maar is het net nie :-(

Maar bedankt voor alle hulp van iedereen
 
En dan ben ik daar toch nog een keer:

Ik was het planbord aan het maken maar het moet uiteindelijk werken op een touch screen monitor.
Het dubbelklikken werkt prima met een muis, maar in de werkplaats wil ik dat het door op de het scherm te "dubbel tikken" (of hoe noem je zoiets) de code ook dat vinkje wegzet.

Iemand toevallig enig idee of dat ook gaat? of vraag ik nu iets wat niet meer EXCEL gerelateerd is maar naar hardware gaat?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan