Liaison de deux fichiers Excel en prenant en compte le changement de date

Bonjour à tous,

J'ai un petit souci,

En fait, on m'a demandé d'automatiser des données entre deux fichiers excel, en prenant en compte les dates.

Le problème c'est que celles-ci changent et il faut trouver une solution pour que les données du tableau 1 soient rentrées de manière automatique dans le tableau 2.

J'ai tout essayé mais sans succès.

Vous trouverez ci-joint deux prises d'écran avec les encadrements nécessaires

1 2

Je reste à disposition

Bonjour,

Est-ce que les 2 fichiers sont ouverts en même temps ?

si OUI il faut utiliser la fonction INDIRECT

si NON il faut faire une macro événementielle qui lors de la modification de la date va modifier la formule des zones concernées

Voilà

Maintenant pour aller plus loin, il faut répondre à la question ci-dessus et donner un fichier même simplifié.

Bonjour Steelson,

de manière générale ils sont ouverts et renseignés séparément, donc non.

Vous trouverez ci-joint deux fichiers créés avec une partie des deux tableaux.

Donc le but est de faire en sorte que les données des cellules (G9 G10), (G13 G14) et (G17) du fichier Tab 2,

7tab-2.xlsx (10.47 Ko)

Soient reliées aux données des cellules (B10 B11), (B4 B5) et (B7) du fichier Tab 1,

6tab-1.xlsx (9.63 Ko)

Tout cela en prenant en compte les cellules date (D1 pour Tab 1) et (G8, H8 pour Tab2).

J’espère que c'est assez claire pour vous!

Je vous remercie pour votre retour.

En D1 de Tab1, je te propose de modifier la formule comme suit

=FIN.MOIS(A1;-11)+1

cela ne change pas le mois affiché, mais au lieu du 31 mai ce sera le 1er mai en l’occurrence. Et cela permet surtout de s'aligner avec l'autre fichier.

Je pense qu'il y a une inverison dans ton énoncé entre B10 et B11

Donc le but est de faire en sorte que les données des cellules (G9 G10), (G13 G14) et (G17) du fichier Tab 2,

Soient reliées aux données des cellules (B10 B11), (B4 B5) et (B7) du fichier Tab 1,

Je propose un bouton de déversement des valeurs de Tab1 vers Tab2 avec cette macro :

Option Explicit
Sub deverser()
Dim ws As Worksheet, fichier As String, mois As Date, wbk As Workbook, trouve As Range, col As Integer
    Set ws = ActiveSheet
    fichier = "Tab 2.xlsx"
    mois = Range("D1").Value
    Set wbk = Workbooks.Open(fichier)
    wbk.Activate
    Set trouve = Rows(8).Find(mois)
    If Not trouve Is Nothing Then
        col = trouve.Column
        With ws
            Cells(9, col) = .Range("B11")
            Cells(10, col) = .Range("B10")
            Cells(13, col) = .Range("B4")
            Cells(14, col) = .Range("B5")
            Cells(17, col) = .Range("B7")
        End With
    Else
        MsgBox "Mois non trouvé !"
    End If
    ActiveWorkbook.Close SaveChanges:=True
End Sub
3tab-1.xlsm (17.20 Ko)

Merci beaucoup pour ton retour Steelson ,

Peut-tu m'envoyer les deux fichiers Tab 1 et Tab 2 sur lesquels t'as travaillé s'il te plaît,

Parce qu'il me dit qu'il n'arrive pas à trouver le fichier Tab 2, donc je pense que c'est parce que ça a été modifier et intégrer à la macro à partir de ton PC, ce qui fait que mon fichier n'est pas pris en compte.

1

Je reste à disposition

C'est tout simplement parce que je l'ai mis dans le même dossier.

10excel.zip (22.46 Ko)

Merci beaucoup du retour,

Je te souhaite le meilleur.

Steelson,

Je m’excuse du dérangement, mais je n'arrive vraiment pas à faire fonctionner la macro car il ne reconnait pas le fichier Tab 2,

J'ai tout essayé mais sans succès.

Si tu as le temps de regarder de ton coté peut être que tu trouveras la cause.

1 2

Bonjour,

remplace la ligne par

Set wbk = Workbooks.Open(ThisWorkbook.Path & "\" & fichier)

et dis moi si c'est ok

Il n'ya plus le problème de reconnaissance du fichier tab 2.

mais il n'arrive pas à mettre à jour les cellules du tab 1 en fonction des nouvelles données des cellules tab 2.

en fait, quand je rajout des chiffres dans la colonne de juin dans tab 2, et que je modifie la date "D1" dans tab 1 et que je clique dans déverser, il ne les prend pas en compte, mais il copie les données de la colonne G dans tab 2 vers la colonne H LOL

Je pense que je me suis engagé dans un truc assez compliqué.

6 5 4 3 1

As-tu appliqué ceci ?

En D1 de Tab1, je te propose de modifier la formule comme suit

=FIN.MOIS(A1;-11)+1

cela ne change pas le mois affiché, mais au lieu du 31 mai ce sera le 1er mai en l’occurrence. Et cela permet surtout de s'aligner avec l'autre fichier.[/code]

en plus dans les exemples ci-dessus, la date en A1 ne change pas, mais celle en D1 change alors qu'elles sont liées.

Le mieux serait de me renvoyer les fichiers (simplifiés si besoin), voire en mp.

Je pense que je me suis engagé dans un truc assez compliqué.

Cela reste simple mais il faut qu'on comprenne bien les valeurs stockées dans les zones qui "apparaissent" comme mois-année.

Dans le zip que tu m'as envoyé, cette instruction n'était pas corrigée !

remplace la ligne par

Set wbk = Workbooks.Open(ThisWorkbook.Path & "\" & fichier)

et dis moi si c'est ok

J'ai fait un test, c'est ok pour moi !!! j'ai remis à zéro auparavant les valeurs pour bien vérifier le bon fonctionnement.

capture d ecran 618

Oui en fait je t'avais envoyé l’ancien dossier zip mais je l'avais modifié,

Dans Tab 2, quand tu rentres des valeurs dans la colonne juin,

Et que tu modifies la date de D1 dans Tab 1, et que tu mets "=FIN.MOIS(A1;-10)+1" pour que ça tombe sur juin,

Est-ce que les valeurs dans Tab 1 se mettent à jour automatiquement,

Je m’excuse vraiment je sais que tu dois être très occupé, mais je n'arrive pas à le faire tout seul et personne dans mon entourage, même en entreprise ne maîtrise cela.

Oui cela fonctionne

capture d ecran 619
4excel.zip (23.13 Ko)

Bonjour Steelson,

Je m’excuse, en fait je pense que c'est moi qui n'avais pas bien expliqué le besoin,

Pour détailler : Le Tab 2 c'est la source, les valeurs des cellules de cette dernière sont rentrées manuellement.

Le but, c'est que ces valeurs la soient copiées automatiquement dans les cases associées de Tab 1, sachant qu'on a une date qui change,

Donc la je suis sur Mai, les valeurs des cellules de la colonne Mai dans Tab 2, sont présent en parallèle dans les cellules Tab 1.

Quand je rentre des valeurs dans les cellules de la colonne Juin dans Tab 2 (donc manuellement), et que je change la date dans D1 "Tab 1" pour passer de Mai à Juin, les valeurs dans Tab 1 prennent celles rentrées manuellement dans Tab 2 dans la colonne Juin.

Je m’excuse encore une foie, parce que c'est de ma faute je n'ai pas bien présenté le besoin.

4 3 2 1

il faut trouver une solution pour que les données du tableau 1 soient rentrées de manière automatique dans le tableau 2.

... donc en effet on change de sens ... je regarde

voici

Option Explicit
Sub deverser()
Dim ws As Worksheet, fichier As String, mois As Date, wbk As Workbook, trouve As Range, col As Integer
    Set ws = ActiveSheet
    fichier = "Tab 2.xlsx"
    mois = Range("D1").Value
    Set wbk = Workbooks.Open(ThisWorkbook.Path & "\" & fichier)
    wbk.Activate
    Set trouve = Rows(8).Find(mois)
    If Not trouve Is Nothing Then
        col = trouve.Column
        With ws
            .Range("B11") = Cells(9, col)
            .Range("B10") = Cells(10, col)
            .Range("B4") = Cells(13, col)
            .Range("B5") = Cells(14, col)
            .Range("B7") = Cells(17, col)
        End With
    Else
        MsgBox "Mois non trouvé !"
    End If
    ActiveWorkbook.Close SaveChanges:=False
End Sub
1tab-1.xlsm (18.02 Ko)

Steelson,

Je te remercie du fond du cœur, je pense qu'on tient un truc.

Je prends la main à présent, je vais essayer d'implémenter ça sur un truc un peu plus gros.

Encore désolé j’explique mal parfois et je te souhaite le meilleur.

Merci pour ce retour

Rechercher des sujets similaires à "liaison deux fichiers prenant compte changement date"