VBA Ecriture simultanée dans deux feuilles

Fermé
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015 - Modifié par hglp le 2/07/2015 à 10:58
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 3 juil. 2015 à 10:03
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 ?
A voir également:

4 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
2 juil. 2015 à 11:19
Bonjour Hglp, bonjour le forum,

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

0
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015
2 juil. 2015 à 12:00
Bonjour ThauTheme,

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
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
2 juil. 2015 à 12:16
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.
0
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015
2 juil. 2015 à 14:08
ok je vais retester ton code merci
0
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015
2 juil. 2015 à 16:05
ç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
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
2 juil. 2015 à 17:34
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 ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié par eriiic le 2/07/2015 à 23:38
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 :
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
0
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015
3 juil. 2015 à 08:14
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
3 juil. 2015 à 10:03
Ok, mais tu ne réponds pas à la question.
Plusieurs cellules en même temps par un collé par exemple ?
Si oui il faudra modifier le programme..
eric
0