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

Waardes én opmaak kopieren van blad 1 naar blad 2

Status
Niet open voor verdere reacties.

Sanremo

Gebruiker
Lid geworden
27 mrt 2018
Berichten
41
Beste allemaal!

Voor het samenstellen van verschillende prijslijsten uit 1 basis bestand ben ik opzoek naar een mogelijkheid om naast waardes ook opmaak te kopieren.

Het basisbestand op tabblad 1 bevat alle artikelen, beschrijvingen, retail, groothandel en inkoopprijzen. Afhankelijk van welke prijslijst dienen verschillende kolommen uit tabblad 1 naar de prijslijsten op ander tabbladen gekopieerd te worden (bijv de retail en groothandel prijzen, artikelen en beschrijvingen naar tabblad 2: "groothandelprijzen").

Het idee is dat ik bij prijswijzigingen (wijziging van inhoud van cellen), maar ook bij wijzigingen in het assortiment (opschuiven, invoegen of verwijderen van rijen) enkel het basis bestand aan wil hoeven passen. Omdat met name bij wijzigingen in het assortiment de titelbalken van de productgroepen dus ook van rij nummer veranderen, is het van belang dat zowel de inhoud als de opmaak van het gehele basis tabblad word overgenomen.

Nu is mijn probleem dat wanneer ik dit via celverwijzingen doe, alle gegevens worden gekopieerd maar de opmaak achter blijft.
Zou ik de opmaak per tabblad kopieren of aanpassen en ik vervolgens een rij verwijder of toevoeg in het basis tabblad, komt de indeling op de andere tabbladen niet meer uit.

Is er iemand die weet hoe ik dit (mogelijk middels Macro's) wél voor elkaar kan krijgen?
Ps mijn VBA/ Marcro kennis is z.g.a. 0... :D

Bekijk bijlage Excel celverwijzing voorbeeld.xlsx

Bij voorbaat heel veel dank!
 
Hallo en welkom op dit forum.

Is dit wat je bedoelt?

Bekijk bijlage 321169

Bedankt JanBG!

Super bedankt voor het voorbeeld!
Dit is wat ik bedoel, alleen zou hij aanpassingen op het basisblad automatisch over moeten nemen op de andere tabbladen (inhoud en opmaak).
Dat lijkt nu niet te gebeuren, klopt dat?
 
Aha, had de opmaak over het hoofd gezien. Wijzig de code in de macro in:

Code:
Sub Macro1()
        
    Columns("A:L").Copy
    Sheets("Wholesale prijslijst").Range("A1").PasteSpecial Paste:=xlAll
    
    Sheets("Basislijst").Columns("T:T").Copy
    Sheets("Wholesale prijslijst").Range("M1").PasteSpecial Paste:=xlAll

    Sheets("Basislijst").Columns("A:I").Copy
    Sheets("Retail prijslijst").Range("A1").PasteSpecial Paste:=xlAll

    Sheets("Basislijst").Columns("L:L").Copy
    Sheets("Retail prijslijst").Range("J1").PasteSpecial Paste:=xlAll

    Sheets("Basislijst").Columns("T:T").Copy
    Sheets("Retail prijslijst").Range("K1").PasteSpecial Paste:=xlAll
    
End Sub

en de opmaak wordt ook meegenomen

Als je wilt dat dit gebeurd telkens als er gegevens gewijzigd worden in het basisblad zou je dit kunnen proberen in achter blad 1

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "A3:Z29" Then
Call Macro1

End If
End Sub

Heb dit niet getest, dus weet niet zeker of het werkt. Betekent wel dat bij elke wijziging de macro gedraaid wordt. Lijkt me toch handiger om als je klaar bent met de wijzigingen evn op de knop te klikken. :D
 
Aha, had de opmaak over het hoofd gezien. Wijzig de code in de macro in:

Code:
Sub Macro1()
        
    Columns("A:L").Copy
    Sheets("Wholesale prijslijst").Range("A1").PasteSpecial Paste:=xlAll
    
    Sheets("Basislijst").Columns("T:T").Copy
    Sheets("Wholesale prijslijst").Range("M1").PasteSpecial Paste:=xlAll

    Sheets("Basislijst").Columns("A:I").Copy
    Sheets("Retail prijslijst").Range("A1").PasteSpecial Paste:=xlAll

    Sheets("Basislijst").Columns("L:L").Copy
    Sheets("Retail prijslijst").Range("J1").PasteSpecial Paste:=xlAll

    Sheets("Basislijst").Columns("T:T").Copy
    Sheets("Retail prijslijst").Range("K1").PasteSpecial Paste:=xlAll
    
End Sub

en de opmaak wordt ook meegenomen

Als je wilt dat dit gebeurd telkens als er gegevens gewijzigd worden in het basisblad zou je dit kunnen proberen in achter blad 1

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "A3:Z29" Then
Call Macro1

End If
End Sub

Heb dit niet getest, dus weet niet zeker of het werkt. Betekent wel dat bij elke wijziging de macro gedraaid wordt. Lijkt me toch handiger om als je klaar bent met de wijzigingen evn op de knop te klikken. :D

Dit is echt perfect JanBG! Mijn eeuwige dank!
Nog 1 heel klein dingetje, is er een mogelijkheid waarop ook de afbeeldingen worden meegenomen in de kopieer actie?
Zou niet eens een hele grote ramp zijn als dit niet zo zou zijn, maar als het kan wel extra handig :D
 
Quoten is niet nodig, gewoon reageren op het bericht is voldoende. Bij mij worden de afbeeldingen gewoon meegenomen, dus ik snap niet helemaal wat je bedoelt
 
Laatst bewerkt:
Excuus :)

Dat dacht ik eerst ook, maar als ik bijv. de positie van een afbeelding wijzig, of deze vervang voor een andere afbeelding, blijkt hij de wijziging niet over te nemen.
Ook lijkt het me dat de afbeeldingen steeds over elkaar heen worden geplaatst omdat er een paste actie word uitgevoerd, toch?
In dat geval zou een wijziging niet mogelijk zijn omdat eerst in de wholesale en retail tabbladen de oude afbeeldingen moeten worden verwijderd?

Bekijk bijlage Kopie van Kopie van Excel celverwijzing voorbeeld-2.xlsm
 
Laatst bewerkt:
Ik zie wat je bedoelt, ik snap het alleen niet. Waar komen die afbeeldingen vandaan?
 
Ik zie in je bestand dat de afbeelding in een lijst staan:

Afbeelding lijst.png

Die lijst is niet terug te vinden in het bestand:

Verwijzing.png

Ik denk dat daar het probleem zit, al snap ik nog steeds niet waarom de afbeeldingen in de tabbladen Wholesale en Retail niet te verwijderen zijn
 
In de bladmodule van het blad 'Wholesale prijslijst'.
Code:
Private Sub Worksheet_Activate()
  For Each sh In ActiveSheet.Shapes
    sh.Delete
  Next
  Sheets("Basislijst").Range("A:L,T:T").Copy [A1]
End Sub

Voor het andere blad kan je iets soortgelijks gebruiken.
 
Ik zie wat je bedoelt, ik snap het alleen niet. Waar komen die afbeeldingen vandaan?

Die zijn ingevoegd vanuit een map op mn pc. In het bestand waar het uiteindelijk om gaat zijn er een kleine 40 afbeeldingen toegevoegd, welke dus ook niet mee veranderen. Het lijkt mij onnodig veel werk om deze in het bestand toe te voegen (los van dat ik niet weet hoe ik dat zou kunnen doen..:d)

Het valt me op dat ik de copy paste actie wel handmatig kan doen door op het basisblad kolom B te selecteren en kopieren en op het wholesale en retail blad een paste image uit te voeren op B1.

Is het wellicht mogelijk om dit als aparte actie in de macro toe te voegen? (misschien na een delete versie van VenA)

In de bladmodule van het blad 'Wholesale prijslijst'.
Code:
Private Sub Worksheet_Activate()
  For Each sh In ActiveSheet.Shapes
    sh.Delete
  Next
  Sheets("Basislijst").Range("A:L,T:T").Copy [A1]
End Sub

Voor het andere blad kan je iets soortgelijks gebruiken.


Bedankt Vena!
Ik heb de code geprobeerd en toegevoegd aan het wholesale blad, maar deze voegt de macro knop van het basisblad toe aan de wholesale lijst en wist na activering van de knop alle afbeeldingen in heel het bestand..

Het doel zou zijn om bij activering van de macro knop op het basisblad eerst alle afbeeldingen van de wholesale sheet en de retail sheet te wissen, en vervolgens een copy paste van alle afbeeldingen op het basisblad naar de andere 2 tabbladen. Al lukt het dus ook niet om de afbeeldingen van het basisblad middels de macro van JanBG te copy pasten naar de andere 2 tabbladen.
 
Laatst bewerkt:
Je hebt de hele macroknop niet nodig.
 

Bijlagen

  • Excel celverwijzing voorbeeld.xlsb
    32,7 KB · Weergaven: 30
VenA en JanBG.. Jullie zijn echt mijn helden!!:thumb::thumb::thumb::thumb:

Fantastisch!!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan