Bug remplacer virgule par point

Bonjour,

J'ai l'erreur : incompatibilité de type :

With Sheets("Chantier")
        'lg = .Cells(Rows.Count, "L").End(xlUp).Row
        For i = 37 To 47
            y = .Range("L" & i).value
            x = .Range("M" & i).value

            Resultat = Lambert93ToWgs84(x, y)

            .Range("D" & i).value = Resultat.lat
            .Range("D" & i) = Replace(Range("D" & i), ",", ".") * 1    '=> c'est la ligne rajouté
            .Range("E" & i).value = Resultat.lng
            .Range("E" & i) = Replace(Range("E" & i), ",", ".") * 1      '=> c'est la ligne rajouté

        Next i
    End With

Bonjour,

Si votre séparateur par défaut est la virgule, vous ne pouvez pas la remplacer par un point tout en gardant la valeur numérique.

En clair, à partir du moment ou "," devient ".", Excel bute sur la multiplication par 1, qui revient pour lui à faire quelque chose du genre "Patate"*1...

En retirant le *1, l'erreur devrait disparaître, mais le contenu de la cellule n'est désormais plus un nombre valide et utilisable pour des calculs.

Bonjour,

Il faut que tu déclares :

Public Type Coord
  lat As Long
  lng As Long
End Type

puis avant ton With Sheets...

Dim i As Integer
Dim x As String
Dim y As String
Dim Resultat As Coord

Bien sûr ta fonction :

Function Lambert93ToWgs84(x, y) As Coord

End Function

Si ce n'est pas clair et bien

je suis pas expert, voici le code complet avec les déclarations existantes, en supprimant *1 j'ai pas d'erreur certes mais j'ai toujours mes virgules.

Sub Vers_Wgs84()
Dim lg As Integer, i As Integer, x As Double, y As Double, Resultat As Wgs84

    With Sheets("Chantier")
        'lg = .Cells(Rows.Count, "L").End(xlUp).Row
        For i = 37 To 47
            y = .Range("L" & i).value
            x = .Range("M" & i).value

            Resultat = Lambert93ToWgs84(x, y)

            .Range("D" & i).value = Resultat.lat
            .Range("D" & i) = Replace(Range("D" & i), ",", ".")
            .Range("E" & i).value = Resultat.lng
            .Range("E" & i) = Replace(Range("E" & i), ",", ".")

        Next i
    End With
End Sub

j'ai mis mon format de cellule en texte et ça marche.

merci

Rechercher des sujets similaires à "bug remplacer virgule point"