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

Preverjanje podatkov pred lepljenem

Pomoč pri izdelavi makrov

Preverjanje podatkov pred lepljenem

OdgovorNapisal/-a BJ » Če jan 24, 2019 12:47 pm

Pozdravljeni!
Nekako mi je uspelo, da v listu "Delo" izberem dve celici, jih skopiram in nato prilepim v list "Seznam". Obstaja možnost, da se zmotim in isti zapis podvojim, kar pa nebi bilo vredu. Zato bi potreboval dopolniti makro, da preveri, če zapis že obstaja in če je temu tako, bom dodal MsgBox.
Se Zahvaljujem za pomoč.
Koda: Izberi vse
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    ActiveCell.FormulaR1C1 = "=SUMIF(R5C4:R200C4,OFFSET(RC,0,-22),R5C24:R200C24)"
    ActiveCell.Select
    ActiveCell.Offset(0, -22).Range("W1,A1").Select
    ActiveCell.Offset(0, -22).Range("A1").Activate
    Selection.Copy
    Sheets("Seznam").Visible = True
    Sheets("Seznam").Select
    ActiveCell.Offset(1, 0).Range("A1").Select

'__ Tukaj bi potreboval, da preveri, ali zapis že obstaja __________

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
      ActiveWindow.SelectedSheets.Visible = False
    Sheets("Delo").Select
    Application.ScreenUpdating = True
End Sub
BJ
 
Prispevkov: 154
Pridružen: Sr okt 26, 2005 5:46 pm



Matjazev.NET
 

Re: Preverjanje podatkov pred lepljenem

OdgovorNapisal/-a admin » Če jan 24, 2019 3:19 pm

Pozdravljeni,

Iz vaše kode je razvidno:
  1. da odprete list 'Seznam'
  2. se postavite v naslednjo vrstico (glede na trenutno!)
  3. tja skopirate podatke

Glede na opis ste to slabo zasnovali, saj je vaša koda odvisna od tega, v kateri celice na listu 'Seznam' se trenutno nahajate. Če se recimo nahajate v celici A10, boste podatke kopirali v A11, neglede na dejstvo, da so mogoče tam že neki podatki...

Tega ste se napačno lotili. Predvsem pa ne potrebujete kopiranja in lepljenja podatkov. Lepljenja v VBA sploh ne potrebujete! Če želite nekaj zapisati v celico A15 na listu 'Seznam' iz celice W1 na listu 'Delo' lahko to preprosto naredite:
Koda: Izberi vse
  Sheets("Seznam").Range("A15") = Sheets("Delo").Range("W1")


Glede na vse zapisano. morate spremeniti algoritem v sledečega:
  1. V dve spremenljivki si shranite vrednost dveh celic iz lista 'Delo'
  2. Na listu 'Seznam' se v while zanki sprehodite skozi vse zapise
  3. Če ste vmes naleteli na zapis, ki ima v koloni A isto vrednost kot vaša prva sprememenljivka in v koloni B isto kot druga, potem ste naleteli na podvojen zapis in javite napako ter končajte
  4. Če ste naleteli na prazno vrstico, pomeni da ste na koncu seznama in tja vpišite novi vrednosti, ter končajte.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3524
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Preverjanje podatkov pred lepljenem

OdgovorNapisal/-a BJ » Sr feb 13, 2019 9:36 am

Pozdravljeni!
Se opravičujem, vendar mi tale vaš odgovor ne pomaga prav dosti, ker to presega moje znanje. Vseeno hvala!
BJ
 
Prispevkov: 154
Pridružen: Sr okt 26, 2005 5:46 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 2 gostov

cron