Macro exécuté en 2 temps

Bonsoir,
Je dois créer une macro me permettant d'actualiser mon tableau dans la feuille 1 puis recopier une colonne de ce tableau dans la feuille 2. Au passage les chiffres du tableau 1 comportant des points dans ses nombre, j'en profite pour les remplacer par des virgules. Malheureusement lorsque j'éxécute ma macro (que ce soit depuis un bouton ou directement) elle ne fait qu'actualiser, je suis obligé de la relancer pour avoir un transfert dans le second classeur. J'ai essayé plusieurs variantes comme call mais rien a faire.
En espérant que vous puissiez m'aider!
Voici mon code:

Sub j'en_ai_marre()

Sheets("Feuil1").Select
ActiveWorkbook.RefreshAll
Range("G2:G41").Copy Sheets("Feuil2").Range("B1")
Sheets("Feuil2").Select
Range("B1:B40").Select
Selection.Replace What:=".", Replacement:="."

End Sub

4 réponses

  1. Bonjour,

    Tu parles de 2 classeurs mais dans ton code il n'est fait référence qu'à un seul !!!
    0
    1. Re,

      je pense que tu as un problème avec ton fichier, ferme Excel et ouvre le à nouveau et
      colle un code dans un nouveau fichier et saisir des données avec un point
      comme séparateur de décimale dans ta plage G2:G41 et active le code voir
      A+
      Mike-31

      Une période d'échec est un moment rêvé pour semer les graines du savoir.
      0
      1. Bonjour
        voir aussi comme ca
        Sub J2()
        L1 = 1
        Sheets("Feuil1").Select
           For L = 2 To 41
              Sheets("Feuil2").Range("B" & L1).Value = Val(Range("G" & L).Value)
              L1 = L1 + 1
           Next
        Sheets("Feuil2").Select
        End Sub
        

        A+
        Maurice
        0
        1. Merci pour ta réponse Maurice, malheureusement quand je rajoute le code pour actualiser cela me transfert les anciennes données et non les actualisées que je désire
          0
      2. Bonjour,

        je ne comprends pas ton problème parce que ton code fonctionne parfaitement
        Sub j() 'en_ai_marre()
        ActiveWorkbook.RefreshAll
        Sheets("Feuil1").Range("G2:G41").Copy Sheets("Feuil2").Range("B1")
        Sheets("Feuil2").Select
        Range("B1:B40").Replace What:=".", Replacement:="."
        End Sub

        par contre dans ta demande du parle de "je suis obligé de la relancer pour avoir un transfert dans le second classeur"
        s'agit il d'un autre classeur ou sur la feuille suivante
        0
        1. Lorsque je lance cette macro, elle actualise les données et je suis obligé de la relancer une seconde fois pour qu'elle copie colle dans la feuille 2
          0
        2. Re,

          bizarre, je l'ai testé et je viens de la retester encore à l'instant, je lance et le code qui copie les données de la feuille1 sur la feuille 2 et remplace le point par la virgule sur la feuille 2 en une seule et unique opération
          je ne vois pas pourquoi sur ton système tu es obligé de relancer le code
          0
        3. C'est pas grave merci beaucoup en tout cas!
          0