Macro événementiel cellule copier
kaderladou973
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Macro événementiel cellule copier
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Excel cellule couleur si condition texte - Guide
- Proteger cellule excel - Guide
4 réponses
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)
Cdlt
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
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
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
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
"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
Merci pour votre réponse
Comment mettre la macro dans un module classique s'il vous plait, je suis novice dans le vba
Merci
Comment mettre la macro dans un module classique s'il vous plait, je suis novice dans le vba
Merci
Dans la fenêtre VBA, sélectionnez "Insertion" et choisir "Module" et copiez le code ci-dessous.
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
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