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

Sorteer lijst maken door 2 listboxen

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.076
Besturingssysteem
Wndows 11
Office versie
2016
Hallo

In mijn userform wil ik een sorteerlijst maken, deze sorteerlijst moet kijken naar 2 “listBoxen” en weer laten zien in een lijst (denk zelf aan een “listbox”).
Als men op de “sorteer” knop drukt dan zou in sorteerlijst (listbox3) alleen de items moeten staan die voldoen aan het sorteer voorbeeld.
De lijst moet later op een andere “Sheet” worden verdeeld om de lijst te printen
Alles wat nu in de sorteerlijst staat zou door middel van de knop “lijst maken” naar een ander tabblad worden geëxporteerd.
Als er nu op de “print lijst” wordt gedrukt dan moet het afdruk bereik van het tabblad “lijst” worden geprint.

Heb de laaste weken al veel geleerd over listboxen maar dit gaat mij te ver.
Als iemand een ander idee heeft om zo'n sorteer lijst te maken, sta ik er helemaal voor open.;)

Heb een klein voorbeeld bij gevoegd Bekijk bijlage Sorteerlijst maken.xls
 
Zelf heb ik ook een idee gekregen en ben deze aan het uit werken.
Ik heb de listbox “sorteer lijst” op “Multiselect” gezet zo dat ik meer kan selecteren, maar het sorteren gaat niet goed wel op projectnaam maar niet op tekeningnummer.
Kan er niet achter komen waarom het sorteren op tekeningnummer niet gaat.

Verder dat ik het dan zo te maken als het sorteren goed gaat dat ik dan het gene wat ik dan in de lijst selecteer dat dit dan naar de lijst wordt geëxporteerd.

Heb het voorbeeld bestand ook nog aangepast.

Bekijk bijlage Sorteerlijst maken.xls
 
Aanpassing van de code voor de 2 buttons:
Code:
Private Sub CommandButton1_Click()
Range("A2:K300").Sort Key1:=Range("D2"), Header:=xlGuess
End Sub

Private Sub CommandButton5_Click()
Range("A2:K300").Sort Key1:=Range("A2"), Header:=xlGuess
End Sub

Met vriendelijke groet,


Roncancio
 
Roncancio

Het sorteren gaat zo veel beter.:thumb:
Ik had de mijn met de macro recorder gemaakt maar dat is dus ook niet altijd de juiste oplossing.

Hiervoor alvast mijn dank.

Ga eens kijken hoe ver ik nu weer kom.:d
 
Macro-recorder programmeert op een andere manier dan ontwikkelaars.
Het is veel omslachtiger omdat alle eigenschappen van een object worden getoond.

Voorbeeld.
Een dunne rand maken om de huidige cel.
Macro-recorder:
Code:
Sub Macro1()
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End Sub

Programmeercode:
Code:
Sub rand()
ActiveCell.BorderAround xlContinuous, xlThin, xlColorIndexAutomatic
End Sub

Met vriendelijke groet,


Roncancio
 
Daar zit wel erg veel verschil in.

Ik ben nog lang niet zo ver dat ik het "overtollige" er uit kan filteren, maar ik leer wel veel van jou voorbeelden en oplossingen.:thumb:
 
Ik ga nu een stap verder met sorteren om de juiste lijst te krijgen, door deze code
Code:
Range("A2:K300").Sort Key1:=Range("Label2.Caption"), Header:=xlGuess
Wil dus dat de sortering geschied door de inhoud van een "label", krijg het alleen niet werkend.
Heb het via de macro recorder geprobeerd maar deze kijkt niet naar het userform, dus kom ik zo ook niet verder.
 
Je was er bijna!
Je hoefde alleen de aanhalingstekens te verwijderen.
Code:
Range("A2:K300").Sort Key1:=Range(Label2.Caption), Header:=xlGuess

Met vriendelijke groet,


Roncancio
 
Helaas

Krijg een error 1004 "Methode range van object_global is mislukt"
Code:
Private Sub CommandButton2_Click()
Sheets("lijst").Select
Range("A2:K300").Sort Key1:=Range(Label2.Caption), Header:=xlGuess
End Sub
Dit kreeg ik ook voor die tijd
 
Laatst bewerkt:
Deze melding krijg je omdat Excel het bereik met de naam zoals die in Label2 staat, niet kan vinden.

Met vriendelijke groet,


Roncancio
 
Als ik op de fout ga staan die in het geel wordt aan gegeven en ik ga dan op label2 staan dan geeft deze "T01-HZ" dit is dus waarop gesorteerd moet worden.
"T01-HZ" staat ook in het opgegeven bereik "A2:K300" dus is het er wel.
 
Maar er bestaat geen bereik genaamd T01-HZ.
Vandaar de foutmelding.

Volgens mij wil je hier filteren ipv sorteren.

Met vriendelijke groet,


Roncancio
 
Roncancio

Ik zou graag willen sorteren bv T01 is het project en HZ is een hoofdtekening en ik wil dus graag dan sorteren op T01-HZ.

De waarde komt uit de 2 listboxen en kom te staan in label2 en deze wordt weer gebruikt om te sorteren in dit geval dus T01-HZ.
 
Sorteren gaat simpelweg van A tot Z of Z tot A.
Volgens mij wil je een filter uitvoeren obv de inhoud van label 2.

Met vriendelijke groet,


Roncancio
 
Er is inderdaad een "spraak verwaring" sorteren A-Z of sorteren door filter.
Graag zou ik dus willen sorteren met "filter" volgens de inhoud van label2.
Ik moet zegen dat ik even van mijn stuk ben gebracht door deze verwaring.
 
Heb nu eens geprobeerd om met een filter te sorteren.
Code:
Range("A2:K300").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range(Label2.Caption), Unique:=True
Maar ik krijg dezelfde foutmelding error 1004 "Methode range van object_global is mislukt"

Ik ben nu het spoor beister.
 
Hallo

Ik probeer nu iets anders alleen krijg ik het niet werkend.
Code:
Range("A11").Select
Dim iRow As Long
'Vind de eerste lege rij in uw database
iRow = Sheets("Lijst").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
   
    With Sheets("lijst")
  .Cells(iRow, 1).Value = "tek_nr"
  
  End With

Deze code heb ik onder een knop zitten, maar de gegevens van "tek_nr" worden niet in de eerste vrij cel gezet van kolom A.
"tek_nr" is als "naam" gedefinieerd met range.

iemand een tip
 
Als er een range genaamd tek_nr is, dan kan je ...

Code:
.Cells(iRow, 1).Value = "tek_nr"

...vervangen door...

Code:
.Cells(iRow, 1).Value = Range("tek_nr").Value

Met vriendelijke groet,


Roncancio
 
Dankje Roncancio

dat met .Value had ik geprobeerd maar niet met range ervoor
 
Zonder Range weet VBA niet dat je een range bedoelt.
De filter/sorteer vraag is opgelost of in de ijskast?

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan