vba : une rechechev dans un fichier de nom inconnu mais chemin unique

cookies

XLDnaute Occasionnel
Bonjour le Forum !

Je cherche à effectuer une sorte de recherchev en vba entre deux fichiers.
Un DECALER avec EQUIV permettait bien de faire cela mais avec en vba… pas facile
Voici ma problématique :

Soit deux fichiers Excel qu’on appellera PERE et FILS.

Le fichier PERE contient des adresses postales disons en colonne B.
Le fichier FILS contient ces mêmes adresses en colonne D ainsi qu’un numéro unique associé à cette adresse en colonne A.

L’objectif serait dans chaque cellule non vide (donc où il y a une adresse) de la colonne B du fichier PERE, chercher cette adresse dans le fichier FILS, récupérer le numéro associé (colonne A) du fichier FILS et copier ce numéro en colonne A dans le fichier PERE.

Contrainte : le fichier FILS je ne connais pas son nom mais je connais son chemin exact et c’est le seul fichier du répertoire.

J'ai commencé un code mais cela ne marche pas.
En pièce jointe une explication du problème et le code associé.

Merci pour votre aide
Cookies
 

Pièces jointes

  • récup4.xlsm
    22.5 KB · Affichages: 54

CHALET53

XLDnaute Barbatruc
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

Bonjour,

S ans plus d'infos sur le fichier Fils ,Pour retrouver et ouvrir le fichier fils

Remplacer : ActiveWorkbook.Path par le chemin exact (du style : rep = "D:\Toto\tata)

Sub essai()
rep = "C:\Users\ABP\Desktop\Extraction\"
Direction = Dir(rep & "\*.xls*")
nbfic = 0
While Direction > ""
nbfic = nbfic + 1
Nom_fic(nbfic) = Direction
Direction = Dir()
Wend

For x = 1 To nbfic ' Normalement nbfic =1
fg = Nom_fic(x)

Dim cpt As Integer
On Error Resume Next

WOuvert = False
' Parcours des classeurs ouverts
For Each Wkb In Workbooks
If Wkb.Name = fg Then
WOuvert = True
'MsgBox ("Le fichier " & fg & " est ouvert")
cpt = 1
Exit For
End If
Next Wkb
If cpt = 1 Then cpt = 0: GoTo suite
Chemin = rep & "\" & fg
Workbooks.Open Chemin
suite:

End Sub
 
Dernière édition:

cookies

XLDnaute Occasionnel
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

Ok. Merci pour ta réponse. j'ai pas tt suivi mais par exemple ce code marche pour ouvrir mon classeur "tata"
Comment ouvrir ce fichier sans connaitre son nom ?
Je sais par contre que c'est le seul classeur du répertoire Extraction

Je pense qu'il doit y avoir un * et un Dir qui va s'insérer non ?

Private Sub CommandButton1_Click()
ClassDest = "C:\Users\ABP\Desktop\Extraction\tata" & ".xls"
On Error Resume Next
Workbooks(ClassDest).Activate
If Err <> 0 Then
On Error Resume Next
Workbooks.Open (ClassDest)
End If
End Sub


Merci !
 

CHALET53

XLDnaute Barbatruc
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

Tu as essayé le programme ci-dessus :

J'ai remplacé ActiveWorkbook.Path par le chemin que tu m'as donné dans le dernier post
Copie ce code derrière le tien
et lance le programme

Si j'ai bien compris, tu ne connais pas le nom du fichier

C'est un fichier xls ou xlsm ?
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

Bonjour,

Cette fonction donne le nom du premier fichier .xls du répertoire spécifié.

Code:
Function NomFichierXLS(répertoire)
  NomFichierXLS = Dir(répertoire & "\*.xls")
End Function

JB
 
Dernière édition:

cookies

XLDnaute Occasionnel
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

Bonsoir,

J'avais essayé ton code Chalet53 mais il spécifie une erreur de compilation sur Nom_fic(nbfic) =
Je sais pas trop comment faire. C'est en effet un fichier xls dont le nom n'est pas connu. Mais c'es le seul fichier du répertoire.

Bonsoir Boisgontier, merci pour ton code. Cette fonction permet de récupérer le nom du fichier xls, as-tu une idée maintenant pour ouvrir ce fichier ?

Merci pour vos réponses
Bonne soirée
Cookies
 

CHALET53

XLDnaute Barbatruc
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

A partir de la formule de Boisgontier :

Tu mets dans la variable rep le nom du répertoire en respectant les "\" et le ":" derrière la lettre du répertoire
rep=......
Chemin = rep & "\" & NomFichierXLS
Workbooks.Open Chemin
 

cookies

XLDnaute Occasionnel
Re : vba : une rechechev dans un fichier de nom inconnu mais chemin unique

Bonjour,

Merci à tous les deux !
Voici donc le code pour ceux qui tombe sur le fil.

Pour résumer, ce code permet, à partir d'un classeur A, d'ouvrir un classeur B dont on ne connait pas le nom mais dont le chemin d'accès est connu et que ce classeur B est le seul fichier .xls du répertoire :
enlever "activeWorkbook.Close" à la fin si vous ne voulez pas qu'il se ferme ensuite.

Private Sub CommandButton4_Click()
repertoire = "C:\Users\Desktop\Extraction" 'votre chemin de répertoire
NomFichierXLS = Dir(repertoire & "\*.xls")
Chemin = repertoire & "\" & NomFichierXLS
Workbooks.Open (Chemin)
ActiveWorkbook.Close
End Sub

Merci et à bientot le foum !
Cookies
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2