..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

PasteSpecial z Operation:=xlMultiply preko makra ne deluje

Pomoč pri izdelavi makrov

PasteSpecial z Operation:=xlMultiply preko makra ne deluje

OdgovorNapisal/-a BoMra » Če jan 21, 2016 11:10 pm

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
BoMra
 
Prispevkov: 8
Pridružen: Ne mar 03, 2013 3:34 am



Matjazev.NET
 

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

OdgovorNapisal/-a admin » Pe jan 22, 2016 9:07 am

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
admin
Site Admin
 
Prispevkov: 3529
Pridružen: Sr jul 20, 2005 10:06 pm

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

OdgovorNapisal/-a BoMra » Pe jan 22, 2016 12:15 pm

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
BoMra
 
Prispevkov: 8
Pridružen: Ne mar 03, 2013 3:34 am

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

OdgovorNapisal/-a admin » Pe jan 22, 2016 12:31 pm

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
admin
Site Admin
 
Prispevkov: 3529
Pridružen: Sr jul 20, 2005 10:06 pm

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

OdgovorNapisal/-a BoMra » Pe jan 22, 2016 12:45 pm

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

OdgovorNapisal/-a BoMra » Pe jan 22, 2016 1:01 pm

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
BoMra
 
Prispevkov: 8
Pridružen: Ne mar 03, 2013 3:34 am

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

OdgovorNapisal/-a admin » Pe jan 22, 2016 1:28 pm

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
admin
Site Admin
 
Prispevkov: 3529
Pridružen: Sr jul 20, 2005 10:06 pm

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

OdgovorNapisal/-a BoMra » Pe jan 22, 2016 2:21 pm

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
BoMra
 
Prispevkov: 8
Pridružen: Ne mar 03, 2013 3:34 am

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

OdgovorNapisal/-a admin » Pe jan 22, 2016 2:44 pm

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
admin
Site Admin
 
Prispevkov: 3529
Pridružen: Sr jul 20, 2005 10:06 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 2 gostov

cron