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

nummers van plaats laten wisselen

Status
Niet open voor verdere reacties.

coolsluc

Gebruiker
Lid geworden
2 mei 2013
Berichten
332
Hallo,

in bijlage de file

Als ik in kolom B een nummer van plaats verander vb:nummer9-->plaats nummer18 dan ik zou ik willen dat nummer 18 in de plaats komt van nummer9 (dus beide nummers omwisselen)
Misschien een stukje vba of iets anders.

mvg,lco
 

Bijlagen

  • nummers wisselen.xlsx
    13,2 KB · Weergaven: 26
Met dit achter het werkblad:
Code:
Dim CelOldValue As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    CelOldValue = Target.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim FindString As String
    Dim Rng As Range
    
    If Target.Column = 2 Then
        Application.EnableEvents = False
        FindString = Target.Value
        If Trim(FindString) <> "" Then
            
            With Sheets("Blad1").Range("B:B")
                Set Rng = .Find(What:=FindString, _
                                After:=Range("B1"), _
                                LookIn:=xlValues, _
                                LookAt:=xlWhole, _
                                SearchOrder:=xlByRows, _
                                SearchDirection:=xlNext, _
                                MatchCase:=False)

                If Rng.Address = Target.Address Then
                    Set Rng = .FindNext(Rng)
                End If
                                
                If Not Rng Is Nothing Then
                    Rng.Value = CelOldValue
                End If
            
            End With
        End If
        Application.EnableEvents = True
    End If
End Sub
 
Hoe zou dit stukje vba moeten weten welke nummers deze moet omwisselen?
Moeten dan alleen de nummers van plaats veranderen of ook de namen die ervoor staan?

edit:
Blijkbaar heeft Edmoor een duidelijk beeld bij wat er moet gebeuren :)
 
Laatst bewerkt:
Ik heb er ook een
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x As Long, y As Long
    Dim Cl As Range
    
    If Target.Column = 2 And Target.Value <> "" Then
        Application.EnableEvents = False
        y = Target.Value
        Application.Undo
        x = Target.Value
        Set Cl = Columns(2).Find(y, LookAt:=xlWhole)
        If Not Cl Is Nothing Then Cl.Value = x
        Target = y
        Application.EnableEvents = True
    End If
End Sub
 
Laatst bewerkt:
Niet aan de Undo gedacht. Leuk :)
Wel even die x voor het event verwijderen ;)
 
Laatst bewerkt:
Aan de helpers,

Timshel

enkel de nummers moeten van plaats wisselen

Edmoor / Hans123

bedankt voor de snelle respons,beide codes werken correct

ps:de code van Hans123 werkt ook met de X erin,moet ik deze verwijderen en waarom:confused:


mvg,lco
 
@coolsluc.
Je haalt wat helpers door elkaar :)
Mijn code in #4 is inmiddels aangepast na de tip van Edmoor in #5.
Zet je de vraag nog even op opgelost?
 
Timshel

bedankt voor de reactie

persoonswissel is domme fout van mij excuus daarvoor.

ps:zal topic op opgelost zetten


mvg,lco
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan