Verschillende invoer naar 1 cel

Status
Niet open voor verdere reacties.

jackfish

Gebruiker
Lid geworden
10 sep 2010
Berichten
297
Ik wil op een userform een lijstje collega's zetten met daarvoor een checkbox. Als de collega's bij de vergadering zijn wordt de checkbox aangevinkt. In cel "B8" worden achtereenvolgens, in 1 cel, de namen opgenomen; Piet, Klaas, Jan, Henk, Marieke, Truus.

Is dit mogelijk?

Dank voor het meedenken in advance. jackfish
 
Je hebt geluk. Ik had toevallig laatst al iets vergelijkbaars gemaakt, zie bijlage.

Dubbelklik op een willekeurige cel in de B kolom en een userform verschijnt, klik de gewenste namen (welke, mits ingevuld, uit het bereik M6:M55 worden gehaald) aan (of vink 'Selecteer alles' aan om alle namen te selecteren) en de namen komen in de cel waar je dubbel op geklikt heb.
 

Bijlagen

Dank je wel koster1984. Het werkt perfect. Alleen heb ik in mijn originele formulier bedacht dat de namen in een samengevoegde cel terecht moeten komen. Via de macrorecorder heb ik wel de code gevonden maar weet niet goed of en waar ik die in jouw code moet zetten. Kun je mij verder helpen?
Range("B6:G9").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With

Thanks jackfish
 
Het wordt niet echt aangeraden om met samengevoegde cellen te werken in sheets waar je vba gebruikt, maar dat zou er een beetje zo uit komen te zien:
Code:
Private Sub CommandButton1_Click()
Dim i As Long, h As Long, j As Integer
Application.ScreenUpdating = False
For i = 0 To WorksheetFunction.CountA(Sheets(1).Range("M6:M55")) - 1
    If ListBox1.Selected(i) Then j = j + 1
Next i
If j = 0 Then MsgBox "Niks geselecteerd", vbOKOnly, "Selectie": Exit Sub
ActiveCell.ClearContents
For h = 0 To WorksheetFunction.CountA(Sheets(1).Range("M6:M55")) - 1
    If ListBox1.Selected(h) = True Then
        ActiveCell = IIf(ActiveCell = "", ListBox1.List(h, 0), ActiveCell & " " & ListBox1.List(h, 0))
    End If
    [COLOR="#FF0000"]If ActiveCell.MergeCells = False Then Range(ActiveCell.Address & ":" & ActiveCell.Offset(3, 5).Address).MergeCells = True[/COLOR]
Next
Unload Me
Application.ScreenUpdating = True
End Sub
 
Knap werk koster84, het werk perfect! Het mooie van goed werk is dat het direct nieuwe ideen oproept. Zie je iets in de volgende uitdaging?
Er zijn vijf werkdagen en nu een lijstje met alle te selecteren collega's. Kun je ook een code schrijven waarmee per werkdag de checkbox van verwachte aanwezigen is aangevinkt en de mensen die vast vrij zijn niet?

Gr jackfish
 
Als je een voorbeeldbestandje bijvoegt kan ik even kijken of ik er wat van kan maken
 
Weet je wat, ik heb het oorspronkelijke bestandje wat ik had gepost aangepast. In het bereik N6:N55 heb ik een paar namen gezet (welke overeenkomen met enkele namen die in het bereik staan uit welke de lijst is opgebouwd, M6:M55), deze namen heb ik middels de volgende code automatisch laten aanvinken in de Listbox (misschien dat je er zodoende zelf wat van weet te maken):
Code:
Private Sub UserForm_Initialize()
[COLOR="#FF0000"]Dim i As Long[/COLOR]
ListBox1.List = Sheets(1).Range("M6").CurrentRegion.Value
[COLOR="#FF0000"]For i = 0 To WorksheetFunction.CountA(Sheets(1).Range("M6:M55")) - 1
    ListBox1.Selected(i) = IIf(WorksheetFunction.CountIf(Sheets(1).Range("N6:N55"), ListBox1.List(i, 0)) > 0, True, False)
Next[/COLOR]
End Sub
 

Bijlagen

Bij orgineel bestand, geen selectie

koster1984, mag ik jou, of andere scherpe 'ogen', nog een keer om hulp vragen. In het bijgevoegde orginele bestand heb ik alle codes bij elkaar gezet. het lijkt goed te werken, alleen worden de collega's niet geselecteerd.

ik heb vergeleken tot ik een ons woog (dus lekker afgevallen :-)) maar zie niet waar het zit.

Thanks in advance, jackfish

Bekijk bijlage 16-1-2013 - geen selectie.xlsm
 
Laatst bewerkt:
Je overzicht vind ik eerlijk gezegd een beetje een zootje, het is moeilijk bepalen wat je nu probeert te bereiken. Ik heb daarom toch maar weer mijn eigen voorbeeldje aangepast door met wat formules te bepalen welke (fictieve) werknemers vandaag aanwezig zijn door ze in een tabelletje te zetten en ze er met een weeknummer uit te filteren. Wellicht is dit handiger dan wat het ook is dat jij probeert te doen.
 

Bijlagen

Een zooitje....? Ik neem het gelijk van je aan :-)

Doel:
Van maandag t/m vrijdag aanwezigheid bij het dagelijkse ochtendoverleg registreren. De aanwezigen worden in een (te printen) formulier (vaste format van de afdeling) weggeschreven.

Ofwel, ik zocht naar een slim lijstje met namen die middels een checkbox geselecteerd worden (selecteert iedereen met uitzondering van hen die vast vrij zijn op die bepaalde dag). De namen komen in een bepaalde cel die samengevoegd is om een gewenste lay-out te verkrijgen.

Voor mijn gevoel was ik er bijna (zie #10 van deze post). Gr jackfish
 
Laatst bewerkt:
maar je hebt nergens aanwezigen staan, alleen een lijstje met maandag, maandag, maandag, maandag en zo ook lijstjes voor de andere 4 dagen.
 
o wacht ik zie het al, je hebt de code:
Code:
Private Sub UserForm_Initialize()
Dim i As Long
ListBox1.List = Sheets("Copy").Range("U6").CurrentRegion.Value
For i = 0 To WorksheetFunction.CountA(Sheets("Copy").Range("U6:U55")) - 1
    ListBox1.Selected(i) = IIf(WorksheetFunction.CountIf(Sheets(1).Range("V6:V55"), ListBox1.List(i, 0)) > 0, True, False)
Next

End Sub

maar die moet dan:
Code:
Private Sub UserForm_Initialize()
Dim i As Long
ListBox1.List = Sheets("Copy").Range("U6").CurrentRegion.Value
For i = 0 To WorksheetFunction.CountA(Sheets("Copy").Range("U6:U55")) - 1
    ListBox1.Selected(i) = IIf(WorksheetFunction.CountIf(Sheets([COLOR="#FF0000"]"Copy"[/COLOR]).Range("V6:V55"), ListBox1.List(i, 0)) > 0, True, False)
Next

End Sub
 
Klopt koster 1984. De dagen van de week staan in plaats van de namen. Dat heb ik gedaan zodat ik zag welke kolom gebruikt is (gebruikt hij Userform4 inderdaad op woensdag). Maar je hebt er een fout uitgehaald. Ga direct even kijken wat het effect is.

Ik waardeer het zeer dat je de moeite neemt om, bij een zo voortkabbelende post, te reageren. Gr jackfish
 
Aanpassing resulteert in een selectie van de vier woensdagen. De
Sheets("Copy").Range("V6:V55")
zou dan echter niet alle woensdagen moeten selecteren. In het bestandje van #10 resulteert dezelfde formule wel in het gewenste resultaat. Als er in de V-rij invoer wordt weg gelaten.

be advised, jackfish
 
Dat komt omdat het allemaal dezelfde namen zijn, hij kijkt alleen of de naam voorkomt in het lijstje ernaast.. probeer het maar eens door allemaal unieke waarden in te geven.
 
Klopt inderdaad, het werkt! Mijn beperking in VBA en dus een denktfout, ik dacht V6 wordt vergeleken met W6. Niets achter V6 dan geen vinkje .... Ontzettend bedankt voor alle moeite!

Gr jackfish
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan