Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Coller des plages nommées avec liaison.

  • Initiateur de la discussion Initiateur de la discussion patapock
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patapock

XLDnaute Nouveau
Bonjour a tous.
J'ai réalisé un classeur qui comprends plusieurs feuilles:"Français";"Anglais";"Italiens", "Espagnols".

Chaques feuilles comprend les mêmes colonnes: Nom, Prénom, Date de Naissance, Licence.

Les lignes de ces différents tableaux s'alimentent grâce à un Userform qui ventile les nouvelles entrées en fonction de la nationalité renseignée.

J'ai créé une "plage nommée" pour chaque tableau de chacune de ces feuilles:
"Data_Français";"Data_Anglais";"Data_Italiens", "Data_Espagnols"

Je souhaiterai maintenant remplir une nouvelle feuille "Data" qui accueillerai l'une en dessous de l'autre, les données des différentes feuilles précédentes en appelant les plages nommées.

J'y arrive avec le code suivant:

Private Sub Worksheet_Activate()

Range("Data_Français").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)
Range("Data_Anglais").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)
Range("Data_Italiens").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)
Range("Data_Espagnols").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)

End Sub

Seulement, avec ce code, chaque fois que je bascule sur une autre feuille de mon classeur, et que je reviens sur la feuille "Data", cette dernière ajoute à chaque reprise une nouvelle fois chaque plage nommée !

Ma formule n'est donc pas la bonne.

Par ailleurs, je souhaiterai que, si par la suite, je modifie une cellule de ma feuille " Data", ces modifications se répercutent dans les autres feuilles concernées.

J'ai essayé avec un copier coller ou un tableau croisé dynamique, mais je ne connais pas les formulations VBA pour collage spécial avec liaisons.

Si quelqu'un avait une idée qui me permettrai d'avancer.

Merci
 
Re : Coller des plages nommées avec liaison.

Bonjour patapok

A tester:

VB:
Private Sub Worksheet_Activate()
ActiveSheet.Cells.clear
Range("Data_Français").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)
Range("Data_Anglais").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)
Range("Data_Italiens").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)
Range("Data_Espagnols").Copy Sheets("Data").Range("A" & Range("A65536").End(xlUp).Row)

End Sub
 
Re : Coller des plages nommées avec liaison.

pierrejean, merci de te pencher sur mon "cas".

J'ai essayé ton code, et je constate un nouveau problème non remarqué jusqu'à présent:
Ton code fonctionne parfaitement si je le met dans mon Userform de saisie.

Par contre, si je le mets dans le code de ma feuille "Data", dans le Sub
Code:
Private Sub Worksheet_Activate()
Il provoque une "Erreur d'exécution '1004':
"Erreur définie par l'application ou par l'objet"

Ce n'est pas le cas si je met par exemple:
Code:
MsgBox "test Coucou!"

😕

L'autre interrogation, est la suivante:
Si je comprends bien, ta fonction
Code:
ActiveSheet.Cells.clear
efface les données précédentes de la feuille "Data"

Or, e souhaiterai que les données insérées par le code VBA dans la feuille "Data" (mes plages nommées), s'actualisent automatiquement dans mes plages nommées issues des autres feuilles, si je dois modifier à la main certaines cellules.

L'équivalent d'un collage spécial, avec liaison

Qu'en penses-tu?
 
Re : Coller des plages nommées avec liaison.

Re

A tester
VB:
Private Sub Worksheet_Activate()
ActiveSheet.Cells.Clear
Range("Data_Français").Copy Sheets("Data").Range("A" & Sheets("Data").Range("A65536").End(xlUp).Row)
Range("Data_Anglais").Copy Sheets("Data").Range("A" & Sheets("Data").Range("A65536").End(xlUp).Row)
Range("Data_Italiens").Copy Sheets("Data").Range("A" & Sheets("Data").Range("A65536").End(xlUp).Row)
Range("Data_Espagnols").Copy Sheets("Data").Range("A" & Sheets("Data").Range("A65536").End(xlUp).Row)
End Sub

Effectivement lorsque la feuille Data sera activée la totalité des infos sera actualisée
Si des titres ou autre infos doivent subsister il faut revoir l'effacement qui est ici integral
 
Dernière édition:
Re : Coller des plages nommées avec liaison.

pierrejean,
je viens d'essayer ton nouveau code.
J'ai la même erreur que précédemment...😕

Je vois pas ou ça coince car ce code aussi fonctionne si je le place dans le sub qui ferme mon formulaire de saisie et enregistre les nouvelles données, soit entre les balises
Code:
Private Sub CommandButton_VALIDATE_Click()
et
Code:
End Sub

Etrange non?

Pour ce qui est de l'effacement des données, lors de l'appel de la feuille "Data", je sais pas si , une fois le problème précédent résolu, ça va "coller", car par la suite, j'aurai souhaité pouvoir modifier certaines cellules de la feuille "Data" et que ces modifications se répercutent dans les autres plages nommées.

Je souhaiterai aussi pouvoir, dans la feuille "Data", masquer certaines lignes, ou encore colorier des cellules avec une mise en forme conditionnelle.

Si le tableau est effacé et recréé à chaque appel de "Data", ne perdrais-je pas la mise en forme?

En fait, sans faire appel à VBA, ce dont j'ai besoin, n'est ni plus ni moins qu'un copier/collage Spécial avec liaison des données.

Seulement, je ne sais pas le faire en VBA, avec des plages nommées qui sont amenées à varier.

Je sèche depuis 15j malgré de multiples recherches.
Pour l'instant, mon projet est à l'arrêt, mais j'apprends doucement les bases du VBA.
C'est toujours ça de pris.

Merci pour ta patience.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
493
Réponses
4
Affichages
179
Réponses
12
Affichages
972
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…