Beste Allemaal,
In het meegestuurde voorbeeld heb ik op werkblad MATERIAAL B18:E104 en op GEGEVENS B4:K88 en Q9:AA18 de velden IN GEEL aangegeven die ik in OFFERTE wil weergeven.
Let wel, ik wil alleen de gegevens in de tabel opnemen waarvan de waarde <>0 voor de kolommen B in tab materiaal en gegevens en de kolom Q in gegevens.
Ik heb hiervoor een filter geplaatst op rij 3.
Ik probeer om via Macro Opname een aantal gegevenstabellen in een offertesheet op te nemen.
Door het toepassen van Macro Opname werken de verwijzingen niet correct en wordt er verkeerd gefilterd. (filter = toestand tijdens opname.)
Het lukt echter wel om de gegevenstabel te kopiëren als afbeelding en vervolgens in de offerte te kopiëren.
Ik loop tegen het volgende op:
1 : De kolombreedtes van de offertesheet staan vast en de 3 verschillende gegevenstabellen hebben allemaal afwijkende kolombreedtes.
2 : De Gegevenstabellen zijn voorzien van filters om de artikelen of ALLEEN GEGEVENS >O weer te geven. Het aantal regels per tabel kan voor elke offerte anders zijn.
3 : Niet alle kolommen van de range Q9:AA18 moeten worden gekopieerd naar OFFERTE, alleen de in dit voorbeeld zichtbare.
Bekijk bijlage CALCULATIE_OFFERTE_help_mij.xlsm
Na aanpassen van de opname van de macro heb ik de oplossing zelf gevonden.
toegepaste macro :
Sub Offerte_Genereren()
'
' Offerte_Genereren Macro
'
' Sneltoets: Ctrl+o
'
Sheets("PRIJZEN MATERIAAL").Select
ActiveSheet.Range("$B$23:$B$430").AutoFilter Field:=1, Criteria1:="<>0", _
Operator:=xlAnd
Range("B24:E430").Select
Range("E430").Activate
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Sheets("OFFERTE").Select
Range("L4").Select
ActiveSheet.Paste
Sheets("TOTAAL TAB").Select
ActiveSheet.Range("$B$3:$Q$88").AutoFilter Field:=16, Criteria1:="<>0", _
Operator:=xlAnd
Range("Q9:AA19").Select
Range("AA19").Activate
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Sheets("OFFERTE").Select
Range("L124").Select
ActiveSheet.Paste
Sheets("TOTAAL TAB").Select
ActiveSheet.Range("$B$3:$Q$88").AutoFilter Field:=16
ActiveSheet.Range("$B$3:$Q$88").AutoFilter Field:=1, Criteria1:="<>0", _
Operator:=xlAnd
Range("B4:K89").Select
Range("K89").Activate
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Sheets("OFFERTE").Select
Range("L64").Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
In het meegestuurde voorbeeld heb ik op werkblad MATERIAAL B18:E104 en op GEGEVENS B4:K88 en Q9:AA18 de velden IN GEEL aangegeven die ik in OFFERTE wil weergeven.
Let wel, ik wil alleen de gegevens in de tabel opnemen waarvan de waarde <>0 voor de kolommen B in tab materiaal en gegevens en de kolom Q in gegevens.
Ik heb hiervoor een filter geplaatst op rij 3.
Ik probeer om via Macro Opname een aantal gegevenstabellen in een offertesheet op te nemen.
Door het toepassen van Macro Opname werken de verwijzingen niet correct en wordt er verkeerd gefilterd. (filter = toestand tijdens opname.)
Het lukt echter wel om de gegevenstabel te kopiëren als afbeelding en vervolgens in de offerte te kopiëren.
Ik loop tegen het volgende op:
1 : De kolombreedtes van de offertesheet staan vast en de 3 verschillende gegevenstabellen hebben allemaal afwijkende kolombreedtes.
2 : De Gegevenstabellen zijn voorzien van filters om de artikelen of ALLEEN GEGEVENS >O weer te geven. Het aantal regels per tabel kan voor elke offerte anders zijn.
3 : Niet alle kolommen van de range Q9:AA18 moeten worden gekopieerd naar OFFERTE, alleen de in dit voorbeeld zichtbare.
Bekijk bijlage CALCULATIE_OFFERTE_help_mij.xlsm
Na aanpassen van de opname van de macro heb ik de oplossing zelf gevonden.
toegepaste macro :
Sub Offerte_Genereren()
'
' Offerte_Genereren Macro
'
' Sneltoets: Ctrl+o
'
Sheets("PRIJZEN MATERIAAL").Select
ActiveSheet.Range("$B$23:$B$430").AutoFilter Field:=1, Criteria1:="<>0", _
Operator:=xlAnd
Range("B24:E430").Select
Range("E430").Activate
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Sheets("OFFERTE").Select
Range("L4").Select
ActiveSheet.Paste
Sheets("TOTAAL TAB").Select
ActiveSheet.Range("$B$3:$Q$88").AutoFilter Field:=16, Criteria1:="<>0", _
Operator:=xlAnd
Range("Q9:AA19").Select
Range("AA19").Activate
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Sheets("OFFERTE").Select
Range("L124").Select
ActiveSheet.Paste
Sheets("TOTAAL TAB").Select
ActiveSheet.Range("$B$3:$Q$88").AutoFilter Field:=16
ActiveSheet.Range("$B$3:$Q$88").AutoFilter Field:=1, Criteria1:="<>0", _
Operator:=xlAnd
Range("B4:K89").Select
Range("K89").Activate
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Sheets("OFFERTE").Select
Range("L64").Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
Laatst bewerkt: