Supprimer des caracteres automatiquement

vitedusoma Messages postés 10 Statut Membre -  
vitedusoma Messages postés 10 Statut Membre -
Bonjour,
Voila .J'ai fait un fichier excel avec mes différentes actions en bourse.
J'ai réussi a insérer des sources externes (boursorama) pour avoir les cours en temps réel.
tout va bien .Lorsque j’appuie sur actualiser ,les cours sont bien actualisés. Mais .Parce qu'il y a un mais.
A partir de 17h30 Boursorama rajoute les signes suivants (c) aux cours de bourse (pour signifier la clôture). Et ces (c) me posent problèmes car il s'affichent dans les cellules et donc tout est corrompu.
j'arrive bien a supprimer manuellement ce (c) .Mais j'aimerais savoir si on peut le faire automatiquement .par exemple a l'ouverture du fichier ou en actualisant.

merci par avance
ps: je n'y connais rien en vba

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Bonjour,

    Tu peux faire se lancer la macro automatiquement, lorsque par exemple, le contenu des cellules changent
    https://silkyroad.developpez.com/VBA/EvenementsFeuille/#LII-E

    Et pour "supprimer" les (c) tu peux simplement remplacer cette chaine par vide ""
    https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-J
    0
    1. vitedusoma Messages postés 10 Statut Membre 2
       
      Bonsoir et merci pour la réponse.
      j'ai bien réussi a créer une macro qui remplace "(c)" par " " (donc un vide).
      Et qui se trouve dans le Module4

      Sub supprimer()
      '
      ' supprimer Macro
      '

      '
      Cells.Replace What:="(c)", Replacement:=" ", LookAt:=xlPart, SearchOrder _
      :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
      End Sub



      J'ai egalement creer un bouton qui actualise les différentes feuilles de cours.
      Qui se trouve dans ThisWorkBook


      Sub Actualiser()
      '
      ' Actualiser Macro
      '

      '
      ActiveWorkbook.RefreshAll
      End Sub


      Ce que je voudrais c'est en cliquant sur le bouton actualiser ,c'est actualisé . Ça il le fait.
      Mais activer aussi la macro qui supprime les (c) et ceci sur toutes les feuilles ouvertes ou non.
      Ou sinon que la macro de remplacement des (c) s’exécute sur toutes les feuilles en même temps.
      Merci de m'avoir lu.
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       
      Bonjour,

      Il te suffit de boucler sur chaque feuille de ton classeur
      Un truc du genre :
      Sub supprimer()
      Dim sh as Worksheet
      
      For each sh in ActiveWorkbook.sheets
           sh.Cells.Replace What:="(c)", Replacement:=" ", LookAt:=xlPart, SearchOrder _
      :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
      Next
      End Sub 
      
      Sub Actualiser()
      '
      ' Actualiser Macro
      ActiveWorkbook.RefreshAll
      Call supprimer
      End Sub 
      
      0
    3. vitedusoma Messages postés 10 Statut Membre 2
       
      merci pour la reponse et pardon pour le code.
      ça semble marcher . le hic c'est qu'il faudrait que la macro "actualiser" s'active avant celle "supprimer"
      0
    4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       
      C'est le cas dans le code que je t'ai donné
      0