Newsgroup: it.comp.aiuto
Titolo: Sommare due campi con virgola in Excel

Scusate se sono OT ma ho un dilemma che facendo una ricerca di post nessuno
ha mai affrontato forse pienamente.
Il mio problema è che in Excel se tramite un tasto e quindi un piccolo
programmino in VB, calcolo la somma di due celle succedono cose strane:
Sommo due valori interi 4 + 4 = 8 e tutto OK
Sommo uno intero e uno decimale 4 + 4,5 = 8,5 e tutto OK
Sommo due valori decimali 4,5 + 4,5 = 4,54,5 e questo non va bene.
Ora ho provato con le impostazioni internazionali del computer per un
problema con la punteggiatura ma nessun risultato.
Ho provato anche nella chiamata alla cella ad aggiungere .value per
'forzare' ma niente.
avete dei consigli???
Se volete posto il codice
Vi ringrazio per l'aiuto
--
T¤¶¿µ¤ vi presenta: 
http://www.amiciamici.com
                Da sempre amici
http://www.amiciamici.com/bedoo
      La directory web
http://www.amiciamici.com/dreams
      Le tue celebrità
Gli amori, le feste, i divertimenti e le celebrità preferite da un gruppo di
ragazze e ragazzi della provincia di Parma. Bedonia.

 Vi ringrazio per l'aiuto
Prego.
Ciao, Antò.

 ha scritto nel
messaggio news:sHiL8.5770$5i1.1...@news2.tin.it...


 mi  dite  cosa  vuol dire  OT
Ok io rispondo a questo:
OT= Out of Topic
Ogni NG ha un suo manifesto dove vengono elencati i temi che si potranno
affrontare e le regole per rispondere o postare un messaggio.
Come è naturale non sarebbe logico postare un problema sulla cottura della
pasta in montagna rispetto al mare in questo NG ma magari esiste un NG
specifico per i problemi di Excel.


 delle celle, cambia il formato, reinserisci i valori e vedrai che funge.
Lo avevo già pensato ma non è vero anzi la situazione peggiora in quanto
impostando le celle da generale a numeriche e dando 2 posizioni decimali
tutti i numeri risulterebbero in buona sostanza decimali con due 0 (il 4
diventa 4,00)
A questo punto 4,5 + 4,00 = 4,54
Grandi dubbi direi
:-(


Ho trovato un errore nella dichiarazione di una variabile ma ora sono al
punto che
4,5 + 4,5 = 8
Questo deve essere una ca%%ata ma sapete quando si parte di testa si parte.
Questa la var
Dim Quantita() As Integer
Dim i2 As Integer
Poi la incremento
ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) =
ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) + Quantita(i2)

AmiciAmici,
[CUT]
ho fatto delle prove con il seguente codice
Private Sub CommandButton1_Click()
  Foglio1.Cells(3, 1) = Foglio1.Cells(1, 1) + Foglio1.Cells(2, 1):
End Sub
eseguito al click di un pulsante.
1° prova:
formato celle "Generale"
A1 = 4,5
A2 = 4,5
A3 = 9 (valorizzata dal codice)
2° prova:
cancello il contenuto delle celle
imposto il formato celle a "Numero" ("Impostazioni internazionali" a 2 
decimali)
A1 = 4,50
A2 = 4,50
A3 = 9,00 (valorizzata dal codice)
3° prova:
cancello il contenuto delle celle
imposto il formato celle a "Testo"
A1 = 4,5
A2 = 4,5
A3 = 4,54,5 (valorizzata dal codice che questa volta non esegue una somma 
di valori ma una concatenazione di stringe)
prova a postare il codice che usi tu. 
Ciao, Antò.

Non dite niente sul sitema per cancellare i vari campi (richiesti così)
   Dim iIndiceRiga As Long
    Dim iIndiceRigaProgressivo As Long
    Dim iIndiceRigaTotale As Long
    Dim iIndiceColonnaTotale As Long
    Dim iIndiceColonna As Long
    Dim i As Long
    Dim i2 As Integer
    Dim passaggio As String
    Dim sData As String
    Dim sMese As String
    Dim sGiorno As String
    Dim Data() As String
    Dim NewProgressivo As Long
    Dim Codice() As String
    Dim Descrizione() As String
    Dim Tipo() As String
    Dim Quantita() As Integer
    Dim iIndiceArray As Integer
    Dim trovato As Boolean
    iIndiceRiga = 8
    iIndiceArray = 0
    iIndiceRigaProgressivo = 6
    iIndiceColonna = 2
    iIndiceRigaTotale = 6
    iIndiceColonnaTotale = 4
    i = 0
    sData = ""
    Sheets("codici").Select
    Do While Not ActiveSheet.Cells(iIndiceRigaProgressivo, 1) = ""
        iIndiceRigaProgressivo = iIndiceRigaProgressivo + 1
    Loop
    NewProgressivo = ActiveSheet.Cells(iIndiceRigaProgressivo - 1, 1)
    Sheets("rapportini").Select
    Do While True
        If ActiveSheet.Cells(iIndiceRiga, iIndiceColonna) = "" Then
            i = i + 1
        Else
            i = 0
        End If
        If i > 100 Then
            'fine documento
            Exit Do
        End If
        If IsDate(ActiveSheet.Cells(iIndiceRiga, iIndiceColonna)) Then
            If sData <> ActiveSheet.Cells(iIndiceRiga, iIndiceColonna) Then
                ReDim Preserve Data(iIndiceArray)
                Data(iIndiceArray) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna)
                ReDim Preserve Codice(iIndiceArray)
                ReDim Preserve Descrizione(iIndiceArray)
                ReDim Preserve Tipo(iIndiceArray)
                ReDim Preserve Quantita(iIndiceArray)
                sGiorno = Day(ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna))
                sMese = Month(ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna))
                sData = ActiveSheet.Cells(iIndiceRiga, iIndiceColonna)
                stutto = "" + sData + "/"
                'Sheets("riep ec mens").Select
                'Cells(iIndiceRigaTotale - 1, iIndiceColonna) =
Day(Cells(iIndiceRiga, iIndiceColonna))
                'Sheets("rapportini").Select
            End If
        ElseIf ActiveSheet.Cells(iIndiceRiga, iIndiceColonna) <> "" Then
            If ActiveSheet.Cells(iIndiceRiga, iIndiceColonna - 1) = "" Then
                NewProgressivo = NewProgressivo + 1
                ActiveSheet.Cells(iIndiceRiga, iIndiceColonna - 1) =
NewProgressivo
                'no codice
                passaggio = ActiveSheet.Cells(iIndiceRiga, iIndiceColonna)
                unimis = ActiveSheet.Cells(iIndiceRiga, iIndiceColonna + 1)
                Sheets("codici").Select
                ActiveSheet.Cells(iIndiceRigaProgressivo, 1) =
NewProgressivo
                ActiveSheet.Cells(iIndiceRigaProgressivo, 2) = passaggio
                ActiveSheet.Cells(iIndiceRigaProgressivo, 3) = unimis
                iIndiceRigaProgressivo = iIndiceRigaProgressivo + 1
                Sheets("rapportini").Select
            End If
'            trovato = False
'            Do While Not i2 = iIndiceArray
'                If Codice(i2) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna - 1) Then
'                    Quantita(i2) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna + 2) + CDbl(Quantita(i2))
'                    trovato = True
'                End If
'                i2 = i2 + 1
'            Loop
'            i2 = 0
            If trovato = False Then
                ReDim Preserve Data(iIndiceArray)
                'Data(iIndiceArray) = sData
                Data(iIndiceArray) = stutto
                ReDim Preserve Codice(iIndiceArray)
                Codice(iIndiceArray) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna - 1)
                ReDim Preserve Descrizione(iIndiceArray)
                Descrizione(iIndiceArray) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna)
                ReDim Preserve Tipo(iIndiceArray)
                Tipo(iIndiceArray) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna + 1)
                If Tipo(iIndiceArray) = "" Then
                    Tipo(iIndiceArray) = "Corpo"
                End If
                ReDim Preserve Quantita(iIndiceArray)
                Quantita(iIndiceArray) = ActiveSheet.Cells(iIndiceRiga,
iIndiceColonna + 2)
                iIndiceArray = iIndiceArray + 1
            End If
        End If
        iIndiceRiga = iIndiceRiga + 1
    Loop
    i2 = 0
    sData = ""
    stutto = ""
    Sheets("riep ec mens").Select
    iIndiceRigaTotale = 5
    iIndiceColonnaTotale = 5
    Do While Not i2 > 60
        ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) = ""
        iIndiceColonnaTotale = iIndiceColonnaTotale + 1
        i2 = i2 + 1
    Loop
    i2 = 6
    i = 1
    Do While Not i2 > 27
        Do While Not i > 60
            ActiveSheet.Cells(i2, i) = ""
            i = i + 1
        Loop
        i = 1
        i2 = i2 + 1
    Loop
    iIndiceRigaTotale = 6
    iIndiceColonnaTotale = 4
    i2 = 0
    Do While Not i2 = iIndiceArray
        If sData <> Data(i2) Then
            iIndiceColonnaTotale = iIndiceColonnaTotale + 1
            ActiveSheet.Cells(5, iIndiceColonnaTotale) = Data(i2)
            sData = Data(i2)
        End If
        i2 = i2 + 1
    Loop
    i2 = 0
    iIndiceRigaTotale = 6
    iIndiceColonnaTotale = 5
    Do While Not i2 = iIndiceArray
        Do While Not ActiveSheet.Cells(5, iIndiceColonnaTotale) = Data(i2)
            If ActiveSheet.Cells(5, iIndiceColonnaTotale) = "" Then
                Exit Do
            End If
            iIndiceColonnaTotale = iIndiceColonnaTotale + 1
        Loop
        trovato = False
        Do While Not ActiveSheet.Cells(iIndiceRigaTotale, 1) = Codice(i2)
            If ActiveSheet.Cells(iIndiceRigaTotale, 1) = "" Then
                Exit Do
            End If
            iIndiceRigaTotale = iIndiceRigaTotale + 1
        Loopn
        ActiveSheet.Cells(iIndiceRigaTotale, 1) = Codice(i2)
        ActiveSheet.Cells(iIndiceRigaTotale, 2) = Descrizione(i2)
        ActiveSheet.Cells(iIndiceRigaTotale, 3) = Tipo(i2)
       If (ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) = 0)
Then
       ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) =
Quantita(i2)
       Else
       ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) =
ActiveSheet.Cells(iIndiceRigaTotale, iIndiceColonnaTotale) + Quantita(i2)
       End If
       ActiveSheet.Cells(iIndiceRigaTotale,
iIndiceColonnaTotale).HorizontalAlignment = xlRight
        iIndiceRigaTotale = 6
        iIndiceColonnaTotale = 5
        i2 = i2 + 1
    Loop
' End Of File
End Sub

AmiciAmici,
[cut]
mi sono perso al secondo loop, così è difficile trovare il baco.
se vuoi inviarmi il file xls zippato, ci dò uno sguardo, ma non ti prometto 
niente, per farlo togli l'accento sulla ò dall'email.
Ciao, Antò.