Macro cauta valori cu virgula

Re: Macro cauta valori cu virgula

Mesajde 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.
IPP
Moderator
Moderator
 
Mesaje: 3722
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Macro cauta valori cu virgula

Mesajde 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.
biancadenisa
 
Mesaje: 8
Membru din: Sâm Feb 10, 2018 8:33 am

Re: Macro cauta valori cu virgula

Mesajde 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: 3722
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Macro cauta valori cu virgula

Mesajde 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
IPP
Moderator
Moderator
 
Mesaje: 3722
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Macro cauta valori cu virgula

Mesajde 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.
biancadenisa
 
Mesaje: 8
Membru din: Sâm Feb 10, 2018 8:33 am

Anterior

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

Cine este conectat

Utilizatorii ce navighează pe acest forum: Bing [Bot] şi 2 vizitatori