Excel mi inverte il punto con la virgola

Anonimo
2018-01-30T17:35:18+00:00

Buonasera ho dovuto cambiare notebook ed il nuovo excel sembra non riconoscere i valori della seguente macro, ovvero mi inverte la virgola con il punto. Devo forse cambiare qualche impostazione. Nel senso che quando avvio la macro al posto di scrivermi 10,(virgola)00 mi scrive 10.(punto)00 e quindi non mi restituisce i valori

Era un vecchio tread, questo, ma ancora lo utilizzo alla grande!

Grazie a tutti

Public Sub filtraNumeri()

Dim n As Double

Dim s As String

On Error Resume Next

n = Application.InputBox("Inserire numero", , , , , , , 1)

On Error GoTo 0

With ActiveSheet.Range("$A$1:$A$20")

.AutoFilter

If n Then

s = Format(n, .Cells(2, 1).NumberFormat)

s = Replace(Replace(Replace(s, ".", "*"), ",", "."), "*", ",")

.AutoFilter Field:=1, Criteria1:=s

End If

End With

End Sub

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

13 risposte

Ordina per: Più utili
  1. Anonimo
    2018-02-01T12:24:46+00:00

    Buongiorno a tutti, qualcuno ha delle soluzioni da propormi.

    Grazie

    A

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-01-31T14:55:15+00:00

    Buongiorno

    • spunta utilizza separatore di sistema messa
    • impostazioni internazionali OK c'é la virgola nel separatore decimale

    Ho verificato un altro excel su altro pc, le impostazioni del pannello controllo e di excel sono le stesse ma non riesco a farlo funzionare, altre soluzioni?

    Allego ![](https://learn-attachment.microsoft.com/api/attachments/f24522a6-b11e-472b-9519-a1d6d4120e64?platform=QnA del particolare del filtro con indicazione dell'importo cercato "164,70", dove io ho messo la virgola ma lui segna punto! Questa macro é la tua Norman

    Grazie

    A

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-01-30T19:41:42+00:00

    Ciao Andrea, 

    Grazie della dritta ma non funziona

    Posso solo dirti che a me funziona in modo impeccabile sia con impostazioni italiane che inglesi.

    e poi vorrei tenere la stessa macro visto che é replicata tantissime volte, non posso cambiarle tutte.

    C'é qualche modifica che posso apportare nelle impostazioni?

    Se il tuo codice, il quale continua a non piacemi, funzionava su un notebook, ma non su quello nuovo, vorrei suggerire di controllare l'impostazione per il separatore decimale definita nelle opzioni internazionali del Pannello di controllo.

    Verifica anche la seguente impostazione:

    • File
    • Opzioni
    • Impostazioni avanzate
    • Opzioni di modifica
    • Spunta Utilizza separatori di sistema

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-01-30T19:18:45+00:00

    Grazie della dritta ma non funziona e poi vorrei tenere la stessa macro visto che é replicata tantissime volte, non posso cambiarle tutte.

    C'é qualche modifica che posso apportare nelle impostazioni?

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2018-01-30T18:45:59+00:00

    Ciao Andrea,

    Buonasera ho dovuto cambiare notebook ed il nuovo excel sembra non riconoscere i valori della seguente macro, ovvero mi inverte la virgola con il punto. Devo forse cambiare qualche impostazione. Nel senso che quando avvio la macro al posto di scrivermi 10,(virgola)00 mi scrive 10.(punto)00 e quindi non mi restituisce i valori

    Era un vecchio tread, questo, ma ancora lo utilizzo alla grande!

    Grazie a tutti

    Public Sub filtraNumeri()

    Dim n As Double

    Dim s As String

      On Error Resume Next

       n = Application.InputBox("Inserire numero", , , , , , , 1)

      On Error GoTo 0

      With ActiveSheet.Range("$A$1:$A$20")

        .AutoFilter

        If n Then

          s = Format(n, .Cells(2, 1).NumberFormat)

          s = Replace(Replace(Replace(s, ".", "*"), ",", "."), "*", ",")

          .AutoFilter Field:=1, Criteria1:=s

        End If

      End With

    End Sub

    Deve esserci qualcosa che mi è sfuggito perché, se fossi per me, sostituirò il tuo codice con la seguente semplice versione che dovrebbe funzionare indipendentemente dall'uso della virgola (Italia) o del punto (Inghilterra) come separatore decimale:

    '=========>>

    Option Explicit

    '--------->>

    Public Sub filtraNumeri()

        Dim dVal As Double

        dVal = Application.InputBox(Prompt:="Inserire numero", Type:=1)

        With ActiveSheet.Range("$A$1:$A$20")

            If dVal <> 0 Then

                .AutoFilter Field:=1, Criteria1:=dVal

            End If

        End With

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento