lien par rapport à une date

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

S

syl1812

Guest
Bonjour

J'ai deux fichiers excel, je voudrais que dans mon premier "planif récap", lorsque je rentre la date, excel aille me chercher la colonne correspondante dans mon deuxième fichier "planif Laura"
Par exemple je rentre 1 nov (dans la ligne 5 de planif recap), et excel me retrouve toute la colonne correspondante à 1 nov dans le fichier Laura

Pouvez vous m'aider?

Merci d'avance
 

Pièces jointes

Re : lien par rapport à une date

Bonjour syl1812, bienvenue sur le forum,

Pas très classique votre problème, car dans vos 2 fichiers, il y a une feuille par mois, et il faudra donc modifier les formules chaque mois !

En tout cas pour novembre, voici comment procéder :

- vous ouvrez les 2 fichiers Laura et planif recap

- pour le fichier planif recap, feuille Nov, dans la cellule D8 entrez la formule :

Code:
=DECALER([Laura.xls]Nov!$A$8;LIGNE()-8;EQUIV($B$5;[Laura.xls]Nov!$5:$5;0)+COLONNE()-IMPAIR(COLONNE()))

- puis tirez vers le bas et sur les cellules de la colonne E (la formule reste la même).

Edition : non, ne tirez pas vers le bas, vous modifieriez les formats des cellules (MFC). Copiez la cellule D8 puis sélectionnez la plage D8:E19, clic droit et Collage spécial-Formules.

A+
 
Dernière édition:
Re : lien par rapport à une date

Re,

Mon post précédent vous donnait une solution par formule.

Voici une solution en VBA. La macro se déclanche quand on entre une valeur en ligne 5 du fichier planif recap, elle est à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row <> 5 Then Exit Sub
Dim Nom$, F$
Nom = "Laura"
F = "Nov"
On Error Resume Next
With Workbooks(Nom & ".xls").Sheets(F)
.[A8:B19].Offset(0, Application.Match(Target, .[5:5], 0) - 1).Copy _
Cells(8, Target.Column + Application.Match(Nom, Range(Cells(6, Target.Column), [IV6]), 0) - 1)
End With
End Sub

Comme vous le voyez, il y a 2 variables Nom et F. Dans une macro qui reste à construire, on peut faire varier Nom pour étudier tous les noms de la feuille.

Evidemment, si vous modifiez la feuille Laura, les modifications ne seront pas répercutées sur la feuille planif recap, alors qu'elles le sont avec la solution par formules.

A+
 
Re : lien par rapport à une date

Bonjour,

Voici tous mes fichiers en pieces jointes, si vous pouvez m'aider.

Merci d'avance
 

Pièces jointes

Re : lien par rapport à une date

voici la suite des fichiers
 

Pièces jointes

Re : lien par rapport à une date

En fait je n'arrive pas à avoir dans mon fichier "planif récap" la totalité de mes informations qui sont dans les autres fichiers, j'obtiens seulement les infos qui sont dans le fichiers "Louis"

Merci d'avance

Sylvain
 
Re : lien par rapport à une date

Bonjour Sylvain,

Il y a longtemps que nous n'avions pas de nouvelles 🙄

Les solutions proposées ne traitaient que le seul fichier Laura. On pouvait supposer que cela suffirait...

Avant de tout vous faire, précisez au moins quelle solution vous voulez : par formule ou par macro ? L'avez-vous testée et vous convient-elle ? Sinon qu'est-ce qui ne va pas ?

A+
 
Re : lien par rapport à une date

Bonjour,

Et oui, ça commence à faire longtemps, j'ai un peu plus de temps ces jours-ci!

Je préfére la solution en macro, cela évite de re-traiter tous les fichiers avec des nouvelles formules.

Je te remercie par avance

Sylvain
 
Re : lien par rapport à une date

Bonsoir,

J'ai passé en revue vos fichiers, certains ne paraissent pas au point :

- Alois, Louis, Seb présentent des nombres (1-2-3...) au lieu des dates en ligne 5 des feuilles Nov et/ou Déc. Il faut choisir, tout l'un ou tout l'autre !

- la feuille Déc de planif recap est complétement différente de Nov : il n'y a plus de noms, et là aussi plus de dates...

Je peux quand même préparer la macro, mais corrigez ces 4 fichiers (par des Editions) pour que je puisse tester.

A+
 
Re : lien par rapport à une date

Re,

Encore un point : les lignes 20 25 27 où les cellules sont fusionnées sur beaucoup de colonnes vont poser problème pour la copie. Pouvez-vous les "défusionner" dans tous les fichiers ? Merci.

A+
 
Re : lien par rapport à une date

Re,

Voici la macro fonctionnant pour tous les mois et pour tous les noms. J'ai pu la tester avec les moyens du bord.

Elle est à placer dans le ThisWorkbook du fichier planif recap. Elle se lance quand une date est entrée en ligne 5 de n'importe quelle feuille de ce fichier.

Pour que tous les noms soient renseignés, il faut bien sûr que tous les fichiers soient ouverts.

N'oubliez pas de "défusionner" d'abord les lignes 20 25 27 de tous les fichiers.

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Row <> 5 Then Exit Sub
Dim Nom$, F$, W As Workbook
On Error Resume Next
F = Sh.Name
For Each W In Workbooks
Nom = Replace(W.Name, ".xls", "")
With W.Sheets(F)
.[B8:C38].Offset(0, Application.Match(Target, .[5:5], 0) - 2).Copy _
Cells(8, Target.Column + Application.Match(Nom, Range(Cells(6, Target.Column), [IV6]), 0) - 1)
End With
Next
End Sub

A+
 
Re : lien par rapport à une date

Bonjour Sylvain, le forum,

Une version améliorée, quand tous les fichiers sont dans le même dossier.

La macro ouvre d'abord tous les fichiers Excel qui ne sont pas ouverts :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Row <> 5 Then Exit Sub
Dim F$, test As Boolean, Nom$, W As Workbook
On Error Resume Next

F = Dir(ThisWorkbook.Path & "\*.xls") '1er fichier du dossier
While F <> ""
test = True
test = IsError(Workbooks(F).Name)
If test Then 'si le fichier F n'est pas ouvert
Application.ScreenUpdating = False
Workbooks.Open ThisWorkbook.Path & "\" & F 'ouverture de F
End If
F = Dir 'fichier suivant
Wend
ThisWorkbook.Activate

F = Sh.Name
For Each W In Workbooks
Nom = Replace(W.Name, ".xls", "")
With W.Sheets(F)
.[B8:C38].Offset(0, Application.Match(Target, .[5:5], 0) - 2).Copy _
Cells(8, Target.Column + Application.Match(Nom, Range(Cells(6, Target.Column), [IV6]), 0) - 1)
End With
Next

End Sub

A+
 
- 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
706
Réponses
12
Affichages
452
Réponses
11
Affichages
362
Réponses
3
Affichages
281
Retour