Pagina 1 din 2

Scrie cifre cu virgula in celule.

Scris: Sâm Aug 12, 2017 4:54 pm
de Moga Marcel
Buna ziua,
Stie cineva un macro care sa nu ma lase sa scriu in
celula doar cifre si daca am zecimale separatorul sa fie virgula.
Va multumesc.

Re: Scrie cifre cu virgula in celule.

Scris: Sâm Aug 12, 2017 7:13 pm
de TudyBTH
Buna,

In ceea ce priveste introducerea unei valori numerice puteti folosi o secventa de genul:

Cod: Selectaţi tot

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rCell As Range
    
    Set rCell = Range("InputCell")
    If Intersect(Target, rCell) Is Nothing Then GoTo out
    
    If Not IsNumeric(rCell.Value) Then
        MsgBox "Introduceti o valoare numerica"
        rCell.ClearContents: rCell.Select
    End If
out:
    Set rCell = Nothing
End Sub
In lipsa altor amanunte despre situatia concreta pe care trebuie sa o rezolvati, nu-mi ramane decat sa va amintesc ca acest lucru se poate rezolva si fara VBA, prin Data Validation.

In ceea ce priveste introducerea numerelor zecimale cu separatorul virgula, aici lucrurile sunt mai complicate. In primul rand, depinde de setarile facute pe dispozitivul in care deschideti fisierul. Daca separatorul zecimat setat este punctul, nu veti putea introduce (in celula) valori zecimale cu separator virgula. Introducerea valorii 3,14 de exemplu va fi interpretata ca text.
Depinde deci de felul in care veti folosi mai departe valorile introduse.

Re: Scrie cifre cu virgula in celule.

Scris: Sâm Aug 12, 2017 9:25 pm
de Moga Marcel
Buna,
Am un registru de casa si in rubrica de incasari am introdus din greseala
200.20 in loc de 200,20. Calculele nu s-au facut corect si inregistrarea s-a facut in baza de date.
Mi-a luat mult timp sa imi dau seama ce sa intamplat.
As dori ca pe viitor sa elimin asemenea greseli.
Mentionez ca excelul este setat pt. lb. Romana si are separatorul de zecimale virgula.
Orice varianta este buna.

Eu am incercat cu:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
If Not Intersect(Range("D2:E25"), Target) Is Nothing Then
For Each Cell In Intersect(Range("D2:E25"), Target)
If Cell.Value Like "*[!,]*" Then
MsgBox "Separatorul de zecimale este Virgula!"
Cell.Select: Cell.ClearContents
End If
Next
End If
End Sub

Nu functioneaza, la mine.

Re: Scrie cifre cu virgula in celule.

Scris: Sâm Aug 12, 2017 9:41 pm
de TudyBTH
Intr-un astfel de format nu se vor introduce niciodata valori negative.
Deci puteti rezolva problema mult mai simplu cu Data Validation
Capture.JPG

Re: Scrie cifre cu virgula in celule.

Scris: Dum Aug 13, 2017 7:54 am
de Moga Marcel
Buna,
Am nevoie si de valori negative.
In cazul in care se produce o greseala la introducerea datelor,
atunci se corecteaza cu valori negative.
De ex. "inregistrat gresit in data de 01.01.2000", iar la incasari treci "-100,22."

Re: Scrie cifre cu virgula in celule.

Scris: Dum Aug 13, 2017 9:44 am
de TudyBTH
In cazul acesta folositi functia ISNUMBER in Data Validation
Capture.JPG

Re: Scrie cifre cu virgula in celule.

Scris: Dum Aug 13, 2017 1:23 pm
de Moga Marcel
Am observat ca atunci cand introduc anumite numere
se intampla ceva ciudat.
De ex.:
introduc si afiseaza
22.222 22.222,00
2.22 44.593,00
22.2 42.788,00
De ca se intampla asta?
Daca introduc 22.22 este ok, apare mesajul de eroare.

Re: Scrie cifre cu virgula in celule.

Scris: Dum Aug 13, 2017 4:42 pm
de TudyBTH
Asa cum am mai spus, caracterul folosit pentru separator zecimal depinde de setarile regionale folosite pe calculatorul in care se deschide fisierul.
Prezenta (sau absenta) separatorului miilor este definita de formatrea aplicata celulelor respective. La fel si numarul de zecimale afisate. Acestea nu afecteaza valoarea introdusa, ci doar modul in care aceasta valoare este afisata in celula.

Re: Scrie cifre cu virgula in celule.

Scris: Lun Aug 14, 2017 9:29 am
de Moga Marcel
Am inteles ca separatorul este setat in functie de setarile regionale folosite pe calculator.
La mine este lb. Romana.
Am totusi o nelamurire cand introduc intr-o celula de ex. 8.8 imi afiseaza 08.aug,
iar in bara de sus "08.08.2017" si formatarea celulei trece la "particularizat".
Se poate face sa ramana afisat ceea ce tastez?

Va multumesc pentru ajutor.
Cu stima, Marcel.

Re: Scrie cifre cu virgula in celule.

Scris: Lun Aug 14, 2017 9:57 am
de IPP
Buna ziua

Situatii de acest gen se regasesc uneori si la deschiderea in Excel (cu setari regionale romanesti) a unui fisier text ce fusese exportat de pe un Excel cu setari regionale USA.

Daca aveti setari regionale romanesti, unde separatorul zecimal este virgula, folosind punctul excel considera ca nu doriti sa scrieti un numar cu zecimale ci o data calendaristica sau, in alte cazuri o informatie de tip text.

Din punctul meu de vedere singura varianta buna (vizavi si de ceea ce ati mai scris la acest subiect) este ca operatorul, atunci cand are de scris numere cu zecimale sa foloseasca simbolul zecimal de pe tastatura numerica, Excel introducand corect acest separator in functie de setarile regionale existente pe acel calculator.

Daca doriti ca 8.8 sa ramana ca atare (in conditiile expuse mai sus acest lucru inseamna o informatie de tip text, nu un numar cu o zecimala), atunci inainte de a scrie acea informatie scrieti un apostrof: '8.8

IP