Preverjanje podatkov pred lepljenem

Pomoč pri izdelavi makrov
Odgovori
BJ
Prispevkov: 170
Pridružen: Sr Okt 26, 2005 5:46 pm

Preverjanje podatkov pred lepljenem

Odgovor Napisal/-a BJ »

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

Re: Preverjanje podatkov pred lepljenem

Odgovor Napisal/-a admin »

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
BJ
Prispevkov: 170
Pridružen: Sr Okt 26, 2005 5:46 pm

Re: Preverjanje podatkov pred lepljenem

Odgovor Napisal/-a BJ »

Pozdravljeni!
Se opravičujem, vendar mi tale vaš odgovor ne pomaga prav dosti, ker to presega moje znanje. Vseeno hvala!
Odgovori