Mettre à jour des données dans une autre feuille
Résolu
acr-onyme
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
acr-onyme Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
acr-onyme Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
bonjour
J''ai deux fichiers excel semblables avec des tonnes de données "Feuiile-1 et feuille-2". (feuille-2 est une copie de feuille-1),elles ont une entête sur les 2 premières ligne A1 et A2, les données (que du texte sauf l'ID), commencent sur la ligne A3 avec les m nr d'ID et finissent BB4000.
L’idée est que si j'effectue des changements d'une valeur dans une ligne de la feuille-1, que ces changements soient reprises dans la feuille-2 (mise à jour) et que toute la ligne dans la feuille-1 soie effacée.
Merci d'avance pour toutes vos solutions
J''ai deux fichiers excel semblables avec des tonnes de données "Feuiile-1 et feuille-2". (feuille-2 est une copie de feuille-1),elles ont une entête sur les 2 premières ligne A1 et A2, les données (que du texte sauf l'ID), commencent sur la ligne A3 avec les m nr d'ID et finissent BB4000.
L’idée est que si j'effectue des changements d'une valeur dans une ligne de la feuille-1, que ces changements soient reprises dans la feuille-2 (mise à jour) et que toute la ligne dans la feuille-1 soie effacée.
Merci d'avance pour toutes vos solutions
A voir également:
- Mettre à jour des données dans une autre feuille
- Mettre a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
- Trier des données excel - Guide
5 réponses
Bonjour Acr-onyme, bonjour le forum,
Peut-être comme ça (non testé) :
Macro événementielle à placer dans le composant VBA Feuil1(Feuil1).
Peut-être comme ça (non testé) :
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet Dim R As Range 'déclare la variable R (Recherche) If Target.Column = 1 Then Exit Sub 'si le changement a lieu dans la colonne 1 (=A), sort de la procédure 'définit la recherche R, (recherche dans la colonne A de l'onglet "Feuil2", le numero ID de la cellule modifiée) Set R = Sheets("Feuil2").Columns(1).Find(Cells(Target.Row, 1), , xlValues, xlWhole) If Not R Is Nothing Then 'si il existe au moins une occurrence trouvée Cells(Target.Row, 1).Resize(1, 54).Copy R 'renvoie la ligne de la cellule modifiée dans R Cells(Target.Row, 1).Resize(1, 54).ClearContents 'efface le contenu de la ligne de la cellule modifiée 'si tu veux supprimer la ligne : Rows(Target.row).delete End If End Sub
Macro événementielle à placer dans le composant VBA Feuil1(Feuil1).
Re,
Où l'as-tu placée ? Il faut la mettre dans le composant VBA de l'onglet où elle doit agir...
Copie le code fourni, clique avec le bouton droit dans l'onglet où tu veux qu'elle agisse (en bas). Choisis l'option Visualiser le code. Colle le code là où le curseur clignote.
La macro agira chaque fois que tu modifieras (édition / modification ou effacement) une cellule de cet onglet ailleurs que dans la colonne A...
Si ton classeur a une extension xlsx, il te faudra l'enregistrer sous xlsm pour conserver le code.
Où l'as-tu placée ? Il faut la mettre dans le composant VBA de l'onglet où elle doit agir...
Copie le code fourni, clique avec le bouton droit dans l'onglet où tu veux qu'elle agisse (en bas). Choisis l'option Visualiser le code. Colle le code là où le curseur clignote.
La macro agira chaque fois que tu modifieras (édition / modification ou effacement) une cellule de cet onglet ailleurs que dans la colonne A...
Si ton classeur a une extension xlsx, il te faudra l'enregistrer sous xlsm pour conserver le code.
huuu c'est magique ton truc !
Mea-culpa, je n'avais bien saisie la procédure
J'ai un petit problème, c'est que dès qu'il y a un changement la ligne est effacée, alors que je n'ai pas fini toutes les mises à jours dans la rangée.
Serait-il possible d'adapter la macro, afin que je commande moi-m la mise à jour (il m'arrive de ne pas avoir toutes les infos en m temps).
Je te remercie, c'est sympa de ta part
acr-onyme
Mea-culpa, je n'avais bien saisie la procédure
J'ai un petit problème, c'est que dès qu'il y a un changement la ligne est effacée, alors que je n'ai pas fini toutes les mises à jours dans la rangée.
Serait-il possible d'adapter la macro, afin que je commande moi-m la mise à jour (il m'arrive de ne pas avoir toutes les infos en m temps).
Je te remercie, c'est sympa de ta part
acr-onyme
Re,
Remplace le code précédent par celui-ci (toujours au même endroit) :
Cette macro événementielle agit au double-clic. Donc quand tu auras finis d'éditer les données de la ligne, il te suffira de double-cliquer sur n'importe quelle cellule de cette ligne pour que ça fonctionne... Toujours non testé car j'ai la flemme de recrée ton environnement.
Remplace le code précédent par celui-ci (toujours au même endroit) :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim R As Range 'déclare la variable R (Recherche) Cancel = True 'évite le mode [Édition] lié au double-clic 'définit la recherche R, (recherche dans la colonne A de l'onglet "Feuil2", le numero ID de la cellule modifiée) Set R = Sheets("Feuil2").Columns(1).Find(Cells(Target.Row, 1), , xlValues, xlWhole) If Not R Is Nothing Then 'si il existe au moins une occurrence trouvée Cells(Target.Row, 1).Resize(1, 54).Copy R 'renvoie la ligne de la cellule modifiée dans R Cells(Target.Row, 1).Resize(1, 54).ClearContents 'efface le contenu de la ligne de la cellule modifiée 'si tu veux supprimer la ligne : Rows(Target.row).delete End If End Sub
Cette macro événementielle agit au double-clic. Donc quand tu auras finis d'éditer les données de la ligne, il te suffira de double-cliquer sur n'importe quelle cellule de cette ligne pour que ça fonctionne... Toujours non testé car j'ai la flemme de recrée ton environnement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hiii la macro ne démarre pas!
Qu'est tu veux dire par "au changement dans l'onglet", je n'arrive pas à interpréter
Merci d'avance pour ton aide