Transformation "," par "." VBA

Bonjour à tous.

Je ne me suis plus servi de mon fichier pendant un bon moment, et ce bout de code ne fonctionne plus ! Certainement dû à un problème de compatibilité......... Encoooore ;-)

Je l'utilisais dans un fichier Excel pour insérer une adresse mail pour corriger les virgules mises automatiquement par défaut par ce dernier !

Une idée s'il vous plait ?

Merciiiii beaucoup par avance

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Range("B10:B13"), Target) Is Nothing Then
       Application.EnableEvents = False
         If Target <> "" Then
           Target.Replace ",", "."
             Valeur = Target.Value
            If MsgBox("Etes vous sur de vouloir valider " & Valeur & " " & vbNewLine & Chr(13) & "comme adresse mail ?", vbQuestion + vbYesNo, "                            ATTENTION") = vbYes Then Application.EnableEvents = True: Exit Sub
           If vbNo Then
          Target.Value = Empty
        End If
      End If
    Application.EnableEvents = True
  End If

End Sub

bonjour,

Et ce bout de code ne fonctionne plus !

reçois un message d'erreur ?

si oui, lequel ?

sinon, la gestion des événements n'est pas activée (ferme et rouvre excel ou exécute l'instruction Application.EnableEvents = True), ou la plage sur laquelle s'applique cette macro n'est pas la bonne (B10:B13), ou ... tu peux toujours mettre ton classeur, ça aide ceux qui aident, ça leur évite de devoir deviner.

Bonjour a vous deux,

 erreur de manip

Merci beaucoup pour votre aide c'est sympa

En effet l'erreur n'était pas clair.

Donc pour faire court, le code ne beug pas, mais il ne transforme pas les virgules en point !

Je vais essayer de mettre une fichier en ligne, d'ac ?!

Bon, j'ai un souci !

J'ai isolé l'onglet pour le mettre en ligne et le code transforme bien les "," en "."

Mais mon fichier d'origine ne le fait pas ?

Mais que passe t'il ?

Voici mon fichier source où ça ne fonctionne pas ;-)

6mon-pointage.xlsm (27.50 Ko)

Ton premier fichier est magané essai ça chez moi ça fonctionne

bonjour,

il y a bien quelque chose de bizarre avec ton fichier, la méthode replace refuse de fonctionner après une première fois. Je n'ai pas d'explication.

voici une adaptation du code qui fonctionne sur ton classeur.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Range("B10:B13"), Target) Is Nothing Then
        Application.EnableEvents = False
        If Target <> "" Then
            valeur = Replace(Target.Value, ",", ".")
            If MsgBox("Etes vous sur de vouloir valider " & valeur & " " & vbNewLine & Chr(13) & "comme adresse mail ?", vbQuestion + vbYesNo, "                            ATTENTION") = vbYes Then
                Target.Value = valeur
            Else
                Target.Value = Empty
            End If
        End If
        Application.EnableEvents = True
    End If

End Sub

Bonjour, d'aprés le code sur le fichier source, je clic à la fin de ce qui est écrit en B13 et que je valide

-la macro se lance

-le message demandant confirmation s'affiche

-le remplacement de la virgule par le point est effectue. chez moi çà fonctionne en tout cas

Merci pour cette adaptation h2so4, ton code fonctionne lui à chaque fois !

Ahhhhh les mystères d'Excel..... grrrrrrrrr

Xmenpl, Chez moi il a fonctionné jusqu'à aujourd'hui, c'est à dire, plus de 4 ans !
Va comprendre ?!
Rechercher des sujets similaires à "transformation vba"