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 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 3 juil. 2015 à 10:03
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 3 juil. 2015 à 10:03
A voir également:
- VBA Ecriture simultanée dans deux feuilles
- Écriture facebook - Guide
- Fusionner deux feuilles excel - Guide
- Ecriture en gras - Guide
- Écriture miroir - Guide
- Comment faire deux colonnes indépendantes dans word - Guide
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
2 juil. 2015 à 11:19
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
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
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.
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.
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
2 juil. 2015 à 14:08
ok je vais retester ton code merci
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
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
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
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
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 ?
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 ?
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
Modifié par eriiic le 2/07/2015 à 23:38
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 :
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
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
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
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
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
3 juil. 2015 à 10:03
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
Plusieurs cellules en même temps par un collé par exemple ?
Si oui il faudra modifier le programme..
eric
2 juil. 2015 à 12:00
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