VBA Ecriture simultanée dans deux feuilles
hglp
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais pouvoir écrire dans les cellules de la colonne A de ma "Feuil1" et que ce que je viens d'écrire soit directement écrit dans la même case de ma "Feuil2", ceci pour éviter de réécrire deux fois la même chose. Est-ce possible ?
Je voudrais pouvoir écrire dans les cellules de la colonne A de ma "Feuil1" et que ce que je viens d'écrire soit directement écrit dans la même case de ma "Feuil2", ceci pour éviter de réécrire deux fois la même chose. Est-ce possible ?
A voir également:
- VBA Ecriture simultanée dans deux feuilles
- Écriture facebook - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Comment faire deux colonnes indépendantes dans word - Guide
- Ecriture en gras - Guide
- Deux ecran pc - Guide
4 réponses
Bonjour Hglp, bonjour le forum,
Essaie avec ce code placé dans le composant Feuil1(Feuil1) :
Essaie avec ce code placé dans le composant Feuil1(Feuil1) :
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Sheets("Feuil2").Range(Target.Address).Value = Target.Value End Sub
Re,
Je ne comprends pas. Le code que je t'ai proposé fait exactement ce que tu demandes. Il copie automatiquement ce que tu tapes dans la colonne A de l'onglet Feuil1, au même endroit dans l'onglet Feuil2.
En revanche, ta macro fait le contraire. Elle recopie de l'onglet Feuil2 à l'onglet Feuil1 mais pas automatiquement, il te faut la lancer...
Puis avec ton Exit For elle ne boucle que sur une seule donnée... et ne copie que la dernière valeur de la colonne A ?!...
Teste le code que je t'ai proposé ! Clique avec le bouton droit en bas sur l'onglet Feuil1 et choisis l'option Visualiser le code. Là tu colles le code. Ensuite tout ce que tu écris dans la colonne A de Feuil1 et recopié dans la colonne A de Feuil2.
Je ne comprends pas. Le code que je t'ai proposé fait exactement ce que tu demandes. Il copie automatiquement ce que tu tapes dans la colonne A de l'onglet Feuil1, au même endroit dans l'onglet Feuil2.
En revanche, ta macro fait le contraire. Elle recopie de l'onglet Feuil2 à l'onglet Feuil1 mais pas automatiquement, il te faut la lancer...
Puis avec ton Exit For elle ne boucle que sur une seule donnée... et ne copie que la dernière valeur de la colonne A ?!...
Teste le code que je t'ai proposé ! Clique avec le bouton droit en bas sur l'onglet Feuil1 et choisis l'option Visualiser le code. Là tu colles le code. Ensuite tout ce que tu écris dans la colonne A de Feuil1 et recopié dans la colonne A de Feuil2.
ça fonctionne bien sur excel 2007. Je l'ai fait dans les deux sens ce qui fait que je peux modifier la feuille 1 ou 2, les valeurs changeront et inversement. (en mettant ton code dans feuil2(feuil2) et en renommant dans le code Feuil2 en Feuil1.
Par contre sur excel 2013, j'ai une erreur d'exécution "la méthode 'Range' de l'objet '_Worksheet' a échoué " (il me surligne en jaune à partir de Sheets("Feuil2") )
Toutefois les cases se modifient après avoir arrêter le debugger mais à chaque case modifiée nouvelle erreur.
Ca doit être un détail mais je ne vois pas d'où cela peut provenir
Par contre sur excel 2013, j'ai une erreur d'exécution "la méthode 'Range' de l'objet '_Worksheet' a échoué " (il me surligne en jaune à partir de Sheets("Feuil2") )
Toutefois les cases se modifient après avoir arrêter le debugger mais à chaque case modifiée nouvelle erreur.
Ca doit être un détail mais je ne vois pas d'où cela peut provenir
Re,
Le faire sur les deux ça doit faire une boucle sans fin !... Tu changes dans l'onglet Feuil1 => ça change dans l'onglet Feuil2. Donc, puisque ça change dans l'onglet Feuil2 => ça change aussi dans l'onglet Feuil1... En boucle. C'est ça qui doit faire planter. Je ne pense pas que ce soit une bonne idée.
Sinon, j'ai écrit le code avec Excel 2010 et il fonctionne très bien chez moi... Est-ce que ton second onglet se nomme bien Feuil2 ?
Le faire sur les deux ça doit faire une boucle sans fin !... Tu changes dans l'onglet Feuil1 => ça change dans l'onglet Feuil2. Donc, puisque ça change dans l'onglet Feuil2 => ça change aussi dans l'onglet Feuil1... En boucle. C'est ça qui doit faire planter. Je ne pense pas que ce soit une bonne idée.
Sinon, j'ai écrit le code avec Excel 2010 et il fonctionne très bien chez moi... Est-ce que ton second onglet se nomme bien Feuil2 ?
Bonjour,
Ce que je ne comprend pas bien c'est pourquoi tu boucles sur plusieurs cellules ?
Tu écris dans plusieurs cellules à la fois ?
Sinon tu ne peux pas le faire dans 2 feuilles comme ça. Comme dit thautheme c'est une boucle sans fin.
Pour le faire, dans un module Standard :
Dans tes 2 feuilles (adaptant le nom) :
Et teste sans faire des arrangements à ta sauce avant.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Ce que je ne comprend pas bien c'est pourquoi tu boucles sur plusieurs cellules ?
Tu écris dans plusieurs cellules à la fois ?
Sinon tu ne peux pas le faire dans 2 feuilles comme ça. Comme dit thautheme c'est une boucle sans fin.
Pour le faire, dans un module Standard :
Public noEvents As Boolean
Dans tes 2 feuilles (adaptant le nom) :
Private Sub Worksheet_Change(ByVal Target As Range) If noEvents Then Exit Sub noEvents = True If Target.Column = 1 Then Sheets("Feuil2").Range(Target.Address).Value = Target noEvents = False End Sub
Et teste sans faire des arrangements à ta sauce avant.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Bonjour Eric,
Je fais ça pour que deux utilisateurs ayants accès à un même classeur sur un réseau mais n'ayant pas accès aux mêmes feuilles puissent écrire des informations dans telle colonne et que ça se fasse directement dans l'autre feuille et inversement afin de gagner du temps.
Je vais essayer ce que tu m'as proposé, Merci
Je fais ça pour que deux utilisateurs ayants accès à un même classeur sur un réseau mais n'ayant pas accès aux mêmes feuilles puissent écrire des informations dans telle colonne et que ça se fasse directement dans l'autre feuille et inversement afin de gagner du temps.
Je vais essayer ce que tu m'as proposé, Merci
Merci pour ta réponse mais ce code ne fonctionne pas pour moi.
J'ai essayé ceci mais je n'arrive à récupérer que les deux premiers champs de la colonne A de la feuille de 2 dans la colonne A de ma feuille 1, Je ne sais pas pourquoi.
Sub Simultanee()
Dim Cell As Range
Set Ws1 = Worksheets("Feuil1")
Set Ws2 = Worksheets("Feuil2")
'Boucle sur les données de la colonne A, dans la feuille 1
For Each Cell In Ws1.Range("A2:A" & Ws1.Range("A65536").End(xlUp).Row)
Cell.Value = Ws2.Range("A2:A" & Ws2.Range("A65536").End(xlUp).Row).Value
Exit For
Next Cell
End Sub