Alleen plakken waarde mogelijk

Status
Niet open voor verdere reacties.

monty1a

Gebruiker
Lid geworden
29 dec 2006
Berichten
202
Is er een manier/code die het mogelijk maakt dat alleen maar plakken waarde mogelijk is.

Ik heb een bestand waar andere ook in werken en dan worden er door knippen plakken soms fouten gemaakt, omdat sommige cellen alleen maar een getal mag bevatten.

ISub PasteasValue()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub

Maar is dit ook alleen op een blad mogelijk?
 
Wat bedoel je?
Plakken gebeurd altijd op een blad.
En wat is ISub?
 
Laatst bewerkt:
Sorry, dat Isub is een kopieer fout.

Sub PasteasValue()
Selection.PasteSpecial Paste:=xlPasteValues
End Sub

En sneltoets Ctrl+V eraan gekoppeld.


De bovenstaande formule werkt in principe wel, maar omdat deze in Wokbook staat geldt dit voor de gehele werkmap.
Ik wil dat ze op de Sheet " Overzicht" alleen plakken waarden kunnen doen, en niet de opmaak kunnen veranderen.
Dit gebeurd nu nog teveel, waardoor cijfers ineens tekst worden of andersom en dit verderop in het bestand fouten geeft.

Hopelijk is het een beetje duidelijk wat ik bedoel
 
Zo bedoel je?
Code:
Sub PasteasValue()
    If ActiveSheet.Name = "Overzicht" Then Selection.PasteSpecial Paste:=xlPasteValues
End Sub
 
@edmoor ... heb ik het juist dat dit echter niet verhinderd dat er tekst (string) wordt geplakt in een cel die als numeriek staat gedefinieerd... ?
 
Dat heb ik niet getest maar lijkt me een correcte aanname.
Maar dat deed de originele code van TS ook niet.
 
Inderdaad, vandaar dat hij hier de vraag stelde ... weet jij iets ? Ik moet nu even weg.
 
Zoiets.
Zelf even testen:
Code:
Sub PasteasValue()
    If ActiveSheet.Name = "Overzicht" Then
        ctype = CellType(ActiveCell)
        Selection.PasteSpecial Paste:=xlPasteValues
        If CellType(ActiveCell) <> ctype Then Application.Undo
    End If
End Sub

Function CellType(c)
     Select Case True
        Case IsEmpty(c):                    CellType = "Blank"
        Case Application.IsText(c):         CellType = "Text"
        Case Application.IsLogical(c):      CellType = "Logical"
        Case Application.IsError(c):        CellType = "Error"
        Case IsDate(c):                     CellType = "Date"
        Case InStr(1, c.Text, ":") <> 0:    CellType = "Time"
        Case c.HasFormula:                  CellType = "Formula"
        Case IsNumeric(c):                  CellType = "Value"
     End Select
End Function
 
Even TS reactie afwachten ... grandioze insteek vind ik dat, maar ik vermoed dat hij ganse records wil kunnen invoegen en volgens mij werkt je systeempje enkel bij een copy/paste in één cel.
 
Dat gaat inderdaad maar op voor 1 cel.
TS kan beter een voorbeeld document plaatsen.
 
Laatst bewerkt:
Er moet inderdaad een overzicht invullen (dit krijgen we meestal van een opdrachtgever aangeleverd)

Ik heb even alleen het overzicht blad als voorbeeld (bestand bestaat uit meer dan 30 tabbladen namelijk), het gehele bestand wordt te groot.
Dit is wel het belangrijkste blad waar vanaf ieder tabblad informatie wordt gevraagd.
 

Bijlagen

  • Voorbeeld overzicht.xlsx
    128,8 KB · Weergaven: 29
Ik denk dat zowel ikzelf als Edmoor een vb. van een record zoals die binnenkomt en moet gepasted worden nodig hebben om iets te zien ....
 
1 record !!!! Wat wordt er in gepasted ?
Mag volledig verzonnen zijn, als het maar conform is qua velden aan wat je wil copy/paste hierin stoppen ...
 
Bij deze een ingevulde wat er normaal gekopieerd hoeft te worden.
 

Bijlagen

  • Voorbeeld overzicht.xlsx
    129,6 KB · Weergaven: 28
Verhelderend. Wat moet er nu gebeuren en wat gaat er mis?
 
Is dit dan het juiste formaat dat je in een CSV of een XLS of ander formaat aangeleverd krijgt ?
 

Bijlagen

  • Import_format.xlsx
    51,1 KB · Weergaven: 21
Ik zie het probleem niet maar zal aan mij liggen. Succes verder.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan