Import de données dans un classeur ouvert sur un autre PC

Bonjour le forum,

Je reviens vers vous afin de résoudre une problématique sur laquelle je bloque depuis quelques temps

Je cherche régulièrement sur les forums, je n'ai pas trouvé de topic s’approchant de mon sujet, voilà pourquoi je le créé.

Situation :

Un ordinateur A affiche constamment un fichier Excel 1 d'ordonnancement pour organiser le travail du service en fonction de la capacité et de la charge.

Un ordinateur B fait tourner un fichier Excel 2 de création de charge.

Bien sûr, les ordinateurs A et B sont sur le même réseau.

Fonctionnement :

Le fichier Excel 2 doit transmettre la charge au fichier Excel 1.

Bricolage actuel :

Pour le moment j'ai mis en place un système fonctionnel qui ne me donne pas satisfaction à 100%.

Lorsque qu'une charge est créée sur le fichier Excel 2.

Le fichier Excel 2 transmet cette charge à un fichier Excel tampon et créé un fichier texte (.txt) dans le répertoire du fichier Excel tampon.

Le fichier Excel 1 fait tourner un macro de temporisation qui test la présence du fichier texte dans le répertoire du fichier Excel tampon. Lorsque le fichier Excel 1 trouve le fichier texte, la procédure de récupération de la charge dans le fichier Excel tampon est lancée et le fichier texte est détruis. Et bis repetita...

Ci-dessous le bout de macro du fichier Excel 2 qui envoie les données au fichier Excel tampon :

            
        'Partie pour envoyer etiquette dans logiciel ordo
        Dim chemin As String
        Dim ligo As Long
        Dim i As Currency
        Dim existe As Boolean

        chemin = "XXX\Tampon etiquettes.xlsx"
        Application.ScreenUpdating = False
        Workbooks.Open (chemin)
        Application.ScreenUpdating = True

        ligo = Workbooks("Tampon etiquettes.xlsx").Sheets("Etiquettes").Range("B1000").End(xlUp).Row + 1

            'Cette boucle permet de vérifier si l'étiquette n'est pas déjà présente dans le FIFO
            'Elle regarde s'il y a le même n° d'OF et de phase entre l'étiquette en cours d'édition et celles déjà 
            'présente dans le FIFO
            For i = 1 To ligo - 1

            If Workbooks("Tampon etiquettes.xlsx").Sheets("Etiquettes").Cells(i, 6).Value = donnees(ligne, 2) And 
            Workbooks("Tampon etiquettes.xlsx").Sheets("Etiquettes").Cells(i, 7).Value = donnees(ligne, 7) Then
            'L 'étiquette existe déjà dans le FIFO
            existe = True
            'On quitte la boucle
            Exit For
            Else
            'L 'étiquette n'existe pas dans le FIFO
            existe = False
            End If

            Next i

            'L'étiquette existe déjà dans le FIFO
            If existe = True Then
            'MsgBox "Il existe déjà une étiquette pour l'OF N° " & donnees(ligne, 2)
            Ncartes = Ncartes - 1
            SansCarte = SansCarte & Chr(10) & donnees(ligne, 2)

            'L'étiquette n'existe pas dans le FIFO
            'On l'ajoute dans le FIFO
            Else

            Workbooks("Tampon etiquettes.xlsx").Sheets("Etiquettes").Cells(ligo, 2) = donnees(ligne, 1) 'N° Affaire
            Workbooks("Tampon etiquettes.xlsx").Sheets("Etiquettes").Cells(ligo, 9) = Date 'Date impression

                If ligne = pos - 1 Then
                Set fs = CreateObject("Scripting.FileSystemObject")
                Set a = fs.CreateTextFile("XXX\Ordonnancement contrôle\Martin.txt", True)
                Else
                End If

            End If 

Ci-dessous la macro du fichier Excel 1 qui test la présence du fichier texte dans le répertoire du fichier Excel tampon et appelle la macro qui importe les données du fichier Excel tampon dans le fichier Excel 1 :

Sub Tempo()

'Programmation de l'évènement toutes les 10 minutes
Tps = Now + TimeValue("00:10:00")
Application.OnTime Tps, "Tempo"

'#On déclare le chemin d'acces
chemin = "XXX\Ordonnancement contrôle\Martin.txt"

'#Si la fonction Dir ne trouve rien la variable "cherche" reste vide.
cherche = Dir(chemin, vbSystem + vbDirectory + vbHidden)

If cherche <> "" Then
    'Affichage du message d'information durant que le programme tourne
    IMPORTET.Show (0)
    IMPORTET.Repaint
    Call Import
    'On cache le message d'information car le programme est terminé
    IMPORTET.Hide
    Call Calcul_charge
Else

End If

End Sub

Objectif visé :

J'aimerais que le fichier Excel 2 puisse modifier et enregistrer le fichier Excel 1 sans avoir à passer par un fichier tampon. En résumé, ouvrir une communication directe entre les deux fichiers.

Voilà le problème est posé, j'espère que quelqu'un pourra me proposer une solution efficace !

Je vous remercie par avance de vos réponses et du temps donné à mon sujet.

J'ai essayé de détailler au maximum le sujet, s'il manque des choses n’hésitais pas à me demander !

Calone Bastien

Bonjour,

Je pense que ce problème peut se résoudre avec des liens Access.

Dans la base de données Access, on peut définir une source de données de type fichier Excel.

C'est cette piste que je te propose de creuser pour faire ce lien direct entre tes deux fichiers.

J'ai fais des tests, ça fonctionne bien et c'est déjà plus sécurisant que mon fichier tampon...

Mais je dois changer certains mode de fonctionnement de mon application d'ordonnancement

Ne m'en veux pas, mais je vais laisser le sujet en non résolu, si jamais quelqu'un à une solution en liaison directe sans passer par Access !

Si personne ne répond je vais mettre en oeuvre le système avec Access

Je te remercie de m'avoir soumis cette idée fonctionnelle

Rechercher des sujets similaires à "import donnees classeur ouvert"