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

Cellen worden overschreven

Status
Niet open voor verdere reacties.

RV2010

Gebruiker
Lid geworden
29 sep 2010
Berichten
73
Goedemorgen/middag,

Ik heb een excel-bestand, waarin een aantal rijen ingevuld dienen te worden.
Als bijv. kolom C positief is beantwoordt (YES), wordt kolom D geactiveerd en komt er de tekst 'choose' in.

Nu zit ik alleen met 1 probleem. Als ik bijv. de gehele opmaak van kolom C probeer te wijzigen, door bijv. Plakken Speciaal > Opmaak, dan wordt de gehele volgende kolom D opnieuw ingevuld met 'choose', ook al is er al een keuze gemaakt.

Is er een manier om ervoor te zorgen dat kolom D bij zo'n handeling niet wijzigt? Zie bijlage.

Alvast bedankt :)

Bekijk bijlage RV-3679495.xls
 
Laatst bewerkt:
Controle toevoegen die eerst kijkt of de cel in kolom D ingevuld is of niet alvorens de event-macro uit te voeren.
 
Controle toevoegen die eerst kijkt of de cel in kolom D ingevuld is of niet alvorens de event-macro uit te voeren.

Dat is inderdaad een goed idee ;) heb je misschien ook een tip om me op weg te helpen, stukje code o.i.d.? Ik heb bijna geen VBA-kennis en ben er pas sinds een paar dagen mee bezig. Heb nu het volgende, weet niet of dit omslachtig is of makkelijker kan?

Dit is de oude situatie:

Code:
  If Not Intersect(Target, Range("C3:C65536")) Is Nothing Then
  On Error Resume Next
    If Target.Value = "YES" Then
        Target.Offset(, 2).Validation.Modify xlValidateList, , , "=LIJST"
        Target.Offset(, 2) = "choose"
    Else: Target.Offset(, 2) = "n/a"
      Target.Offset(, 2).Validation.Modify xlValidateList, , , "=n_a"
    End If
  End If


En dit de nieuwe:

Code:
  If Not Intersect(Target, Range("C3:C65536")) Is Nothing Then
  On Error Resume Next
    If Target.Value = "YES" Then
      If Cells(Target.Row, 5) <> "n/a" Then
        Target.Offset(, 2).Validation.Modify xlValidateList, , , "=LIJST"
      Else: Target.Offset(, 2) = "choose"
        Target.Offset(, 2).Validation.Modify xlValidateList, , , "=LIJST"
      End If
    Else: Target.Offset(, 2) = "n/a"
      Target.Offset(, 2).Validation.Modify xlValidateList, , , "=n_a"
    End If
  End If
 
Laatst bewerkt:
Ik heb het inmiddels opgelost met een omweg...dit is mijn code:

Code:
  If Not Intersect(Target, Range("C3:C65536")) Is Nothing Then
  On Error Resume Next
    If UCase(Target.Value) = "YES" Then
      If Cells(Target.Row, 4) <> "n/a" Then
        Cells(Target.Row, 4).Validation.Modify xlValidateList, , , "=LIJST"
      Else: Cells(Target.Row, 4) = "choose"
        Cells(Target.Row, 4).Validation.Modify xlValidateList, , , "=LIJST"
      End If
    Else: Cells(Target.Row, 4) = "n/a"
      Cells(Target.Row, 4).Validation.Modify xlValidateList, , , "=n_a"
    End If
  End If


Kan jij misschien zeggen welke code jij bedoelt? Dan kan ik hem op opgelost zetten :)

Bedankt!!
 
Laatst bewerkt:
Wegens geen reactie op afgehandeld gezet.
Ik neem maar aan dat mijn code ook goed was.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan