IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème apostrophe devant les données


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut Problème apostrophe devant les données
    Bonjour a tous,

    Voici mon problème je cherche a exploiter un fichier source, mais le problème c'est que les créateurs mon glissé aléatoirement des apostrophe dans certaines cellules.
    Du coups impossible de faire avec de la manipulation de chaîne de caractère avec Right, left ou mid (je penses).
    Voici le genre de données que je vais avoir dans une colonne :
    - 4600
    - '4600
    L'apostrophe se trouve toujours au début et après une grosse après midi a me penché sur une solution pour l'enlever, j'abdique ...

    Avez vous une idée pour sortir tous les apostrophe devant mes data dans une colonne par exemple ?

    Par avance merci de votre aide !!

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    2 questions qui appellent 2 réponses précises
    - Quelle(s) est/sont la/les colonne(s) concernée(s) ?
    - lorsqu(apostrophe : toujours uniquement devant et toujours devant un chiffre ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    Oui, il est toujours devant un chiffre, mais pas présent dans toutes les cellules !
    Les data a traitées sont dans la colonne C.
    J'ai également testé replace mais rien y fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, 3).Value = Replace(Cells(i, 3).Value, "'", "")

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    salut,

    et en pointant sur la formule directement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, 3).Formula = Replace(Cells(i, 3).formula, "'", "")
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    Je viens d'essayer mais rien n'y fait !

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    Etrange, pourrait-on avoir un echantillon de ton fichier Excel stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Cequi veut dire que tu n'as pas affaire au caractère '
    1) Que te retourne :
    msgbox asc(mid(cells(1,3).text,1,1))
    en remplaçant cells(1,3) par une cellule où yu as ce '
    2) regarde si par hasard le format d'une telle cellule ne force pas cet affichage d'un ' devant

    edit :
    que se passe-t-il si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, 3).Value = Cells(1, 3).Text

  8. #8
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 574
    Par défaut
    Bonjour

    Plage à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim cellule As Range
        For Each cellule In Range("A2:A50").Cells
            cellule.Value = cellule.Value * 1
        Next
    L'apostrophe sert à forcer un nombre en texte (résidu des 1ers tableurs) et est considéré comme un caractère d’échappement pas comme une apostrophe.
    La multiplication d'un texte par 1 le transforme en numérique si son contenu le permet sinon on obtient une erreur.

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    Bonjour, j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, 3).Value = Cells(1, 3).Text
    Ca ne fait rien également. J'ai également essayé plusieurs formats et ca n'a rien donné.

    Ton MsgBox me renvois 73 sur une cellule ou est afficché : '4600HH

    Merci de ton aide, je vois pour mettre un bout du fichier !

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    Oulah !

    As-tu le format Formules qui est affiche ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 574
    Par défaut
    Re

    Avez-vous vu mon post ?

  12. #12
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ton MsgBox me renvois 73 sur une cellule ou est afficché : '4600HH
    Etrange, car le caractère de code 73 est ... la lettre i en majuscule et non ' !!!!!

  13. #13
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ton fichier provient de quel programme ? Excel ou un autre ? Excel français, anglais ou autre ?

    Et quel encodage ont-ils utilisé : ASCII, ANSI, Unicode ou autre ?

    Ton fichier est-ce un classeur Excel fait sur Excel et en registré au format Excel ou un fichier importé ?

    Parce que tes deux H me font penser que '4600HH pourrait peut-être être en fait le nombre hexadécimal 4600 (pas essayé de convertir en décimal)

    Et est-ce que tes auteurs peuvent te dire si tes données sont passées par un fichier xml ? Parce que le mode d'encodage du fichier XML affecte la représentation des données du fichier Xml. Et si l'Importation du fichier xml est faite selon un encodage différent du fichier d'origine des distorsions peuvent survenir.

    Juste pour le fun, si tu vas sur cette page, tu vas voir que VB.net peut utiliser cinq modes différents pour encoder un fichier texte: ASCII, Unicode, UTF32, UTF7 et UTF8

    Et puis, cette page, pour l'encodage XML

    J'ai comme l'impression que sans connaître la vraie origine de ton fichier, tu vas tourner en rond.

  14. #14
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour


    Citation Envoyé par 78chris Voir le message
    Re

    Avez-vous vu mon post ?
    Moi, oui. C'est plein de bon sens et surtout facile à essayer.

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    pour éviter d'avoir à gérer l'erreur sur la proposition de 78chris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim c As Range
    For Each c In [A2:A4]
        If c.PrefixCharacter = "'" Then c = c.Value
    Next c
    End Sub
    L'apostrophe n'est enlevée que sur les numériques.
    eric

  16. #16
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 574
    Par défaut
    Bonjour

    Nickel le PrefixCharacter !

  17. #17
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    Bonjour a tous, et merci pour vos réponse.

    Effectivement ces données proviennes d'un Excel qui lui même provient d'un extraction, mais aucune idée du langage ou logiciel utilisé.
    Dans mon cas effectivement il s'agit d'un texte forcé comme on me l'a proposé plus haut.
    J'ai donc fais un mixe des solutions proposées plus haut:
    Dans un premier temps je supprime les HH a la fin de mon nombre, puis après la solution qui fonctionne est celle de tout simplement multiplié la valeur par 1. Voici le code si ca peut aider quelqu'un plus tard ! A appliquer sur la zone que l'on souhaite !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim c As Range
    For Each c In [C2:C4]
    c.Value = Left(c.Value, Len(c.Value) - 2)
    If c.PrefixCharacter = "'" Then c = c.Value * 1
    Next c
    End Sub
    Merci a tous pour votre aide !

  18. #18
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [A2:A4].numberformat="General"
    [A2:A4].value =[A2:A4].value

  19. #19
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2016
    Messages : 112
    Par défaut
    Désolé rdurupt, ta solution ne fonctionne pas !

    Par contre je viens de m’apercevoir que en colonne A j'ai des données de ce style et que mon code ne fonctionne pas car ce ne sont pas des nombre je penses.
    Cette colonne rassemble toutes les références et certaines sont notées ainsi :

    - '307-083-731-0

    Toujours ce maudit apostrophe, la solution de multiplier ne fonctionne pas !

  20. #20
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Je n'avais pas mis *1 pour ne pas avoir cette erreur.
    Si vraiment tu veux l'enlever également sur les chaines il faut leur appliquer un traitement spécifique.
    eric

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  2. [MySQL] Problème pour insérer les données d'un fichier texte vers une table Mysql !
    Par BARRIAU76 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/01/2008, 23h24
  3. [C#] Problème pour enregistrer les données
    Par MFree dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/12/2007, 13h32
  4. Problème pour récupérer les données d'un datafile
    Par KhaoOs dans le forum Import/Export
    Réponses: 5
    Dernier message: 23/10/2007, 11h24
  5. Réponses: 5
    Dernier message: 01/06/2007, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo