Comment remplacer la fonction indirect pour un fichier fermé ?

Rapsodys

XLDnaute Nouveau
Bonjour a tous,

Je viens discuter avec vous de la démarcation des produit hautement technologique dans un marché mondial qui s’essouffle !

Comment ça ce n'est pas le sujet du forum ??

Plus sérieusement je me permet de venir vous demander de l'aide et quelques conseils, car étant débutant en VBA j'ai un peu de mal ....

Mon probléme est assez simple, je souhaiterias utiliser la fonction INDIRECT pour aller rechercher de l'information ( le contenue d'une cellule) dans un classeur fermé.

J'entend déja tout les maitres du forum crier a l'heretique et me promettre le bucher car ce que je demande est impossible ! Ne vous en faites pas, je le sais ^^ ! J'ai fait quelque recherche et je suis méme passé par toutes les FAQ du net (Waaaaaaaaaa).

Je travaille actuellement sur Excel 2007 et j'utilise le code trouvé dans une FAQ :

Code :
Code:
Function LireCellule_ClasseurFerme( _
        Chemin As String, _
        Fichier As String, _
        Feuille As String, _
        Cellule As Variant) As Variant
 
    Application.Volatile
 
    Dim Source As Object, Rst As Object, ADOCommand As Object
    Dim Cible As String
 
    Feuille = Feuille & "$"
    Cible = Cellule.Address(0, 0, xlA1, 0) & ":" & _
        Cellule.Address(0, 0, xlA1, 0)
 
    Set Source = CreateObject("ADODB.Connection")
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Chemin & "\" & Fichier & _
        ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
    Set ADOCommand = CreateObject("ADODB.Command")
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cible & "]"
    End With
 
    Set Rst = CreateObject("ADODB.Recordset")
    '1 = adOpenKeyset, 3 = adLockOptimistic
    Rst.Open ADOCommand, , 1, 3
    Set Rst = Source.Execute("[" & Feuille & Cible & "]")
 
    LireCellule_ClasseurFerme = Rst(0).Value
 
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End Function

je vois deja les sourires ce formé sur les visages, car oui, ce code ne marche pas sous exel 2007, du moins pas avec les extentions .Xlsm, j'ai fait le test avec des fichier .xls, ca marche impec !
J'ai bien essayé de changer l'Extended Properties mais sans résultats probant, mis a par que ca ne marchais plus sur aucune des deux extensions ......

Quelqu'un pourrait'il eclairer ma lanterne ?

J'ai 200 cellules a remplir grâce a cette superbe fonction, seulement ça rame .....

J'utilise donc une macro empêchant le calcul auto de la page, car j'ai absolument besoin du calcul auto dans les autres classeurs sur lesquels je travail.

le code que j'utilise est le suivant :


Code :
Code:
Sub Workbook_Open()
Worksheets("Etat_actions").Activate
 
Dim i As Integer
 
For i = 1 To ThisWorkbook.Sheets.Count
 
Sheets(i).EnableCalculation = False
 
Next i
 
end sub
et je met a la feuille a jour avec un bouton dont le code est le suivant :


Code :
Code:
Sub miseajour()
 
ActiveSheet.EnableCalculation = True
ActiveSheet.Calculate
ActiveSheet.EnableCalculation = False
 
End Sub

Pour l'instant ça fonctionne, ça rame a la mise a jour et a l’ouverture, mais ça ne rame qu'a se moment la, donc c'est acceptable....

Maintenant si quelqu'un a mieux, je prend, mais je le redit, je débute, donc pour le moment je trifouille des codes trouver a droite a gauche et j'utilise l'enregistreur de macro mais c un peu prés tout !

Je peux sans problème joindre les fichier pour ceux qui voudrais y regarder de plus prés !

Merci d'avance pour votre aide et bonne journée a tous !

Rhapso
 

david84

XLDnaute Barbatruc
Re : Comment remplacer la fonction indirect pour un fichier fermé ?

Bonsoir,
tu peux regarder ce lien qui t'explique comment faire.
Tu y verras notamment que Extended Properties=Excel 8.0 est utilisé pour les versions d'Excel 97, 2000 et 2002, mais pas pour la version 2007 (12.0).
A+
 

Rapsodys

XLDnaute Nouveau
Re : Comment remplacer la fonction indirect pour un fichier fermé ?

Bonjour a tous,

Voila deux jour que je bataille pour mettre a jour mes cellules mais sans résultat, impossible de faire marcher ma fonction ........ et j'ai pourtant suivit tout vos conseils mais un truc doit m’échapper !

Quelqu'un pourrais t'il m'aider ?? please !
 

Discussions similaires

Réponses
2
Affichages
99

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG