Cellules clone dans plusieurs feuilles
Bonjour,
Pas du tout expert d'excel et malgré mes recherches je ne trouve pas de solutions à mon problème.
J'ai un classeur excel avec différentes feuilles.
j'ai mes 15 premières lignes qui sont identiques sur chaque feuilles. (les lignes suivantes sont différentes sur les feuilles)
Voici ce que je voudrai faire.
Lorsque je rempli une valeur dans la feuille 1 A1 : 15 cette valeur 15 soit automatiquement cloné dans la feuille 2 en case A1 ainsi que la feuille 3 A1
et inversement.
exemple je tape 15 dans feuille 1 A1 - feuille 2 A1 voit la valeur 15 idem pour feuille 3 - 4 ....
et si je tape 241 dans feuille 3 A1 - la feuille 1 A1 voit sa valeur modifié automatiquement en 241 idem pour la case a1 de toute les autres feuilles.
Suis je clair ?
Merci pour votre aide
Bonsoir Arnaud77 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
Concernant votre demande, voici un fichier exemple de ce qu'on peut faire
Code dans ThisWorkbook -> ALT+F11 pour le voir
Merci pour votre participation
Cordialement
whaou ! merci beaucoup pour ce code qui fonctionne très bien pour toutes les cellules de la feuille.
est-il possible de définir juste quelques cellules ?
merci beaucoup pour votre aide.
Je suis vraiment novice et essaye de comprendre comment m'y prendre.
Je comprends qu'il faut utiliser la fonction Intersect() dans le code ? si oui à quel endroit dans le code ? entre les () je rentre les cellules que je souhaite cloner ?
Aussi, si j'ai 12 feuilles et que je veux appliquer cette macro seulement au 5 premières feuilles, comment dois-je m'y prendre ?
Bonjour,
Lorsqu'on est novice (on l'a tous été
https://www.google.com/search?q=vba+intersect
Voici un résultat
https://forum.excel-pratique.com/astuces/vba-utilisation-de-la-methode-intersect-1314
A+
OUI ... effectivement c'est ce que j'ai fait ! Mais je ne comprend pas du tout ce que je dois faire .
Si je veux cloner des cellules ciblées (cellule C2 à C10 dans les feuilles 1 2 3 4, mais pas les 5 6 7 ...)
je dois placer le code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C2:C10")) Is Nothing Then
MsgBox "Click on " & Target.Address
End If
End Subdans celui là ? et comment préciser les feuilles concernées ?
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Sht As Worksheet
' Désactiver les évènements le temps de faire les modifications
Application.EnableEvents = False
' Pour chaque feuille
For Each Sht In ThisWorkbook.Sheets
' Si feuille différente de l'actuelle
If Sht.Name <> Sh.Name Then
Sht.Range(Target.Address) = Target
End If
Next Sht
' Réactiver les évènements
Application.EnableEvents = True
End SubEncore merci pour votre aide, qui me permet de progresser.
Bonjour,
Attention à vos demandes SVP !
Initialement, il s'agissait de cloner des cellules entre feuilles : réponse donnée
Puis "est-il possible de définir juste quelques cellules ?", il faut utiliser Intersect()
Et maintenant "Si je veux cloner des cellules ciblées (cellule C2 à C10 dans les feuilles 1 2 3 4, mais pas les 5 6 7 ...)"
Savez-vous ce que vous voulez
Voici une possibilité avec le code modifié
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Sht As Worksheet, ShtOk As String
' Définir les feuilles à traiter
ShtOk = "Feuil1,Feuil2,Feuil3,Feuil4"
' Si cellule modifiée n'est pas dans la plage définie
If Application.Intersect(Target, Range("C2:C10")) Is Nothing Then Exit Sub
' Désactiver les évènements le temps de faire les modifications
Application.EnableEvents = False
' Pour chaque feuille
For Each Sht In ThisWorkbook.Sheets
' Si la feuille fait partie des feuilles à traiter et n'est pas l'actuelle
If Sht.Name <> Sh.Name And InStr(1, ShtOk, Sht.Name) > 0 Then
Sht.Range(Target.Address) = Target
End If
Next Sht
' Réactiver les évènements
Application.EnableEvents = True
End SubA+
Bonjour,
Bon effectivement j'ai surement pas été assez clair. Mais difficile de se rendre compte de ce qui est possible ou non.
Du coup j'ai tapé ce code :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Sht As Worksheet, ShtOk As String
' Définir les feuilles à traiter
ShtOk = "ACCEUIL,BARRES,TOLES,TUBES"
' Si cellule modifiée n'est pas dans la plage définie
If Application.Intersect(Target, Range("C2,C3,C5,C6,C8,C9,C10")) Is Nothing Then Exit Sub
' Désactiver les évènements le temps de faire les modifications
Application.EnableEvents = False
' Pour chaque feuille
For Each Sht In ThisWorkbook.Sheets
' Si la feuille fait partie des feuilles à traiter et n'est pas l'actuelle
If Sht.Name <> Sh.Name And InStr(1, ShtOk, Sht.Name) > 0 Then
Sht.Range(Target.Address) = Target
End If
Next Sht
' Réactiver les évènements
Application.EnableEvents = True
End Submais j'ai une erreur d'execution 1004
la méthode 'intersect de l'objet'_Application' a echoué
Le débogueur indique en jaune
If Application.Intersect(Target, Range("C2,C3,C5,C6,C8,C9,C10")) Is Nothing ThenAi-je mal tappé qqch ?
Salut Arnaud,
Il n'y a pas de raison, c'est écrit correctement
N'aurais-tu pas une référence indiquée [MANQUANTE]
Dans VBA Project -> Menu : Outils -> Références
Ou alors, tu n'as pas sélectionné qu'une seule cellule lors de la modification !?
A+
Franchement c'est une angoisse ce projet pour moi, qui dépasse mes connaissances et je suis pas vraiment à l'aise.
Dans VBA Project -> Menu : Outils -> Références
J'ai ca :
Ou alors, tu n'as pas sélectionné qu'une seule cellule lors de la modification !?
Que veux tu dires pas là ?
voici en pratique ce que nous remplissons en vert. et ca nous donne le résultat en rouge.
Pour info la macro marche très bien sur les 4 onglets définis dans la macro.
Mais j'ai la fenêtre 1004 qui apparait.
bonjour,
je reprends le sujet, car malgré mes recherches je ne trouve pas de solutions.
La macro marche très bien et lorsque je modifie par exemple la case C3 dans une des feuilles à traiter elle se clone automatiquement dans les autres feuilles à traiter.
Toutefois lorsque toute les 30 minutes le fichier va chercher sur internet des valeur en ligne pour mettre à jour d'autres feuilles ou lorsque j'utilise le bouton données actualiser tout.
J'ai une erreur d'exécution 1004 la méthode intersect de l'objet application a écoué - qui apparait 2x
auriez vous une idée ? une piste ? dites moi si je ne suis pas assez clair.
Merci d'avance
Mais oui j'y ai pensé... mais j'ai des données confidentiel dans ce fichier.
comment faire ?
