XL 2019 Référence à un tableau d'un autre fichier

litelsousa

XLDnaute Occasionnel
Bonjour,

Je ne comprend pas tout à fait mon soucis:

Sur un fichier (fichier 2), j'ai un tableau qui va chercher des données dansle tableau d'un autre fichier (fichier 1).
Les données recherchée n'étant pas dans la 1ère colonne, je n'utilise pas la fonction rechercheV, mais cette formule:

=INDEX(fichier'!Tableau[#Données];EQUIV($A9;INDEX('fichier'!Tableau[#Données];EQUIV($A9;'Fichier'!Tableau [Nom colonne];0);numéro colonne)'!Tableau[Nom colonne];0);numéro colonne)
ça marche très bien.

Mon soucis est qu'il faille obligatoirement que les deux fichiers soient ouverts, sinon toutes les cellules du tableau du fichier 2 me donnes #REF! comme résultat.
Le chemin du fichier reste juste, il suffit que le fichier que j'ouvre le fichier 1 et tout se met à jour.

Merci pour votre aide.
 

Pièces jointes

  • 1.xlsm
    47.6 KB · Affichages: 6
  • 2.xlsx
    74.1 KB · Affichages: 3

cathodique

XLDnaute Barbatruc
Bonjour @litelsousa , le forum,

Je pense qu'il faudrait utiliser le modèle ADO que je ne maîtrise pas du tout, hélas!
J'ai ouvert tes 2 fichiers,
Sur le 2.xlsx, évite d'utiliser les caractères accentués dans les entêtes de titre des colonnes. Ils sont sources d'erreurs.
Sur le 1.xlsm, ta formule fait références à la colonne [Données], alors qu'elle n'existe pas.
=RECHERCHEV([Identifiant réseau];'C:\Users\DELL\Desktop\Fichier Fermé VBA\2.xlsx'!Tableau1[#Données];2;FAUX)
Si ça t'interesse, je te joins un fichier tuto du modèle ADO en pdf récupéré du site developpez.com.

Bonne journée.
 

litelsousa

XLDnaute Occasionnel
Merci bien,

J'ai supprimé tous les accents → Rien ne change
Tableau1[#Données] → ça vient automatiquement pour qu'il prenne tous le tableau.

Quand mes 2 fichiers sont ouverts, le chemin complet dans la formule est enlevé. Il reste uniquement le nom du fichier...

Qu'est-ce que c'est le ADO?, jamais entendu, le fichier modèle m'intéresse… toujours sympa de découvrir de nouvelle chose.
 

cathodique

XLDnaute Barbatruc
Merci bien,

J'ai supprimé tous les accents → Rien ne change
Tableau1[#Données] → ça vient automatiquement pour qu'il prenne tous le tableau.

Quand mes 2 fichiers sont ouverts, le chemin complet dans la formule est enlevé. Il reste uniquement le nom du fichier...

Qu'est-ce que c'est le ADO?, jamais entendu, le fichier modèle m'intéresse… toujours sympa de découvrir de nouvelle chose.
Oups! désolé. J'étais occupé. D'après le document, ça sert à lire et écrire un fichier fermé. Mais pas supprimé des lignes.
Plusque ça fonctionne en ouvrant le fichier source. Il ne te restes plus qu'à l'ouvrir en vba à partir de ton fichier xlsm. voici un procédure que tu peux appeler à partir du module thisworkbook
VB:
Private Sub Workbook_Open()
Call OuvertureDeFichier
End Sub
'''''ci-dessous dans un module standard
Sub OuvertureDeFichier()
'par Excel-Malin.com ( https://excel-malin.com )
On Error GoTo OuvertureFichierErreur
   Dim MonApplication As Object, MonFichier As String
   Set MonApplication = CreateObject("Shell.Application")
  
   MonFichier = ThisWorkbook.Path & "\2.xlsx" 'à remplacer par votre fichier
   MonApplication.Open (MonFichier)

Set MonApplication = Nothing
Exit Sub

OuvertureFichierErreur:
   Set MonApplication = Nothing
    MsgBox "Erreur lors de l'ouverture de fichier..."
End Sub
 

Pièces jointes

  • ClasseursFermes.pdf
    216.9 KB · Affichages: 3

litelsousa

XLDnaute Occasionnel
Merci,

Je vais utiliser ça.

Mais je trouve bizarre qu'avec la fonction RECHERCHEV il n'y a pas besoin que le fichier source soit ouvert mais que pour cette fonction il le faille… (tout comme je trouve dommage qu'avec RECHERCHEV on ne peut pas prendre de cellule à la droite de la formule)
 

cathodique

XLDnaute Barbatruc
Merci,

Je vais utiliser ça.

Mais je trouve bizarre qu'avec la fonction RECHERCHEV il n'y a pas besoin que le fichier source soit ouvert mais que pour cette fonction il le faille… (tout comme je trouve dommage qu'avec RECHERCHEV on ne peut pas prendre de cellule à la droite de la formule)
Pour RechercheV c'est plutot à gauche de la cellule que ça ne fonctionne pas.
RechercheV fonctionne de gauche vers le droite mais ne fonctionne pas dans le droit/gauche.
Pour pallier à ça, il faut utiliser Index et Equiv. Tu trouveras plein de tutos sur le net.
 

Discussions similaires

Statistiques des forums

Discussions
314 634
Messages
2 111 435
Membres
111 136
dernier inscrit
Ahmad Ibnou