VBA - Liens entre feuilles depuis des cellules créées

Fermé
KiteCabrinha Messages postés 2 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 8 décembre 2016 - 7 déc. 2016 à 08:56
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 8 déc. 2016 à 15:37
Bonjour à tous,

Je travaille actuellement sur le développement d'une Macro. Je suis débutant et je suis bloqué dans mon codage.

Je m'explique : j'ai déjà réalisé une macro qui créée un nombre de colonnes que j'ai déterminé à l'aide d'une inputbox (dans ma feuille 1 qui s'appelle Fiche Données). Ce nombre de colonnes génère automatiquement un nombre de feuille. Je souhaite ensuite réalisé des liens entre les cellules des colonnes créées avec une cellules des feuilles créées, et c'est la que ça bloque !!

Par exemple :

Valeur de la cellule F7 (Feuille 1) = Valeur cellule D19 (Feuille 3)
Valeur de la cellule F8 (Feuille 1) = Valeur cellule D19 (Feuille 4)
Valeur de la cellule F9 (Feuille 1) = Valeur cellule D19 (Feuille 5)

J'arrive a faire le lien pour une cellule mais pas à généraliser pour la ligne F de la feuille 1.

Voici le code que j'ai développé :

Code : ' Code pour mettre en relation les feuilles et colonnes d'une même ligne

Private Sub Worksheet_Change(ByVal Target As Range)

'Création des variables pour pouvoir étendre les liens à toutes les feuilles


Dim F As Integer, Fx As Integer

F = Worksheets.Count

For Fx = 1 To F - 2

'Liens entre la feuille Fiche Données et les feuilles de Saturation de Grue

Application.EnableEvents = False 'gèle les évènements

Set F7 = Target.Offset(0, 1)

If Target.Address = "$F$7" Then

Worksheets(Fx + 2).Cells(19, 4) = Target

Application.EnableEvents = True 'les rétablis

End If

Next Fx

End Sub

Comment est-il possible de réaliser ces liens ?

Merci d'avance pour vos réponses :D

3 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
7 déc. 2016 à 12:28
Bonjour,

Si j'ai bien compris, je pense qu'il vaudrait mieux que tes nouvelles feuilles (3, 4 et 5) cherchent par formule la valeur adéquate dans ta base (Feuille 1).
ça ressemble un peu à une réponse que je viens de donner dans ce fil : www.commentcamarche.net/forum/affich-34115605-renommer-automatiquement-une-feuille-d-apres-une-cellule#p34160126

A+
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
7 déc. 2016 à 16:48
Bonjour,

Je rejoins ce qui est dit par Zoul67 (que je salue).
Autant utiliser la macro qui crée les feuilles pour placer dans la cellule D19 de la nouvelle feuille la liaison vers la cellule associée avec une formule du type =Données!F7
Cela t’évitera d’avoir à utiliser la procédure Worksheet_Change().

A+
1
KiteCabrinha Messages postés 2 Date d'inscription mercredi 7 décembre 2016 Statut Membre Dernière intervention 8 décembre 2016
8 déc. 2016 à 15:19
Bonjour à vous 2 et merci pour vos réponses.

J'ai essayer vos propositions mais je n'arrive pas à obtenir ce que je veux.

C'est le décalage du liens entre les cellules des différentes feuilles qui me pose problème.

Sachant que les feuilles de 3 à 50 sont créer sur demande de la feuille 1, je ne peux pas mettre la macro dans les feuilles puisqu'elle ne sont pas encore créées.

Ce n'est vraiment pas possible avec la formule Worksheet_Change ?

A+
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
8 déc. 2016 à 15:37
L'appel systématique à Worksheet_Change ne semble pas très propre.
Selon le nom des onglets tu peux avoir une formule unique dans chacune des cellules D19 mais qui utilisera le nom de l'onglet.
Ceci permettrait de renvoyer les valeurs de lignes différentes (F7, F8, F9,...)
Tu peux t'inspirer de ceci : https://forums.commentcamarche.net/forum/affich-15262945-nom-numero-onglet-pour-formule-excel

ou partager ton fichier via https://www.cjoint.com/ en postant le lien créé dans ce fil de discussion.

A+
0