OVH Cloud OVH Cloud

Insérer le contenu d'une cellule à l'intérieur d'une formule

5 réponses
Avatar
troesler
Bonjour =E0 tous
J'ai un probl=E8me qui n'a pas l'air difficile =E0 r=E9soudre et sur
lequel je m'arrache pourtant les cheveux...

dans la colonne A, sont inscrits tous les noms de fichiers contenus
dans un de mes dossiers( A1=3DcomptesEDF.xls, A2=3DcomptesGDF.xls, etc...)
et dans la colone B2, je voudrais mettre le contenu de la cellule C6 de
chaque fichier de la colonne A.
pour r=E9sumer, si en A1 j'ai "comptesEDF.xls", en B1 je veux la cellule
C6 du fichier comptesEDF.xls

Je connais une formule : =3D'c:\comptes\[comptesEDF.xls]feuil1'!C6

Elle marche bien, mais je voudrais ne pas avoir =E0 taper le nom du
fichier entre [ ] ) chaque fois, puisqu'il est dans la colonne A

Je voudrais une formule du genre : =3D'c:\comptes\[A1]feuil1'!C6 , mais
=E7a ne fonctionne pas

Quelqu'un aurait-il une solution pour ins=E9rer la valeur d'une cellule
dans une formule?

Merci d'avance pour vos r=E9ponses

Troesler

5 réponses

Avatar
Mima
Bonjour
en A1, le nom du fichier
en B1, le nom de la feuille
en C1, la cellule à renvoyer

dans la cellule destination
=INDIRECT("'["&A1&"]" &B1&"'!"&C1)
Attention aux guillemets avant le " [ " et avant le " ! "
Le fichier dont le nom est en A1 doit être ouvert...


"troesler" a écrit dans le message de news:

Bonjour à tous
J'ai un problème qui n'a pas l'air difficile à résoudre et sur
lequel je m'arrache pourtant les cheveux...

dans la colonne A, sont inscrits tous les noms de fichiers contenus
dans un de mes dossiers( A1=comptesEDF.xls, A2=comptesGDF.xls, etc...)
et dans la colone B2, je voudrais mettre le contenu de la cellule C6 de
chaque fichier de la colonne A.
pour résumer, si en A1 j'ai "comptesEDF.xls", en B1 je veux la cellule
C6 du fichier comptesEDF.xls

Je connais une formule : ='c:comptes[comptesEDF.xls]feuil1'!C6

Elle marche bien, mais je voudrais ne pas avoir à taper le nom du
fichier entre [ ] ) chaque fois, puisqu'il est dans la colonne A

Je voudrais une formule du genre : ='c:comptes[A1]feuil1'!C6 , mais
ça ne fonctionne pas

Quelqu'un aurait-il une solution pour insérer la valeur d'une cellule
dans une formule?

Merci d'avance pour vos réponses

Troesler
Avatar
troesler
Merci pour ta réponse Mima

Le souci que j'ai, c'est que je ne peu pas ouvrir tous les fichiers
dont une cellule doit etre copiee, car j'ai 600 classeurs differents...

Y a-t'il une autre méthode en laissant mes classeur fermés?

Merci pour vous réponses
Avatar
Mima
Désolé, je ne sais pas....

"troesler" a écrit dans le message de news:

Merci pour ta réponse Mima

Le souci que j'ai, c'est que je ne peu pas ouvrir tous les fichiers
dont une cellule doit etre copiee, car j'ai 600 classeurs differents...

Y a-t'il une autre méthode en laissant mes classeur fermés?

Merci pour vous réponses
Avatar
Mima
Après recherche, une solution à traiter par macro
-1) dans la feuille de calcul, creer les chemins par la formule donnée
ci-dessous completté du nom du lecteur
en A1, le nom du fichier avec chemin complet et nom de la feuille
en B1, la cellule à renvoyer
en C1, la formule suivante : ¡&B1
Dérouler la formule pour autand de fichier que nécessaire et utiliser la
macro suivante
Ensuite dans un module :
Sub CreerAdresse()
Dim Compt As Integer
Dim Adr As String
Application.DisplayAlerts = False
For Compt = 1 To Application.CountA(Sheets(Feuil1.Name).Range("A:A"))
Range("C" & Compt).Copy
Range("D" & Compt).PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= False, Transpose:úlse
Adr = Range("D" & Compt).Text
Application.CutCopyMode = False
Range("D" & Compt).Formula = "=" & Adr '& Mid(Adr, 1, Len(Adr))
Next
Application.DisplayAlerts = True
End Sub


"troesler" a écrit dans le message de news:

Merci pour ta réponse Mima

Le souci que j'ai, c'est que je ne peu pas ouvrir tous les fichiers
dont une cellule doit etre copiee, car j'ai 600 classeurs differents...

Y a-t'il une autre méthode en laissant mes classeur fermés?

Merci pour vous réponses
Avatar
troesler
Merci Mima!

ça a l'air de fonctionner! et pour ceux que ça interesse, j'ai aussi
trouvé une autre méthode qui marche, sans passer par VBA....

- dans colonne A : tous les noms des fichiers (en A1 :
nom_de_fichier1.xls etc...)

- dans cellule B1 on tape : ="='c:["&A1&"]feuil1'!$C$6" si c'est
la cellule C6 qu'on veut extraire de chaque fichier de la colonne A...

- ensuite on deroule la formule dans la colonne B, ce qui va inscrire
dans la cellule B1 la valeur suivante :
='c:[nom_de_fichier1]feuil1'!$C$6

- puis on copie la colonne B, qu'on va coller dans la colonne C, en
utilisat le collage spécial : on clique avec le bouton droit sur la
colonne C , collage spécial, on choisi "valeurs"

Le tour est presque joué : excel affiche la fomule sans l'appliquer,
et la seule méthode que j'ai trouvée est : on se place dans la
cellule C1 et on fait F2 puis Entrée puis F2 puis Entrée et ainsi de
suite...

Donc quand y'a 500 fichiers c'est vite chiant, mais ça marche!!

Si quelqu'un aurait une solution pour que excel applique directement la
formule au collage ...