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

Locatie waarde vinden

Status
Niet open voor verdere reacties.

DeToekomst2

Gebruiker
Lid geworden
29 jul 2016
Berichten
91
Dag,


Ik heb de volgende vraag, hoe kan ik de locatie van een bepaalde waarde vinden in een tabel en deze toepassen in een macro? Ik wil dat de locatie van een waarde wordt gevonden en vervolgens wordt de waarde één plekje naar boven verplaatst.


Bekijk bijlage LocatieVindenHM.xlsx
 
Op den duur gaat het niet verder dan rij 3.

In moduleblad van toepassing.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
If Target.Address = "$M$3" Then
  Set c = Range("c3:j14").Find([m7].Value, , , xlWhole)
    If Not c Is Nothing Then
      if c.row >3 then
         c.Offset(-1) = c.Value
         c.ClearContents
    end if
    End If
End If
End Sub
 
Laatst bewerkt:
Hartstikke bedankt voor de code, ik heb 'm toegepast en het doet precies wat ik wil.

Nu heb ik even een snelle vraag, ik heb in mijn blad jou code toegepast en deze zorgt ervoor dat ik bij het selecteren van cel BD4 het nummer een plekje naar boven beweeg. Nu wil ik ditzelfde doen maar dan dat ik het nummer naar links, rechts en naar onder beweeg. Dit doe ik door het selecteren van 3 andere cellen.
Ik krijg het nu helaas niet voor elkaar om de codes te starten bij het selecteren van de andere 3 cellen.

Ik maak gebruik van de door jou gegeven code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
If Target.Address = "$M$3" Then
Hoe voeg ik nu een tweede, derde en vierde 'Target.Adress' toe?

Alvast bedankt voor de reactie, als je het nog leest :)
 
Dat kan bv. zo.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
  select case target.address(0,0)
    case "a1"
      doe het ding van a1
   case "d1"
      doe het ding van d1
   case "AD1"
      doe het ding van AD1
end select
end sub
 
Super! Bedankt!

Ik had het zelf opgelost door de nieuwe eis achter End If te zetten, dan werkte het ook, ik vind dit alleen netter.
Nu heb ik weer iets anders waar ik tegen aan loop. In de code die HSV heeft gegeven wordt het rijnummer verandert van een bepaalde waarde.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
If Target.Address = "$M$3" Then
  Set c = Range("c3:j14").Find([m7].Value, , , xlWhole)
    If Not c Is Nothing Then
      if c.row >3 then
         c.Offset(-1) = c.Value
         c.ClearContents
    end if
    End If
End If
End Sub

Nu heb ik deze zo gemaakt dat ik mijn waarde naar boven en naar beneden kan bewegen maar nu wil ik nog van links naar rechts. Ik weet niet welke code is bedoeld om de kolom bijvoorbeeld één naar links of één naar rechts te veranderen.
 
Offset(rij,kolom).

Naar rechts: offset(,1)
Beneden: offset(1)
Links: offset(,-1)
Naar naar beneden en naar rechts: offset(1,1)
Boven en naar rechts: offset(-1,1)
enz.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan