Macro événementiel cellule copier

Bonjour

Je me permet de vous posez une question pour laquelle je ne trouve pas de solution.

J'ai un classeur Excel qui contient deux feuille.
Sur la première il y a des info qui sont collecter en temps réel
Sur la deuxième je fais un copié coller d'une cellule de la première feuille qui se met a jour automatiquement

En parallèle j'ai créer un macro événementiel sur la deuxième feuille pour que a chaque modification de la cellule celle ci enregistre une valeur en dessous

Le problème est que si j'inscrit dans la 2 feuille des donnés manuellement ça marche, mais si je met la formule pour qu'il prend la cellule de la première feuille ça ne marche pas

Pouvez vous m'aidez, je vous donne mon code

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
t = Range("a1").Value
If Range("a2").Value = "" Then
Range("a2").Value = t
Else
Range("a" & Range("a1").End(xlDown).Row + 1).Value = t
End If
End If
End Sub

Merci

4 réponses

  1. Bonjour
    La macro évènementielle doit être sur la première feuille et agir sur la deuxième. De ce fait la formule dans la feuille 2 devient inutile.
    Copiez le code ci-dessous dans le module de la feuille 1. (Remplacez "feuil2" par le nom alloué à votre feuille 2)
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
            t = Range("a1").Value
            If Sheets("feuil2").Range("a2").Value = "" Then
                Sheets("feuil2").Range("a2").Value = t
            Else
                Sheets("feuil2").Range("a" & Sheets("feuil2").Range("a1").End(xlDown).Row + 1).Value = t
            End If
        End If
    End Sub
    

    Cdlt
    1
    1. Bonjour

      Merci pour votre réponse
      J'ai réussi à copier le code et ça marche
      mais maintenant il y a un autre problème.
      Sur la feuille 1 il y a des données qui sont récolté d'une page web par Excel et mis a jour tous les minutes.
      donc si j'écrit les données "a la main" ça marche mais si ç'est Excel qui met à jour les données ça ne marche pas
      Pouvez vous m'aidez pour que les données mis a jour par Excel soit bien pris en compte

      Merci
      0
      1. Bonjour
        "Sur la feuille 1 il y a des données qui sont récolté d'une page web par Excel et mis a jour tous les minutes."
        Si les données sont récupérées par Excel, c'est qu'il y a déjà une procédure chargée de faire ce travail, il suffit donc, à chaque importation des données de la page Web vers le fichier excel, d'appeler la macro de recopie des données de la feuille 1 vers la feuille 2 lors. La macro de recopie doit être dans un module classique et non dans le module de la feuille 1.
        Cdlt
        0
        1. Merci pour votre réponse

          Comment mettre la macro dans un module classique s'il vous plait, je suis novice dans le vba

          Merci
          0
          1. Dans la fenêtre VBA, sélectionnez "Insertion" et choisir "Module" et copiez le code ci-dessous.
            Sub RecupValeur()
                t = Sheets("Feuil1").Range("a1").Value
                If Sheets("feuil2").Range("a2").Value = "" Then
                    Sheets("feuil2").Range("a2").Value = t
                Else
                    Sheets("feuil2").Range("a" & Sheets("feuil2").Range("a100000").End(xlUp).Row + 1).Value = t
                End If
            End Sub

            Dans votre programme d'importation des données, avant "End Sub", insérer une ligne et coller le nom de la procédure RecupValeur
            Cdlt
            0