Récupérer Valeur d'une cellule d'un autre fichier

Bonjour,

Je suis en train de créer un fichier pour y récupérer des informations afin de les traiter.

Ce fichier sera utilisé par plusieurs personnes .

La première des choses pour l'utilisateur sera de cliquer sur un bouton "Parcourir" qui comme vous pouvez le deviner importera un fichier de données (xls)

Seulement si la personne importe un fichier autre autre que celui qu'il faudrait il y aura un Gros Bug ce

que je veux éviter bien sur :

Dans les fichiers que l'on peut importer dans la cellule A1 de l'onglet "Sheet1" il y aura toujours le mot "poste"

Donc en ouvrant le fichier de données il faudrait vérifier si le mot "poste" est bien présent ...

J’utilise cette fonction pour ouvrir le fichier :

w = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _

, "", , False

J'arrive à récupérer l'info mais dans une cellule (pas bon) je voudrais simplement vérifier dans une condition mais je ne sais pas comment faire.

info= "=[" & nomfichier & "]Sheet1!$A1"

Pourriez vous m'aider ?

Merci

Eric

Salut Jefekoi,

Une idée, à tester : utiliser la méthode .find pour chercher le mot "poste", par exemple :

Set recherche = Workbooks("nom_fichier.xlsx").Worksheets("Sheet1").Range("A1:AZ100").Find(What:="poste")

Puis vérifier son existence :

If recherche Is Nothing Then Exit Sub

Bonne soirée

Baboutz

Merci pour ton aide

En brut CA marche

mais si je modifie Workbooks("2802.xls") par Workbooks(nomfichier)

il me fait une erreur "L'indice n'appartient pas à la sélection"

tmpStr = Split(w(1), "\")

nomfichier = tmpStr(UBound(tmpStr))

Set recherche = Workbooks("2802.xls").Worksheets("Sheet1").Range("A1:AZ100").Find(What:="poste")

À quoi correspond w(1) ?

As-tu essayé de faire

MsgBox nomfichier

afin de vérifier qu'il soit bien égale à "2802.xls" ?

EDIT : J'ai un vague souvenir, mais il faut peut-être rajouter les guillemets dans la variable

nomfichier = """" & tmpStr(UBound(tmpStr)) & """"

Voici le résultat en image

capture

Set monWB = ActiveWorkbook

w = Application.GetOpenFilename("fichier excel (*.xls), *.xls", , "Sélection de vos fichiers excel", , True)

tmpStr = Split(w(1), "\")

nomfichier = """" & tmpStr(UBound(tmpStr)) & """"

MsgBox nomfichier

Set recherche = Workbooks(nomfichier).Worksheets("Sheet1").Range("A1:A2").Find(What:="poste")

En cliquant sur Débogage, quelle est la ligne pointée ?

Set recherche = Workbooks("nomfichier").Worksheets("Sheet1").Range("A1:A2").Find(What:="poste")

j'ai essaye de cette manière et ça ne marche pas plus

Set recherche = Workbooks(nomfichier).Worksheets("Sheet1").Range("A1:A2").Find(What:="poste")

Que t'affiches la MsgBox sans

nomfichier = """" & tmpStr(UBound(tmpStr)) & """"

Mais avec juste

nomfichier = tmpStr(UBound(tmpStr))

As-tu le bon nom de fichier ? Avec la bonne extension ?

Rien y change toujours la même erreur

Oui pour le nom importé c'est correct

Je crois qu'en fait c'est pas possible s'il est fermé...

Essayons autre chose, à mettre avant la méthode find :

Dim Engin As Workbook
Set Engin = Application.Workbooks.Open("CHEMIN\Nom_Classeur.xlsx")

Et à la fin, on referme le fichier excel

Engin.Close

Avant de faire ton test j'ai essayé un truc et ça marche si je ne met pas le set

rechercher = Workbooks(nomfichier).Worksheets("Sheet1").Range("A1:A2").Find(What:="poste")

MsgBox rechercher

Resultat = poste

Ton truc fonctionne très bien

Dim Engin As Workbook

Set Engin = Application.Workbooks.Open(w)

rechercher = Workbooks(nomfichier).Worksheets("Sheet1").Range("A1:A2").Find(What:="poste")

MsgBox rechercher

Engin.Close

Mais il est un bête de l'ouvrir avant de l'ouvrir lol

Mais il est un bête de l'ouvrir avant de l'ouvrir lol

Oups, à force je me suis perdu

Avant de faire ton test j'ai essayé un truc et ça marche si je ne met pas le set

Ohhh bien vu ! Du coup, tu as réussi à coder ce que tu voulais ?

Re

Finalement je charge le fichier et il vérifie si il peut continuer le traitement ou pas

Ce qui revivent au même truc que tu m'as donné

Merci pour ton aide

Okay, content que tu es réussi ce que tu voulais

Bonne soirée !

Baboutz

Voila finalement j'ai fait comme ceci :

fName = Application.GetOpenFilename("Excel Files (*.xls), *.xls")

tmpStr = Split(fName, "\")

nomFichier = tmpStr(UBound(tmpStr))

Application.ScreenUpdating = False

Workbooks.Open (fName)

If Workbooks(nomFichier).Sheets(1).[A1] <> "poste" Then MsgBox "Votre fichier n'est pas valide": fName = "Faux"

Windows(nomFichier).Visible = True

Workbooks(nomFichier).Close

If fName = "Faux" Then End

En gros il ouvre le fichier mais il ne l'affiche pas

Rechercher des sujets similaires à "recuperer valeur fichier"