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

formules en opmaak vervangen

Status
Niet open voor verdere reacties.

kuin047

Gebruiker
Lid geworden
9 aug 2002
Berichten
444
Ik heb weer eens een probleem, of liever gezegd gekregen.
Op een boekhoudblad staan allerlei gegevens ingevuld.
Nu heb ik bemerkt dat een hele serie formules niet goed zijn, en dat meerdere cellen niet zijn geblokkeerd.

Ik heb het blad opnieuw gemaakt met dezelfde indeling, maar nu met de goede formules en blokkeringen.

Nu hebben de klanten al het foute blad in gebruik en nu moet dat veranderd worden.
Het makkelijkste zou zijn als ik de nieuwe formules en opmaak onder de reeds ingevoerde gegevens van de klanten kan plakken.Dan hoef ik ze niet allemaal over te schrijven.

Maar als ik via plakken-speciaal > formules de zaak ga plakken dan worden ook de gegevens overschreven. Ik wil dus alleen de formules en opmaak, in het al ingevulde bestand zetten.

Begrijp je het nog? Oplossing???
 
Doe dan 2 keer achter elkaar Plakken Speciaal.

Eerst de Opmaak, en vervolgens de Formules. Zelfde dialoogvenster.

Wigi
 
nee

dat gaat niet, want met formules plakken overschrijft hij de reeds ingevulde waarde. Terwijl ik wil dat hij alleen de onderliggende formule aanpast.
 
Voor mij is het niet helemaal duidelijk wat je wenst, maar kan je niet viar Ga Naar (=F5 of CTRL+G), en dan speciaal de formules selecteren, en dan alleen die cellen copieren. Plakken of plakken speciaal gebeurt op dezelfde wijze, die formules selecteren en dan plakken.
 
veel werk

Ik kan de formules wel plakken maar.
In een cel B1 staat 5
In B2 geen waarde ingevoerd maar er staat wel een formule onder die weg moet.
Bij een andere klant staat er geen waarde in B1 maar wel in B2 de waarde 3

Als ik nu de formule (Dus geen formule) wil plakken in de cellen B1 en B2 dan haal je ook met plakken speciaal de al ingevoerde waarde weg.
En dat wil ik dus voorkomen omdat ik anders alle bladen van alle klanten moet gaan overschrijven in een goede map zonder formule fouten. Dat is veel werk.
Dus ik zoek een eenvoudiger oplossing ...Als die er is.
 
Ik kan de formules wel plakken maar.
In een cel B1 staat 5
In B2 geen waarde ingevoerd maar er staat wel een formule onder die weg moet.
Bij een andere klant staat er geen waarde in B1 maar wel in B2 de waarde 3

Als ik nu de formule (Dus geen formule) wil plakken in de cellen B1 en B2 dan haal je ook met plakken speciaal de al ingevoerde waarde weg.
En dat wil ik dus voorkomen omdat ik anders alle bladen van alle klanten moet gaan overschrijven in een goede map zonder formule fouten. Dat is veel werk.
Dus ik zoek een eenvoudiger oplossing ...Als die er is.

Het spijt me hoor, maar ik begrijp je probleem nog steeds niet. Ik *voel* dat het precies een VBA oplossing moet gaan worden.
 
ok

ik ga `m uitpellen.

Cel A1 t/m A4 staat 0 Cel of geen waarde.
Cel A5 staat =SOM(A1:A4)

Nu neem ik C1 t/m C4 als ingevuld door klant 1-2-2-1
C5 staat =SOM(A1:A3) Deze is dus fout.

Nu selecteer ik A1 t/m A5 > kopiëren > selecteer C1 >plakken speciaal > formules> OK

En dan zijn de ingevoerde waarden 1-2-2-1 weg terwijl die dus moeten blijven staan.
En dat lukt dus niet.

Om dat te omzeilen zou ik dus voor de hele bladbewerking cel voor cel moeten selecteren om te kopiëren plakkenspeciaal formules, om te voorkomen dat de reeds ingevoerde data verdwijnen.
Ik wil dus in één keer het hele blad selecteren om vervolgens alleen de formules te plakken...en dat lukt dus niet.

Heb ik het nu een beetje begrijpelijk uitgelegd?
 
ik ga `m uitpellen.

Cel A1 t/m A4 staat 0 Cel of geen waarde.
Cel A5 staat =SOM(A1:A4)

Nu neem ik C1 t/m C4 als ingevuld door klant 1-2-2-1
C5 staat =SOM(A1:A3) Deze is dus fout.

Nu selecteer ik A1 t/m A5 > kopiëren > selecteer C1 >plakken speciaal > formules> OK

En dan zijn de ingevoerde waarden 1-2-2-1 weg terwijl die dus moeten blijven staan.
En dat lukt dus niet.

Om dat te omzeilen zou ik dus voor de hele bladbewerking cel voor cel moeten selecteren om te kopiëren plakkenspeciaal formules, om te voorkomen dat de reeds ingevoerde data verdwijnen.
Ik wil dus in één keer het hele blad selecteren om vervolgens alleen de formules te plakken...en dat lukt dus niet.

Heb ik het nu een beetje begrijpelijk uitgelegd?

Zo versta ik het:

je hebt een bestand waar op een sheet verkeerde formules staan (=sheet A), je hebt dat een nieuw bestand gemaakt waar je het geraamte van die verkeerde sheet A opnieuw hebt gemaakt maar nu met de juiste formules (=sheet B). Wat je nu wenst is de formules van sheet B te copieren naar dezelfde cellen in sheet A (=verkeerde formules overschrijven naar correcte formules)

Is dat correct?

Volgende code voert die bewerking uit (de code dient in het workbook te staan met de correcte formules, dus waar sheet B staat):
Namen van workbooken en sheets dien je aan te passen!

Code:
Sub CopyFormula()

Dim rCorrecteFormules As Range
Dim Cell As Range

'verwijzing naar het bestand en de sheet waar de correcte formules in staan (bestandsnaam en sheetnaam aanpassen!)
Set rCorrecteFormules = Workbooks("formules.xls").Sheets("blad1").Cells.SpecialCells(xlCellTypeFormulas)


For Each Cell In rCorrecteFormules
    'alles voor het = teken verwijst naar het bestand en sheet waar de verkeerde formules in staan (bestandsnaam en sheetnaam aanpassen!)
    Workbooks("formules2.xls").Sheets("blad1").Range(Cell.Address).Formula = Cell.Formula
Next

End Sub
 
yess

Ja dat zocht ik.
Maar nu in het nederlands svp.
Ik heb dus een excelmap met 3 tabbladen veranderd die goed is.
Hoe moet ik beide mappen noemen(de goede en foute) en moet ik ze eerst openen en de beveiliging van de tabbladen afhalen, geopend laten en dan de macro afspelen?
 
Ik heb de code aangepast zodat het rond naamgeving misschien iets duidelijker wordt:

Code:
Sub CopyFormula()

Dim rCorrecteFormules As Range
Dim Cell As Range

'verwijzing naar het bestand en de sheet waar de correcte formules in staan (bestandsnaam en sheetnaam aanpassen!)
Set rCorrecteFormules = Workbooks("[COLOR="DarkGreen"]naam van het goede bestand.xls[/COLOR]").Sheets("[COLOR="darkgreen"]sheet met de goede formules[/COLOR]").Cells.SpecialCells(xlCellTypeFormulas)


For Each Cell In rCorrecteFormules
    'alles voor het = teken verwijst naar het bestand en sheet waar de verkeerde formules in staan (bestandsnaam en sheetnaam aanpassen!)
    Workbooks("[COLOR="Red"]naam van het foute bestand.xls[/COLOR]").Sheets("[COLOR="red"]sheet met de foute formules[/COLOR]").Range(Cell.Address).Formula = Cell.Formula
Next

End Sub

Je kan dat ook allemaal automatisch laten verlopen (dus aangeven welke map de foute bestanden staan, en dan allemaal fixen, meerdere tabbladen in 1 keer veranderen, enz.) maar daar heb ik momenteel niet de tijd voor om die aanpassing te maken.

Hoe moet ik beide mappen noemen(de goede en foute) en moet ik ze eerst openen en de beveiliging van de tabbladen afhalen, geopend laten en dan de macro afspelen?

Naamgeving kies jezelf, je past wel de gekleurde tekst aan in de code zodat die klopt.
Beide bestanden moeten geopend zijn en open laten staan tot code is uitgevoerd.
Beveiliging afhalen ligt eraan welke beveiliging erop staat. Voor de veiligheid (:))misschien best unprotecten ja.
Test ook eerst even uit op wat proefbestanden om te zien of je het gewenste resultaat bekomt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan