PasteSpecial z Operation:=xlMultiply preko makra ne deluje

Pomoč pri izdelavi makrov
Odgovori
BoMra
Prispevkov: 8
Pridružen: Ne Mar 03, 2013 3:34 am

PasteSpecial z Operation:=xlMultiply preko makra ne deluje

Odgovor Napisal/-a BoMra »

Pozdravljeni,

imam težavo z izvedbo posnetega makroja. Ko makro snemam se mi posebno lepljenje z množenjem z ena izvede. S tem se mi zapisani datumi spremenijo v številke. Ko to isto posneto kodo izvedem z makrojem se ne zgodi nič. Zapise datumov imam v celicah AA in AB. Poizkušal sem že vse, a vedno ko uporabim v makru enega od operatorjev (dodaj (Add), pomnoži (Multiply) se v izvedbi makroja ne izvede nič. Če zadevo izpeljem ročno se množenje ali dodajanje izvede. Kaj delam narobe oz. kje je finta?

Koda: Izberi vse

Sheets("SAP_data").Select
    Range("P3").Select
    ActiveCell.FormulaR1C1 = "1"
    
    Range("P3").Select
    Selection.Copy
    
    Range("AA6:AB6").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    ......
    End With
Že v naprej hvala za pomoč.
LP, Boštjan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a admin »

Pozdravljeni,

Kar opisujete ni problem Excela, temveč vaših makrov. Sklepam da se igrate z nastavitvami:

Koda: Izberi vse

 Application.CutCopyMode = xxx


saj slednje spreminjajo obnašanje funkcije copy/paste.

Spodnji makro namreč deluje natanko tako kot pričakujete:

Koda: Izberi vse

Sub X()
    Sheets("SAP_data").Select
    
    Range("P3").Select
    ActiveCell.FormulaR1C1 = "1"
    
    Range("P3").Select
    Selection.Copy
    
    Range("AA6:AB6").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
End Sub
lp,
Matjaž Prtenjak
Administrator
BoMra
Prispevkov: 8
Pridružen: Ne Mar 03, 2013 3:34 am

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a BoMra »

Pozdravljeni,

ne z nastavitvami se ne igram. Ko makro snemam se lepljenje z množenjem izvede. Potem taisti makro zaženem pa se množenje(Operation:=xlMultiply) ne izvede.
Opazil sem, da je isto, če v prazno celico z makrojem in funkcijo PasteSpecial dodam (Operation:=xlAdd) številčni zapis, ki je oblikovan kot besedilo. Tudi tu se kopiranje preko makroja ne izvede.
Makro se izvede samo, če ne uporabim nobene računske operacije (Operation:=xlNone).
Ker pa je moj cilj, da tekstovne zapise datumov in številk spremenim v številčne zapise mi lepljenje z Operation:=xlNone ne koristi.

Še enkrat hvala za kakšen nasvet in lep pozdrav,

Boštjan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a admin »

Pozdravljeni,

Kot sem vam napisal že v prejšnjem odgovoru. Vse deluje tako kot mora in tudi makro deluje. Če vam kaj ne deluje potem je problem v vaši datoteki.

Odprite novo Excelovo datoteko, vanjo vnesite datume v celice AA6:ABxx in izvedite makro, ki sem vam ga poslal. Vsi datumi bodo predstavljeni kot številke.
lp,
Matjaž Prtenjak
Administrator
BoMra
Prispevkov: 8
Pridružen: Ne Mar 03, 2013 3:34 am

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a BoMra »

Tudi v novi odprti excelovi datoteki zadeva ne deluje.
Množenje se ne izvede.

Lp,
Boštjan
BoMra
Prispevkov: 8
Pridružen: Ne Mar 03, 2013 3:34 am

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a BoMra »

Sprememba datuma v število se izvede če excel prepozan da jezapisan datum desna poravnava v celici.
Ker pa imam jaz leve poravnave zapisa datuma, torej zapis je teks, se množenje z uporabo makroja ne izvede, ročno brez uporabe makroja pa se množenje izvede.

Lp,
Boštjan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a admin »

Pozdravljeni,

Poravnava nima zveze z vsebino celice. Če je v celici datum je v njej datum in Excel ga vedno obravnava kot številko. Če torej želite samo "pretvoriti" obstoječi datum v številko potem je dovolj, da samo spremenite obliko celice. To je vse! Samo oblikujte celico ko številko.

Če pa v celicah nimate datumov temveč besedila, potem pa morate najprej besedilo pretvoriti v datum in potem datum v številko oz. kot sem že razložil je pretvorba teksta v datum že praktično pretvorba v številko.
lp,
Matjaž Prtenjak
Administrator
BoMra
Prispevkov: 8
Pridružen: Ne Mar 03, 2013 3:34 am

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a BoMra »

To mi je jasno.

Zapisi se ne sprmenijo, če oblikujem celice kot število.
Sprememba nastane šele potem, ko celico izberem z dvoklikom in potrdim z entrom.

Skupinsko to rešim z množenjem z ena, ki pa mi kot sem opisal preko makroja ne deluje.

Torej rabim sprmembo besedila v število (= datum).

Lp,
Boštjan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: PasteSpecial z Operation:=xlMultiply preko makra ne delu

Odgovor Napisal/-a admin »

Koda: Izberi vse

Sub Pretvori()
    Sheets("SAP_data").Select
    
    Range("AA6:AB6").Select
    Range(Selection, Selection.End(xlDown)).Select
    
    Dim cell
    For Each cell In Selection
      cell.Value = CLng(cell.Value)
    Next
    Selection.NumberFormat = "0"
End Sub
lp,
Matjaž Prtenjak
Administrator
Odgovori