Preprečiti ponavljanje podatkov pri kopiranju

Pomoč pri delu z MS Excelom
Odgovori
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a tjazma »

Pozdravljeni,

Uporabljam makro pri katerem se kopirajo podatki iz ene vrstice lista 1 na drugi list v tabelo in sicer po pravilu vnesi podatek v naslednjo prazno vrstico v tabeli. Rad bi dosegel , da pri kopiranju podatkov (vrstice) macro preveri ali enak podatek obstaja in če obstaja le tega ne prenese.


ActiveSheet.Unprotect

If ActiveSheet.Range("a3").Value = "" Then
ActiveSheet.Range("a3:e3").Value = Sheets("VNOS PODATKOV").Range("H4:L4").Value
Else
ActiveSheet.Range("a200").End(xlUp).Range(Cells(2, 1), Cells(2, 5)).Value = Sheets("VNOS PODATKOV").Range("H4:L4").Value
End If

Hvala za nasvet in lep pozdrav





End Sub
admin
Site Admin
Prispevkov: 3704
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a admin »

Pozdravljeni,

V priloženem makru vi kopirate pet celic in najprej morate določiti kateri je tisti podatek, ki se ne sme ponoviti. Ali samo podatek v koloni A ali B ali vsi skupaj. Potem pa morate samo preden izvedete kopiranje zapisati preprosto WHILE zanko, ki se sprehodi po vseh vrsticah od vrstice 1 do zadnje polne vrstice (ActiveSheet.Range("a200").End(xlUp).Row) in če v kateri vrstici najde enak podatek potem kopiranja ne izvede sicer ga izvede.
lp,
Matjaž Prtenjak
Administrator
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Re: Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a tjazma »

Pozdravljeni,

Najbolj bi mi koristilo, da se kontrola naredi čez vse celice v vrstici.
Zahvaljujem se vam za hiter odgovor. Dajem vam lažni občutek, da sem zelo domač v pisanju makrojev. Ni tako. Že zgornji macro sem z muko sestavil iz več prispevkov v tem forumu. kako pa naj bi izgledala vrstica z while zanko je (zame) neznanka .
Hvala za vaš trud in lep pozdrav.
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Re: Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a tjazma »

Pozdravljeni,

Najbolj bi mi koristilo, da se kontrola naredi čez vse celice v vrstici.
Dajem vam lažni občutek, da sem zelo domač v pisanju makrojev. Ni tako. Že zgornji macro sem z muko sestavil iz več prispevkov v tem forumu. kako pa naj bi izgledala vrstica z while zanko je (zame) neznanka .

Hvala za vaš trud in lep pozdrav.
admin
Site Admin
Prispevkov: 3704
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a admin »

Glede na želje je potem tole makro, ki ga iščete:

Koda: Izberi vse

  Dim vend As Long: vend = ActiveSheet.Range("a200").End(xlUp).Row + 1
  Dim nasel As Boolean: nasel = False
  Dim v As Long
  
  v = 3
  While (v < vend) And (Not nasel)
    If (ActiveSheet.Cells(v, 1) = Sheets("VNOS PODATKOV").Range("H4")) And _
       (ActiveSheet.Cells(v, 2) = Sheets("VNOS PODATKOV").Range("I4")) And _
       (ActiveSheet.Cells(v, 3) = Sheets("VNOS PODATKOV").Range("J4")) And _
       (ActiveSheet.Cells(v, 4) = Sheets("VNOS PODATKOV").Range("K4")) And _
       (ActiveSheet.Cells(v, 5) = Sheets("VNOS PODATKOV").Range("L4")) Then
      nasel = True
    End If
    
    v = v + 1
  Wend
  
  If (Not nasel) Then
    If ActiveSheet.Range("a3").Value = "" Then
    ActiveSheet.Range("a3:e3").Value = Sheets("VNOS PODATKOV").Range("H4:L4").Value
    Else
    ActiveSheet.Range("a200").End(xlUp).Range(Cells(2, 1), Cells(2, 5)).Value = Sheets("VNOS PODATKOV").Range("H4:L4").Value
    End If
  End If
lp,
Matjaž Prtenjak
Administrator
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Re: Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a tjazma »

Najlepša hvala za pomoč. Resnično zelo uporaben forum , ki vedno pomaga malo manj veščim v programiranju.
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Re: Preprečiti ponavljanje podatkov pri kopiranju

Odgovor Napisal/-a tjazma »

Najlepša hvala za pomoč. Resnično zelo uporaben forum , ki vedno pomaga malo manj veščim v programiranju.
Odgovori