foutmelding plakken speciaal.

Status
Niet open voor verdere reacties.

lindamulder

Nieuwe gebruiker
Lid geworden
20 nov 2008
Berichten
2
Hallo, ik ben nog niet zo bekend met het maken van macro's maar ik ben een eind op weg.
Ik ben ik excel 2007 een administratie systeem aan het maken. Hierbij wil ik een gemaakte offerte verwerken in een overzicht. Op zich gaat het redelijk, Alleen zijn er problemen met het plakken van de waardes.
In de offerte wordt de totaal prijs bepaald d.m.v. een som. In het overzicht wil ik de totaal prijs geplakt hebben maar als ik plakken speciaal, waardes gebruik dan krijg ik een foutmelding.

Dit is de code van de macro:
Sub offerte1()
'
' offerte1 Macro
' offerte verwerken
'
' Sneltoets: CTRL+u
'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("H14").Select
Selection.Copy
Sheets("Overzicht offertes").Select
ActiveSheet.Paste
Range("B4").Select
Sheets("Offerte").Select
Range("H15").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Overzicht offertes").Select
ActiveSheet.Paste
Sheets("Offerte").Select
Range("B13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Overzicht offertes").Select
Range("C4").Select
Application.CutCopyMode = False
Selection.Copy
ActiveSheet.Paste
Sheets("Offerte").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Overzicht offertes").Select
ActiveSheet.Paste
Range("D4").Select
Sheets("Offerte").Select
Range("H42").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Overzicht offertes").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E4").Select
Application.CutCopyMode = False
Range("A5").Select
Sheets("Offerte").Select
Range("B13").Select
Selection.ClearContents
Range("A20").Select
Selection.ClearContents
Range("B20:F20").Select
Selection.ClearContents
Range("G20").Select
Selection.ClearContents
Range("H14") = Range("H14") + 1
End Sub


Zoals te zien is zitten er meerder = False meldingen in, ik weet niet wat hier mee bedoelt wordt en wat ik er aan kan doen.
Wat ik ook nog graag voor elkaar wil krijgen is dat een volgende offerte bij de verwerking in het overzicht op een nieuwe lege regel komt, nu overschrijft hij steeds de 1e regel waardoor ik dus geen lijst krijg.

Is er iemand die wellicht de code kan aanpassen en me meer duidelijkheid kan geven?

bij voorbaat heel erg veel dank,

linda Mulder
 
Die
Code:
Application.CutCopyMode = False
zorgt voor het uitschakelen van het "mierenspoor" als je een bepaald bereik kopieert (hier in code).

Het is dus genoeg dat deze regel dus slechts 1 keer gezet wordt, aan het einde van de macro.

Goed dat je begonnen bent met VBA, maar ik zou eerst voor een Excel VBA boek uit de bib gaan. Of googlen. Zodat je toch de belangrijkste dingen weet.

Wigi
 
Dit zal zeker NIET werken, maar geeft wel aan hoe je programmeert in VBA (ipv. de code van de macro recorder):

Code:
Sub offerte1()

' offerte1 Macro
' offerte verwerken

' Sneltoets: CTRL+u
    
    Dim wsBron As Worksheet
    Dim wsDoel As Worksheet
    
    Set wsBron = ThisWorkbook.Worksheets("offerte")
    Set wsDoel = ThisWorkbook.Worksheets("Overzicht offertes")
    
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    
    wsDoel.Range("???").Value = wsBron.Range("H14").Value
    wsDoel.Range("???").Value = wsBron.Range("H15").Value
    wsDoel.Range("C4").Value = wsBron.Range("B13").Value
    wsDoel.Range("E4").Value = wsBron.Range("H42").Value
    
    wsBron.Range("B13,A20:G20").ClearContents
    
    wsDoel.Range("H14").Value = wsDoel.Range("H14").Value + 1
    
    Set wsBron = Nothing
    Set wsDoel = Nothing
    
End Sub

Wigi
 
Als je bijvoorbeeld de cellen H14,H15,B13,H42 van werklad 'offerte' naar resp. de cellen C4,D4,E4,A5 van blad 'overzicht offerte' wil kopiëren dan kan dat met:

Code:
Sub kopie()
  for j=1 to 4
    sheets("offerte").range(choose(j,"H14","H15","B13","H42")).copy sheets("Overzicht offertes").range(choose(j,"C4","D4","E4","A5"))
  next
End Sub
 
oke, hier kom ik wel iets verder mee, maar als ik nu in de macro opneem dat de cellen geplakt moeten worden in A4 t/m D4 hoe laat ik dan de volgende offerte opslaan op A5 t/m D5 enz. Hij moet dus iedere offerte op een nieuwe regel plaatsen in het overzicht.
 
oke, hier kom ik wel iets verder mee, maar als ik nu in de macro opneem dat de cellen geplakt moeten worden in A4 t/m D4 hoe laat ik dan de volgende offerte opslaan op A5 t/m D5 enz. Hij moet dus iedere offerte op een nieuwe regel plaatsen in het overzicht.

Code:
Range("A" & Rows.Count).End(xlUp).Offset(1,0)

geeft de eerstvolgende cel onder de laatst gevulde cel in kolom A.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan