Macro cauta valori cu virgula

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Macro cauta valori cu virgula

Mesaj de IPP » Lun Feb 12, 2018 11:36 am

Buna ziua

Atasat aveti spre testare o propunere.
Premise: independent de numarul de randuri si coloane cu valori de test, pe coloana A aveti informatia in care scrie "pret"/"buc"

Am folosit urmatorul cod:

Cod: Selectaţi tot

Sub VerifValori()

'IPP - 12.02.2018

For Each c In Selection
 If UCase(Cells(c.Row, 1).Value) <> "PRET" Then
  If c.Value <> Int(c.Value) Then
   MsgBox "Verificati celula " & c.Address & ", aveti valoare cu virgula", vbCritical, "Valoare cu virgula"
  End If
 End If
Next c

End Sub
Pentru testare: deschideti fisierul atasat, activati macro/continutul, selectati DOAR zona cu valorile ce trebuiesc verificate si rulati macro

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

biancadenisa
Mesaje: 8
Membru din: Sâm Feb 10, 2018 8:33 am

Re: Macro cauta valori cu virgula

Mesaj de biancadenisa » Mar Feb 13, 2018 7:09 am

Bună ziua, macrocomanda trebuie să identifice valorile din coloanele B, C și D unde au fost introduse greșit valori cu virgula De exemplu în loc de cifra 2 este introdus 2 virgula 2.Tabelul folosit de mine conține multe date pe care le centralizez, nu le introduc eu.Multumesc.

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Macro cauta valori cu virgula

Mesaj de IPP » Mar Feb 13, 2018 8:02 am

Buna ziua

Cf. fisierului dvs. exemplu, chiar daca valorile de verificat sunt pe coloanele B, C si D, verificarea trebuie sa fie totusi selectiva, adica sa nu se faca pentru valorile care au in dreptul lor pe coloana A cuvantului "pret".

Poate va va oferi cineva solutia dorita insa cateva lucruri ar trebui precizate din partea dvs. pentru ca se pare ca perceptia este diferita:
-listele de verificat au structura identica? Adica intotdeauna vor incepe de la A6 si se vor termina la Dn?
-verificarea va ramane selectiva, daca da in functie de prezenta sau nu pe coloana A a cuvantului buc/pret?
-valorile acelea cu virgula pe care le cautati au in spate de fapt logica ca nu doriti sa existe numere cu zecimale sau ca, prin folosirea virgulei si importand din sursa externa acele valori sunt vazute de fapt ca text si le vreti convertite in informatie de tip numeric?
-in listele de verificat e posibil sa existe si altceva (informatii text, eventual alphanumerice?, fapt pentru care probabil macro propus de mine poate da eroare?

Ar trebui sa va ganditi ca macro are inteles in primul rand de automatizare. Ceea ce inseamna ca e nevoie sa se stie clar de la ce se porneste pentru a putea trata situatiile intalnite in mod corect.

IP

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Macro cauta valori cu virgula

Mesaj de IPP » Mar Feb 13, 2018 8:21 am

Pentru cautarea (selectiva si aceea) a informatiei care contine virgula, puteti folosi codul

Cod: Selectaţi tot

Sub VerifValori()

'IPP - 13.02.2018

For Each c In Selection
 If UCase(Cells(c.Row, 1).Value) <> "PRET" Then
  If InStr(1, c, ",") > 0 Then
   MsgBox "Verificati celula " & c.Address & ", aveti valoare cu virgula", vbCritical, "Valoare cu virgula"
  End If
 End If
Next c

End Sub

biancadenisa
Mesaje: 8
Membru din: Sâm Feb 10, 2018 8:33 am

Re: Macro cauta valori cu virgula

Mesaj de biancadenisa » Mar Feb 13, 2018 6:32 pm

Bună seara,
am modificat codul și am rezolvat cu instrucțiunea propusa de dvs.

If InStr(1, c, ",") > 0 Then

Va mulțumesc mult pentru ajutor.

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”