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