Vba remplacement des points par rien SVP

Résolu/Fermé
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 - 28 avril 2009 à 10:18
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 - 29 avril 2009 à 13:20
Bonjour,
bien que l'entraide soit actuellement très rare (pour ne pas dire absente sur ce forum), je persiste à poser mes questions car je garde espoir en la fiabilité du forum qui m'avait jadis bien servi.
Je programme en vba et souhaite remplacer les points par rien :
For Each I In plage_retrait_points
If (I.Value Like "*.*") Then
I.Select
Selection.Replace What:=".", Replacement:="", LookAt:=xlPart
End If
Next

exemple : 1.350,50 devient 135050 alors que je souhaite obtenir : 1350,50
j'ai vu qu'une autre personne avait posé la même question il y a quelques temps mais elle n'avait obtenu que des réponses de configuration manuelle das le menu d'excel alors que je voudrais le faire en vba pour automatiser mon programme.
MERCI BEAUCOUP A CELUI QUI REUSSIRA A M'AIDER
A voir également:

5 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
28 avril 2009 à 13:10
Bonjour,

Avec une entame comme ça, c'est sûr que tu vas trouver de l'aide ...

Petit rappel : IL N'Y A QUE DES BENEVOLES SUR LE FORUM QUI NE SONT PAS A LA BOTTE DES HELPES.

Pour ta culture personnelle, une recherche sur un moteur de recherche donne ça :

Remplacement d'un caractère par un autre dans une chaîne de caractères en VBA

str = Replace(str, ".","")

Ce qui donne dans ton code :

For Each I In plage_retrait_points 
   If (I.Value Like "*.*") Then 
      I.Value = Replace(I.Value, ".","")
   End If 
Next 


Voilà.
0
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 6
28 avril 2009 à 13:49
merci pour ton aide,
je suis désolée pour le message précédent, je ne voulais pas être méchante mais c'est juste que d'habitude, j'obtiens une aide efficace et dernièrement, ça fait plusieurs fois que je poste des messages qui n'obtiennent aucune réponse, j'étais donc un peu déçue étant donné que je recheche une solution depuis ce matin.

merci encore d'autant plus que tu m'aides souvent sur des problèmes en VBA
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
28 avril 2009 à 16:41
^^

Désolé également d'avoir répondu séchement ... un peu à cran sans doute ... :op

Pour me faire pardonner, une petite fonction utile : InStr([start], chaine1, chaine2) retourne une valeur numérique de type Long indiquant la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaine (chaine2 dans chaine1). [start] est facultatif et définit la position de départ de chaque recherche. La fonction retourne 0 si la chaine n'est pas trouvé. Il peut y avoir d'autres arguments facultatifs selon de type de comparaison que l'on veut effectuer.

Pour ta boucle, tu peux donc faire :

If InStr(1, I.Value, ".") > 0 Then
....
End If

Bonne continuation.

;o)
0
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 6
29 avril 2009 à 11:35
Salut pollux !
Sans rancune :-)

J'ai utilisé ce que tu m'avais mis dans le premier message : I.Value = Replace(I.Value, ".", "")
Comme ca marche très bien, je n'ai pas retouché le programme.

Par contre maintenant j'ai un autre souci : je souhaiterais sauvegarder ma macro de deux façons différentes :
- le sauvegarder une première fois avec toutes les feuilles qu'il contient.
- une seconde fois dans le même dossier en ne laissant qu'une feuille et en supprimant toutes les autres.

Aurais tu une idée parce que je sais sauvegarder mais pas en deux fichiers différents.
Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
29 avril 2009 à 12:11
Bonjour,

Voilà une procédure qu'il faut, bien sûr adapter à ton classeur.
Sub SauvegardeClasseurs()
Dim ws

    'Désactive les alertes Excel
    Application.DisplayAlerts = False
    '
    'Sauvegarde le fichier actuel dans son état initial
    'Ici dans son répertoire d'origine mais avec un nom différent. Sinon faire "ThisWorkbook.Save"
    'Pour un autre répertoire remplacer (ThisWorkbook.Path & "\monclasseuroriginetest.xls") par
    '("C:\lenomdurépertoire\lenomduclasseur.xls")
    ThisWorkbook.SaveAs (ThisWorkbook.Path & "\monclasseuroriginetest.xls")
    '
    'Pour toutes les feuilles contenues dans le classeur
    For Each ws In Worksheets
        'Si le nom de la feuille est différent de celle que l'on veut conserver (ici la feuille 1)
        If ws.Name <> "Feuil1" Then
            'On supprime la feuille
            ws.Delete
        End If
    Next ws
    
    'On sauvegarde le classeur avec une seule feuille
    'Pour le répertoire, faire comme pour la sauvegarde du fichier d'origine
    ThisWorkbook.SaveAs (ThisWorkbook.Path & "\lenomdufichier.xls")
    
    'Active les alertes Excel
    Application.DisplayAlerts = True
  
End Sub


N'hésite pas à poser des questions si tu ne piges pas tout ... ^^

Bon courage.

Polux
;o)
0
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 6
29 avril 2009 à 13:06
merci ça à bien marché par contre, il y a une chose que je trouve bizarre : quand j'ai fait tourné ma macro pour la première fois, j'ai sauvegardé en mettant un mot de passe ensuite j'ai souhaité faire tourner ma macro en enlevant le mot de passe dans le save as.
Mais maintenant, à chaque fois que j'ouvre mon document je dois mettre un mot de passe.
aurais-tu une idée ?
0
usdy Messages postés 243 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 20 mai 2018 6
29 avril 2009 à 13:20
c'est bon, j'ai réglé mon problème de mot de passe !!!!

merci de m'avoir aidé

Bonne après-midi !
0