excel-problem

Pomoč pri delu z MS Excelom
Odgovori
andro
Prispevkov: 36
Pridružen: To Dec 12, 2006 1:40 pm
Kraj: krško

excel-problem

Odgovor Napisal/-a andro »

Če mi lahko kdo pomaga?

V excelu imam v celicah polno številk katere vsak dan vnašam nove številke. Sedaj pa bi rad, da če vnesem enako številko, ki je že bila uporabljena v bilokatero celico, da mi javi napako. Oziroma številka se mi ne sme ponoviti!

Že v naprej se zahvaljujem za kakršnokoli idejo ali pomoč!
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Pozdravljen andro

Poskusite s to kodo:

Koda: Izberi vse

Private Sub Worksheet_Change(ByVal Target As Range)
'
On Error Resume Next
    For Each c In Range("A1:E20")
     If c.Value = "" Then GoTo Naprej
     If Selection.Address = c.Address Then GoTo Naprej
     If c.Value = Selection.Value Then
      MsgBox "Opa, to pa ne!"
      Selection.ClearContents
     End If
Naprej:
    Next
    
End Sub
Kodo morate vnesti v pripadajoč modul listu na katerem boste izvajali vpise.
Obseg pregleda si določite sami - v kodi je to Range("A1:E20").
Se vam pa znajo pojavljati druge težave, saj bo koda delala ob vsaki spremembi v celicah :cry: .

Lp
andro
Prispevkov: 36
Pridružen: To Dec 12, 2006 1:40 pm
Kraj: krško

Odgovor Napisal/-a andro »

Hvala!

Sam je še en problem, ker ta koda deluje le če napišeš številko nap. 5 v okno A1 in pol se postaviš na polje B1 in napišeš številko 5 in javi napako le če se vrneš nazaj na celico A1. Če se ne vrneš na A1 in greš naprej na C1 ne javi nobene napake!

Nevem al sam men tako dela?
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

...ne vem meni dela :( .
Še obrazložim kodo:

Koda: Izberi vse

Private Sub Worksheet_Change(ByVal Target As Range)
'
On Error Resume Next
'Preskoči napako
    For Each c In Range("A1:E20")
'Zanka, kjer pogleda v vsako celico v rangu...
     If c.Value = "" Then GoTo Naprej
'V kolikor je celica prazna pojdi do naprej
     If Selection.Address = c.Address Then GoTo Naprej
'V kolikor preverja isto celico pojdi do naprej
     If c.Value = Selection.Value Then
'V kolikor je vrednost celice enaka vrednosti vpisovane celice
      MsgBox "Opa, to pa ne!"
'Sporočilo ob ponavljajoči vrednosti
      Selection.ClearContents
'Počisti vsebino vpisovane celice ob ponavljajoči vrednosti
     End If
'Zaključi zanko If
Naprej:
'Preskok
    Next
'Zaključi zanko For
End Sub
Pa ste vnesli kodo v modul pripadajočem listu?

Lp
andro
Prispevkov: 36
Pridružen: To Dec 12, 2006 1:40 pm
Kraj: krško

Odgovor Napisal/-a andro »

Jaz razumem kodo sam nisem sigurn če na pravilno mesto vnesem to kodo!

Prosim če mi lahko razložiš pot in kam morem kopirat to kodo!

Hvala za potrpežljivost!
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Pozdrav

- Iti morate v programski del (Alt + F11)
Ponavadi imate v levem delu ekrana okno "Project - VBAProject"
- V tem oknu se bo pojavil tudi vaš projekt VBAProject(...xls)
- Tu kliknete ustrezen list in na desni strani boste dobil modul, ki pripada temu listu.

Torej ta koda ("Private Sub Worksheet_Change(ByVal Target As Range")
), se bo zagnala ob vsaki spremembi na pripadajočem listu.

Lp
andro
Prispevkov: 36
Pridružen: To Dec 12, 2006 1:40 pm
Kraj: krško

Odgovor Napisal/-a andro »

Potem sem pravilno vnesel kodo! Sej tudi tako bom rešil to zadevo!

Zdej me pa še zanima kako napišeš rang če hočeš da pregleda števila samo v območju stolpcov A, C, E?


Hvala!

lp
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Koda: Izberi vse

Range("A:A,C:C,E:E")
Samo, če boste pregledovali prav vsako celico, bo trajalo precej doooooolgo.

Lp
cedra
Prispevkov: 264
Pridružen: Po Jul 25, 2005 11:11 pm
Kraj: Kamnik

Odgovor Napisal/-a cedra »

Tole sem našel na starem Matjaževem Forumu:

http://www.matjazev.net/pnew/index.php? ... ip101.html

Ta nasvet bo verjetno pomagal!

lp,

cedra
andro
Prispevkov: 36
Pridružen: To Dec 12, 2006 1:40 pm
Kraj: krško

Odgovor Napisal/-a andro »

Stenly


Imam problem ko jaz te številke vnesem in koda deluje dokler jaz to datoteko zaprem!

Ko jo ponovno odprem koda ne deluje več?

Pa še zanima me če je opcija da ko najde napako, da mi še napiše v kateri celici je enaka številka?

lp
Odgovori