Récupération de données via un fichier Excel fermer

Bonjour;

après plusieurs heures de recherche sur divers forums etc . je n'ai pas trouvé une solution à mon problème...

Je vous explique en détail :

j'ai créé un joli fichier excel avec plein de macro ...

Et j'ai une jolie macro qui va vérifier si mon ordinateur est bien connecté à mon serveur ( voici le code) :

mon module :

Function ServeurOK(ByVal strCheminBase As String) As Boolean
  Dim strFichier As String

  On Error Resume Next
  strFichier = Dir(strCheminBase)
  ServeurOK = (Err.Number = 0)
End Function

Dans mon Userform : ( pour l'affichage dans mon userform )

Private Sub UserForm_Initialize()

If ServeurOK("\\172.16.1.2\Tartenpion\") Then 'Chemin d'accès à un dossier de mon serveur 
        Source.Label11.Caption = "Connectée"
        Sourc.Label11.ForeColor = &HC000&   'vert

    Else
        Sourc.Label11.Caption = "NON CONNECTEE"
        Sourc.Label11.ForeColor = &HFF&    'rouge
End If

Voilà mon script fonctionnel plutôt pas mal ( Test effectuer en VPN, en local, etc . )

Mais j'ai un petit problème ... Voilà maintenant que je sais que ma connexion est opérationnelle entre mon serveur et mon fichier je souhaiterais pouvoir récupérer une valeur automatiquement qui se trouve dans un autre fichier excel ...

Descriptif :

Mon classeur actuel lance l'Userform automatiquement appelé source, mon label11 devient vert ( Par chance je suis connecté à mon serveur) et direct je récupère dans un fichier2 une valeur ( sans perturber mon utilisateur)

Exemple :

j'ouvre Fichier1 mon userform se lance ( déjà créer et opérationnelle)

Détection du serveur ( Opérationnelle)

Mise à jour de ma cellule dans mon classeur actif onglet configuration cellule F6 suivants la cellule D25 de mon fichier SourceCT qui est au chemin \\172.16.1.2\Toto\SourceCT.xls dans l'onglet configuration ( non opérationnelle)

Merci beaucoup pour vos réponses

Et si vous voulez un petit fichier exemple je pourrais le faire mais cela prendra un peu de temps histoire de le mettre vierge

Bonjour,

Je me permet de remonter un peu le sujet car j'ai encore essayer de chercher mais rien

bonjour

avec Excel, je ne teste rien ! et surtout pas avec VBA

pour récupérer des valeurs sur un autre xlsx sur un serveur, je n'ai que des copier/coller avec liaison ou des = ou des SOMMEPROD()

si la liaison n'est pas opérationnelle,, Excel te met un message.

Bonjour,

Je fait un retour de mes recherches ( Après un dur labeur et une recherche de logique ) j'ai trouver une solution :

' Test de la disponibilité du serveur 
If ServeurOK("\\192.168.0.10\toto\") Then
        Bordereau.Label11.Caption = "Connectée"
        Bordereau.Label11.ForeColor = &HC000&   'vert

' Si disponible 

' Affiche la feuille configurations de mon fichier 

Sheets("Configurations").Visible = xlSheetVisible

' Récupère le nom du fichier ( pour prévenir des éventuelle changement de nom( La cellule prend le nom au démarrage de la feuille 
nom = Sheets("Configurations").Range("D15")

    Dim sFichier As String 'chemin du fichier source
    Dim oWBSource As Workbook 'fichier source
    Dim NameFichier As Workbook

    'chemin du fichier source
    sFichier = "\\192.168.0.10\toto\Base.xlsx"

    'vérif si le fichier existe 
    If Dir(sFichier) = "" Then
        MsgBox "Fichier absent : " & vbCrLf & sFichier, vbExclamation
        Exit Sub
    End If

    'ouverture du fichier source  en lecture seule
    Set oWBSource = Workbooks.Open(sFichier, , True)
    ' Récupération de la valeur de la Base de données

Vartest = Workbooks("Base.xlsx").Sheets("Configurations").Range("D13")
' Ma valeur est récupérer dans mon fichier en cellule D11
Workbooks(nom).Sheets("Configurations").Range("D11") = Vartest

Workbooks("Base.xlsx").Close False

End If

Dim Serveur As Integer
Dim fichier As Integer

' Petite comparaison entre les deux base de donnée

Serveur = Sheets("Configurations").Range("D9")
fichier = Sheets("Configurations").Range("D11")
'****************** Pas Fini ***************************************
'If Serveur <> fichier Then
'        Bordereau.Label13.Caption = "Merci de mettre à jour ! "
'        Bordereau.Label13.ForeColor = &HC000&   'vert
'
'
'End If

' Et on recache les fichiers 

        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name <> "ACCUEIL" Then Ws.Visible = xlSheetVeryHidden
        Next Ws

End Sub

Voila ma solution si des personnes on besoins à l'avenir

Rechercher des sujets similaires à "recuperation donnees via fichier fermer"