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

Verborgen cellen alleen als de cel een formule bevat

Status
Niet open voor verdere reacties.

Shorty75

Gebruiker
Lid geworden
10 dec 2009
Berichten
20
Hoi allemaal,

Ik hoop dat jullie me kunnen helpen.

Ik heb een beveiligde excelsheet.
In de sheet staat een kolom. In deze kolom staat een formule. De formule is in de eigenschappen op verborgen gezet.
Je kunt de formule dus niet zien in de tekstbalk.

Men mag de formule echter wel met vrije tekst overschrijven.
Nadat men dat gedaan heeft en op 'Enter' is gedrukt, is de Cel overschreven met vrije tekst,

Nu wil ik graag dat de tekst niet meer verborgen is, en dus wel zichtbaar is in de tekst balk, zodat men die tekst eventueel nog kan aanpassen.


Hiervoor heb ik in VBA in het betreffende blad het volgende opgenomen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 18 And (Target.Row >= 3 And Target.Row <= 252) And Range(Target.Address).HasFormula Then
        Range(Target.Address).FormulaHidden = True
    End If
    If Target.Column = 18 And (Target.Row >= 3 And Target.Row <= 252) And Not Range(Target.Address).HasFormula Then
        Range(Target.Address).FormulaHidden = False
    End If
End Sub




helaas werkt het niet.
De formule is wel onzichtbaar, maar overschreven cellen met vrije tekst zijn ook niet zichtbaar in de tekstbalk.
Als men de tekst wil aanpassen, moeten ze de tekst helemaal opnieuw invoeren.
De tekst wordt ook niet in de tekstbalk getoond

Waar gaat het verkeerd?
 
Je kunt pas iets veranderen aan een werkblad als dat niet beveiligd is. Jij hebt dat niet gedaan. Sowieso kan de code een stuk simpeler:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Sheets(1).Unprotect
    If Target.Column = 14 And (Target.Row >= 2 And Target.Row <= 13) And Range(Target.Address).HasFormula Then
        Range(Target.Address).FormulaHidden = True
    Else
        Range(Target.Address).FormulaHidden = False
    End If
    Sheets(1).Protect
End Sub

Ik heb de range aangepast, want ik had (uiteraard) geen zin om jouw range na te bouwen.
 
O, stom. Dat had ik kunnen weten.
Maar toch bedankt. Ook voor het inkorten.
Daar ben ik nog niet zo handig mee.

Maar ik blijf leren.

Nogmaals thanks
 
Kan nog korter.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Unprotect
 With Target
    .FormulaHidden = .Column = 14 And .Row >= 2 And .Row <= 13 And .HasFormula
 End With
 Protect
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan