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

Listbox vinkje zetten, en een waarde op die regels wegschrijven

Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.183
Best,

Ik heb een userform waar ik een listbox in heb staan, die ik dan selecteer en de gegevens zichtbaar krijg.
Nu zou ik willen dat ik meerdere regels kan selecteren, en dan op de geselecteerde regels een waarde wegschrijven.
Het voorbeeld schets een klein beetje mijn orginele bestand die ik gebruik om transport in bij te houden.

Als ik een factuur binnen krijg dan staan er meerdere ritten op die het zelfde factuurnummer hebben.
Ik zou dan in een textbox of een InputBox kunnen gebruiken om daar een factuurnummer in te zetten, die hij dan wegschrijf op naar alle geselecteerde regels naar sheet adressen kolom F

Zie bijlage voor het voorbeeld bestand

Ik hoop dat ik mijn vraag duidelijk genoeg heb verwoord, en zie graag jullie reactive tegemoet.

Henk
 

Bijlagen

  • Helpmij-Listbox meerdere items selecteren en wegschrijven.xlsm
    34,9 KB · Weergaven: 40
Zonder dat ik het bestand gezien heb, waag ik toch een gokje...
Zet de eigenschap MultiSelect van je ListBox op fmMultiSelectMulti.
 
Bedankt voor je reactie, ik heb dit al geprobeerd en geeft niet het gewenste resultaat
Dan vult hij de textboxen niet meer, en kan ik nog niet gegevens wegschrijven op de geselecteerde lijnen.

Henk
 
Het is mij niet duidelijk wat er nou precies moet gebeuren als je meer dan 1 regel in de listbox selecteert.

Overigens: Mooi, die hulptekst als je met je muis over de knoppen gaat. Maar waarom zo moeilijk als je ook de ControlTipText van iedere knop (en de andere controls) zou kunnen invullen?
 
hi,
Zet uw listbox op multiselect en test volgende code.
Code:
Private Sub CommandButton1_Click()
Dim lngItem As Long
For lngItem = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(lngItem) Then
        With Sheets("Blad1")
            .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 0)
            .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 1)
            .Cells(.Rows.Count, 3).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 2)
            .Cells(.Rows.Count, 4).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 3)
            .Cells(.Rows.Count, 5).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 4)
            .Cells(.Rows.Count, 6).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 5)
        End With
        End If
Next lngItem
End Sub
 
Bedankt voor je reactie.

Het selecteren gaat goed ik kan meerdere regels selecteren, en wegschrijven doet hij nu naar het blad adressen maar sluit dan aan vanaf onder.
Eigenlijk zou hij moeten zoeken naar de leveranciernummer, en dan de gegevens in kolom F erachter schrijven aan de leveranciersnummers uit de listbox.
En dat ik een factuurnummer kan meegeven doormiddel van een inputbox, die geplaats wordt in kolom F.

Ik hoop dat dit mogelijk is!

In de bijlage de bijgewerkt versie met de code van "gast0660" erin verwerkt

Groet Henk
 

Bijlagen

  • Helpmij-Listbox meerdere items selecteren en wegschrijven.xlsm
    36 KB · Weergaven: 39
Beste,

Ben een stap verder gekomen, en heb mijn doel bereid maar wel via een omweg.

Code:
Private Sub CommandButton7_Click()

If Trim(Me.Factuurnummer.Value) = "" Then
 MsgBox "Je moet een factuurnummer invullen!", vbInformation, ""
 Me.Factuurnummer.SetFocus
 Exit Sub
 End If
 
Dim lngItem As Long
For lngItem = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(lngItem) Then
        With Sheets("Opslag")
            .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = ListBox1.List(lngItem, 0)
            .Cells(.Rows.Count, 2).End(xlUp).Offset(1).Value = Factuurnummer.Value
        End With
        End If
Next lngItem

On Error Resume Next
   For j = 2 To Sheets("Adressen").Cells(Rows.Count, 1).End(xlUp).Row 
    With Sheets("Opslag").Columns(1).Find(ActiveSheet.Cells(j, 1).Value) 
      ActiveSheet.Cells(j, 6) = .Offset(, 1)
    End With
  Next
  
 With Sheets("Opslag")
    .[A2:F10000].ClearContents 'velden in een bereik wissen
 End With

Factuurnummer.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""

MsgBox "Gegegevens zijn weggeschreven", , "Helpmij"
End Sub

Ik heb de code van gast0660 iets aangepast, dat deze de gegevens wegschrijf naar een hulp sheet "Opslag".
Daarvandaan doe ik dan verticaalzoeken die de gegevens weer tergug zet naar adressen, en de factuurnummers achter de juiste naam zetten.

Dus wat dat doel bereikt, enkel niet met een korte code.

Zodra ik nu ga zoeken in de listbox, past deze zich aan naar een kleiner formaat, ik zie maar niet wat ik hier verkeerd doet.

Vragen
- Kan de code simpeler
- Hoe krijg ik het formaat van de listbox vast zodat deze niet kleiner wordt
(al gevonden, ik heb het aantal columncount aangepast, en nu gaat het goed )

In mijn voorbeeld bestand, kan je zien wat ik heb gedaan en wat er fout gaat.

Groet Henk
 

Bijlagen

  • Helpmij-Listbox meerdere items selecteren en wegschrijven.xlsm
    52,9 KB · Weergaven: 42
Laatst bewerkt:
Het werkt altijd prettiger als de vraag en het bijgevoegde document zich beperkt tot de kern.

Code:
Private Sub CommandButton7_Click()
  For j = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(j) Then Sheets("Adressen").Cells(Application.Match(ListBox1.List(j, 0), Sheets("Adressen").Columns(1), 0), 6) = Factuurnummer
  Next j
End Sub
 
Opgelost

Alweer bedankt VenA voor je inbreng, en inzet.
Dit is een mooie oplossing, kort en bondig:thumb:

Henk
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan