Liens entre feuilles en VBA

  • Initiateur de la discussion Initiateur de la discussion Fyle
  • 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 !

F

Fyle

Guest
Bonjour.

Je me suis mis à Visual Basic depuis quelques jours afin de faciliter mon travail.

Voici le contexte:
J'ai des 'fiches' de renseignements sur des sociétés.
Mon but serait de pouvoir lancer un programme qui me demande quelques noms de ces sociétés et regroupe sur un tableau les renseignements des sociétés sélectionnées
(pour une raison trop longue à expliquer, les TCD ne conviennent pas)

Aussi, j'ai pensé créer un classeur contenant des feuilles 'sociétés i'
tel que chaque feuille contiennet les renseignements d'une société.
Ensuite, il faudrait faire apparaitre un tableau sur une autre feuille avec des liens avec les feuilles 'sociétés' (ce qui permet la mise à jr automatique pour tout changement sur les scoiétés).

Voici une petite procédure qui permet cela (ici on veut un tableau sur la 1ère feuille avec les renseignements de 4 sociétés)
Sub essai()

For i = 1 To 4
c = Application.InputBox('indiquez le nom d'une des 4 sociéts:', Type:=2)

Dim j As Integer
For j = 1 To 20
Worksheets(1).Cells(j, i) = Sheets(c).Cells(j, 1)
Next j
Next i

End Sub


Cette procédure marche, mais les liens entre les feuilles ne sont pas 'dynamiques' (les mises à jr ne fonctionnent pas).

Pour avoir un 'vrai' lien il faudrait avoir qque chose comme:
Worksheets(1).Cells(j, i) = 'feuil1! A23'

Mais alors la feuille cible est figée et on ne peut pas faire de boucle.

Existe-t-il un moyen de créer un lien 'actif' tout en conservant l'avantage des boucles?

Merci par avance
Phil
 
Bonsoir Phil,

Je ne sais pas si c'est ceci que tu désires, mais d'après ce que j'ai pu comprendre j'ai corrigé ton code de façon à pouvoir copier sur la feuille 1 toutes les cellules des feuilles sociétés (4) comprises dans la plage cellule(1,1) à cellule(20,4)


Dim j As Integer
Dim I As Integer
Dim c As String
For I = 1 To 4
c = InputBox('indiquez le nom d'une des 4 sociéts:')
For j = 1 To 20
Worksheets(1).Cells(j, I).Value = Sheets(c).Cells(j, 1).Value
Next j
Next I


Bonne nuit

 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
719
Réponses
3
Affichages
258
Réponses
4
Affichages
587
Réponses
8
Affichages
656
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
382
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
1
Affichages
160
Retour