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

Ben weer aan het knoeien

Status
Niet open voor verdere reacties.

bigfoot47

Gebruiker
Lid geworden
21 mei 2008
Berichten
140
Hoi,

Heb 2 vragen

Ik heb in volgend bestand je in de map toezichters de namen in kolom A automatisch laten sorteren op alfabet maar nu weet ik niet meer hoe ik dat heb gedaan.
Wie kan me helpen ?


2de

Als in de werkmap festivaldag 1 in kolom B niets invul gaat de naam weg in werkmap toezichters dit werkt zo als het moet maar enkel blijft kolom B dan wel staan.
Hoe kan ik deze mee laten verwijderen zodat als ik 1 naam moet veranderen van werk dat ik heel de kolom niet moet aan passen terug.



Mvg Bigfoot

Bekijk bijlage Kopie van lijst2.xlsm
 
Vraag 1: met een matrixformule ;) Of eigenlijk niet: zie "Overigens..." hieronder in vet.
Code:
=ALS(RIJEN(A3:A$3)<=SOMPRODUCT(--('Festival dag 1'!$B$2:$B$58="Controle drank standen"));INDEX('Festival dag 1'!$A$2:$A$53;KLEINSTE(ALS('Festival dag 1'!$B$2:$B$58="Controle drank standen";RIJ('Festival dag 1'!$B$2:$B$58)-RIJ('Festival dag 1'!$B$2)+1);RIJEN(A3:A$3)));"")

De buitenste ALS-formule zorgt ervoor dat de cel leeg blijft als er geen betreffende toezichthouders meer zijn.
Het aantal betreffende toezichthouders wordt bepaald met SOMPRODUCT. De -- maakt de (ON)WAARs numeriek (0 voor ONWAAR, 1 voor WAAR).
Het "als-waar" deel van de buitenste ALS-formule zoekt in 'Festival dag 1'!$A$2:$A$53 de namen van toezichthouders met "Controle drank standen", en wel op de eerste regel de eerste, op de tweede regel de tweede enzovoorts.
Overigens in de volgorde zoals ze voorkomen in 'Festival dag 1', dus als je wilt sorteren dan moet je dat in dat werkblad doen.

Tweede: dit is handmatig ingevuld, dus dan moet je het ook handmatig weer weghalen :-)
Als het met een formule zou zijn ingevuld, dan zou je met een ALS-functie kunnen verifiëren of de bijbehorende waarde in kolom A leeg is en zo ja, kolom B leeg laten, bijv. in B3:
Code:
=ALS(A3="";"";[I]formule[/I])
 
Laatst bewerkt:
Macel zou het automatisch willen.

Ik heb geprobeerd de code van werkmap medewerkers over te nemen in de map festivaldag1 maar er zit ergens een fout maar kan het niet vinden.

als het 0 is schrijft hij het wel naar blad 4 maar als ik x geef gaat het niet in werkmap toezichters.

wie kan me helpen?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, bBeide As Boolean
    If Not Intersect(Target, Columns(2)) Is Nothing Then   'niets veranderd in kolom 6 = stoppen     ( deze kolom altijd aanpassen )
        Select Case Target.Value                                 'wat staat er in de cel
        Case "x": Sheets("Toezichters").Cells(Rows.Count, 1).End(xlUp).Offset(1) = Target.Offset(, -1): GoTo DelVast30  'niet vergeten de - ofset 1 kleiner te zetten dan target collums
        Case "0": Sheets("Blad4").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 2).Value = Array(Target.Offset(, -1), Target.Offset(, 1)): GoTo DelRot30  '
        Case Else: bBeide30 = True: GoTo DelVast30                 'schrappen in vast en rotatie
        End Select
DelVast30:
        Set c30 = Sheets("Blad4").Columns(1).Find(Target.Offset(, -1), , xlValues, xlWhole)    'zoek nam in 1e kolom vaste
        If Not c30 Is Nothing Then
            c30.Resize(, 2).Delete shift:=xlUp    'gevonden, dan wis cel en de rest 1 omhoog
        End If
        If Not bBeide30 Then Exit Sub
DelRot30:
        Set c30 = Sheets("Toezichters").Columns(1).Find(Target.Offset(, -1), , xlValues, xlWhole)
        If Not c30 Is Nothing Then
            c30.Delete shift:=xlUp
        End If
    End If
End Sub

Bekijk bijlage Kopie van Kopie van lijst2-1.xlsm
 
Tja, als ik had beseft dat het over VBA ging... Daar ben ik niet echt in thuis, dus ik geef graag het stokje over aan iemand anders.
 
Het staat er wel, maar ergen vanaf A40.
Maak de bovenliggende cellen echt leeg (spatie misschien).
 
Bedankt HSV was niet lager gaan kijken dom van me.

Heb nog een vraagje ik heb zonder VBA code automatisch sorteren gedaan van A-Z in map festival dag 1 maar nu weet ik niet meer hoe ik dat gedaan heb.
Kan jij me daar ook mee verder helpen ?

Mvg Bigfoot
 
nog een probleem met VBA

Hoe kan ik in de code ook nog aanpassen dat als ik de naam terug bij zet dat in de kolom h achter de naam een leeg vak is.
nu als ik de naam weg doe gaat het vak h achter de naam ook weg dat is ok, maar als ik de naam nu invul bijft alles in kolom h staan en klopt dat niet meer.
ik laat ook het werkblad automatisch sorteren met volgende code

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then

        Range("A3:A60").Sort Key1:=Range("A3"), _
            Order1:=xlAscending, Header:=xlYes
    End If
If Target.Column = 4 Then

        Range("d3:d60").Sort Key1:=Range("d3"), _
            Order1:=xlAscending, Header:=xlYes
    End If
If Target.Column = 7 Then

        Range("g3:g60").Sort Key1:=Range("g3"), _
            Order1:=xlAscending, Header:=xlYes
    End If
End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, bBeide As Boolean
    If Not Intersect(Target, Columns(2)) Is Nothing Then  
        Select Case Target.Value                                 
        Case "Controle drank standen": Sheets("Toezichters").Cells(Rows.Count, 4).End(xlUp).Offset(1) = Target.Offset(, -1): GoTo DelVast22  
        Case "0": Sheets("Blad4").Cells(Rows.Count, 4).End(xlUp).Offset(1).Resize(, 2).Value = Array(Target.Offset(, -1), Target.Offset(, 1)): GoTo DelRot22  '
        Case Else: bBeide22 = True: GoTo DelVast22               
        End Select
DelVast22:
        Set c22 = Sheets("Blad4").Columns(4).Find(Target.Offset(, -1), , xlValues, xlWhole)    
        If Not c22 Is Nothing Then
            c22.Resize(, 2).Delete shift:=xlUp  
        End If
        If Not bBeide22 Then Exit Sub
DelRot22:
        Set c22 = Sheets("Toezichters").Columns(4).Find(Target.Offset(, -1), , xlValues, xlWhole)
        If Not c22 Is Nothing Then
            'c22.Delete shift:=xlUp
        Sheets("Toezichters").Range("d" & c22.Row, "e" & c22.Row).Delete shift:=xlUp
        End If
    End If
End Sub

MVG
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan