VBA supprimer caractère dans une cellule aléatoire d'un range
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

VBA supprimer caractère dans une cellule aléatoire d'un range



  1. #1
    fleur2touraine

    VBA supprimer caractère dans une cellule aléatoire d'un range


    ------

    Bonjour,
    Je suis toujours sur ma macro ... j'en cauchemarde...

    J'ai une feuille qui contient des données (valeurs en % au format x.xx, exemple: 0.42)
    Simplement, dans certains cas, lorsque la valeur mesurée est proche de la limite de détection de l'appareil il y a un "~" devant la valeur, soit par exemple; ~0.122
    Du coup, lorsque je veux faire des calculs avec mes valeurs, ce n'est pas possible avec les valeurs devant lesquelles il y a le "~"..

    Est il possible de faire une sorte de "remplacer" sur toute la feuille, en remplaçant "~" par "" (rien).

    Merci!

    -----
    Dernière modification par fleur2touraine ; 08/03/2017 à 14h57.
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  2. #2
    Evil.Saien

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Hello,

    Tu peux le faire à la main avec wordpad, en utilisant la fonction remplacer.

    Pour le faire automatiquement, tu peux utiliser la commande shell (disons que tes infos sont dans MonSuperFichier.txt)
    Code:
    sed 's/~//g' MonSuperFichier.txt > MonSuperNouveauFichier.txt
    Le fichier MonSuperNouveauFichier.txt sera identique sans les ~
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  3. #3
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Salut,
    j'utilise excel 2007
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  4. #4
    Evil.Saien

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Il dit qu'il voit pas le rapport
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  5. A voir en vidéo sur Futura
  6. #5
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Je ne comprends pas pourquoi tu parles de fichiers .txt..... désolé j'ai oublié de dire que j'étais débutant
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  7. #6
    Spazi

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Code:
    Public Sub Tilde()
        For Each c In Range("B1", "B7")
            c.Value = Replace(c.Value, "~", "")
        Next
    End Sub
    Vous changez le range pour ce qui vous correspond

  8. #7
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Spazi je dois définir "c" en variable?
    si oui quel type?
    ni string ni range ne fonctionne
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  9. #8
    Ludwig1

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par fleur2touraine Voir le message
    Bonjour,
    Je suis toujours sur ma macro ... j'en cauchemarde...

    J'ai une feuille qui contient des données (valeurs en % au format x.xx, exemple: 0.42)
    Simplement, dans certains cas, lorsque la valeur mesurée est proche de la limite de détection de l'appareil il y a un "~" devant la valeur, soit par exemple; ~0.122
    Du coup, lorsque je veux faire des calculs avec mes valeurs, ce n'est pas possible avec les valeurs devant lesquelles il y a le "~"..

    Est il possible de faire une sorte de "remplacer" sur toute la feuille, en remplaçant "~" par "" (rien).

    Merci!
    Salut,

    Je ne sais pas avec quoi tu programmes,
    Il faut mettre ta valeur dans une chaine de caractère, regarder si le premier caractère est un " ~ " Valeur 126 décimal ou 7E hexadécimal si oui diminuer la chaine de 1
    Avec C ça ne devrait pas poser de PB, VBA non plus d'ailleurs

    Cordialement


    Cordialement

    Ludwig

  10. #9
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    salut, je suis sous EXCEL VBA
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  11. #10
    cherbe

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par fleur2touraine Voir le message
    il y a un "~" devant la valeur, soit par exemple; ~0.122
    Du coup, lorsque je veux faire des calculs avec mes valeurs, ce n'est pas possible avec les valeurs devant lesquelles il y a le "~"..
    Pourquoi ne pas utiliser le Chercher-Remplacer d'Excel ?
    https://support.office.com/fr-fr/art...f-fdb42f892e90
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  12. #11
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Cela ne fonctionne pas, il ne trouve aucune cellule contenant le caractere a chercher ....


    ziiii.JPGziiii.JPG
    Images attachées Images attachées  
    Dernière modification par fleur2touraine ; 09/03/2017 à 11h13.
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  13. #12
    Spazi

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par fleur2touraine Voir le message
    Spazi je dois définir "c" en variable?
    si oui quel type?
    ni string ni range ne fonctionne
    Non, il n'y a pas besoin de définir c
    Ma macro marche sur excel 2010, et je ne pense pas que 2007 n'est pas de "for each" donc, ça devrait marcher tel quel (en modifiant juste la plage de données)
    Dernière modification par Spazi ; 09/03/2017 à 12h35.

  14. #13
    cherbe

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par fleur2touraine Voir le message
    Cela ne fonctionne pas,
    Ca fonctionne parfaitement avec Open Office Calc donc ça DOIT fonctionner avec XL !
    Sinon par fonctions :
    =SI(GAUCHE(A1;1)="~";DROITEB(A 1;NBCAR(A1)-1);A1)
    Pour avoir de l'argent devant soi, il faut en mettre de côté ! (proverbe lorrain)

  15. #14
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    En utilisant,

    Code:
       For Each c In Range("B1", "B7")
            c.Value = Replace(c.Value, "~", "")
        Next
    Il me trouve une erreur '13' incompatibilité de type
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  16. #15
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par cherbe Voir le message
    Ca fonctionne parfaitement avec Open Office Calc donc ça DOIT fonctionner avec XL !
    J'ai mis un impr écran... ça veut pas
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

  17. #16
    Bluedeep

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par fleur2touraine Voir le message
    Il me trouve une erreur '13' incompatibilité de type
    Mettre une variable intermédiaire pour voir si l'incompatibilité est dans l'affectation ou dans la récupération de la valeur.
    Autre possibilité, essayer :

    Code:
     c.Value = Replace(CStr(c.Value), "~", "")

  18. #17
    LeMulet

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Lorsqu'on veut faire une opération sur les cellules du tableur Excel, il faut se poser la question de savoir si ce qu'on voit ... est bien ce que contient la cellule.
    A la base, la cellule contient des octets, qui peuvent être considérés comme des caractères d'une chaine, ou faisant partie de la valeur d'une date, ou faisant partie de la valeur d'un entier, ou d'un nombre à virgule etc etc.
    Si vous recherchez le caractère '~', et si la cellule est de type nombre à virgule, vous ne le trouverez pas.
    Le '~' c'est ce qu'on voit (ce qui apparait lorsqu'on regarde le tableau).

    Par exemple, une date contient en interne (format interne) un entier qui fournir le nombre de secondes écoulées depuis je ne sais quelle date). C'est un entier.
    Mais vous pouvez le faire s'afficher sous la forme que vous voulez, du moment que le format de la cellule est de type Date.
    Qui peut ensuite être affiché plus finement, puisque c'est une date, selon des paramètres suplémentaires, n'affichant par exemple que le jour, l'heure ou que sais-je.

    Donc, concernant votre problème, on peut faire comme ça (il y a plusieurs méthodes possibles, mais il faut bien comprendre le format de chaque variable et cellule) : Si vous copiez préalablement la cellule contenant le signe ~ fictif vers une cellule à format chaine, vous aurez alors une chaine dans cette nouvelle cellule, dans laquelle vous pouvez détecter le caractère ~.
    Vous pouvez alors l'enlever, pour recopier ensuite la chaine vers la cellule initiale, au format nombre à virgule (la conversion automatique peut se faire, si la chaine est convertible)

    (Je ne pratique plus trop VBA donc j'espère n'avoir pas dit de bêtises, les spécialistes me corrigeront. )
    Dernière modification par LeMulet ; 09/03/2017 à 16h12.
    Bonjour, et Merci.

  19. #18
    Bluedeep

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Citation Envoyé par LeMulet Voir le message
    Lorsqu'on veut faire une opération sur les cellules du tableur Excel, il faut se poser la question de savoir si ce qu'on voit ... est bien ce que contient la cellule.
    Le problème n'est pas ce que contient la cellule mais l'inférence de type qui en résulte.

    Et la propriété Value d'une cellule n'est pas une chaine mais un variant; donc pour l'exploiter comme une chaine, comme le réclame la fonction Replace, il fait le convertir.

    je ne pratique pas le VBA mais a priori c'est ce qui me vient à l'esprit.

  20. #19
    fleur2touraine

    Re : VBA supprimer caractère dans une cellule aléatoire d'un range

    Génial!!!
    Ca fonctionne comme ça,
    j'ai ajouté une deuxieme ligne car il changeait le point en virgule, je récupère mon point et les formules fonctionnent derrière.
    Merci à tous!!!

    Code:
       For Each c In Range("B1", "B7")
             c.Value = Replace(CStr(c.Value), "~", "")
             c.Value = Replace(CStr(c.Value), ",", ".")
        Next
    Takahashi FC-100DF à f4.9 + Sony A7s astrodon

Discussions similaires

  1. supprimer une partie de cellule
    Par fox57 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 25/08/2013, 17h01
  2. caractère aléatoire d'une désintégration radioactive
    Par invitee0b6f537 dans le forum Physique
    Réponses: 7
    Dernier message: 30/04/2009, 15h53
  3. [Biologie végétale] caractére de cellule meristématiques
    Par invitef923fd74 dans le forum Biologie
    Réponses: 7
    Dernier message: 03/03/2008, 16h46
  4. Caractère aléatoire de la désintégration radioactive
    Par invite776a26e4 dans le forum Physique
    Réponses: 2
    Dernier message: 18/03/2005, 10h36
  5. Tpe sur le caractère aléatoire du Golf
    Par invitecff02a74 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 30/01/2004, 20h57