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 pas par les FAQ (Waaaaaaaaaa).
Je travaille actuellement sur Excel 2007 et j'utilise le code trouvé dans la FAQ :
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 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 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
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 :
et je met a la feuille a jour avec un bouton dont le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 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
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....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub miseajour() ActiveSheet.EnableCalculation = True ActiveSheet.Calculate ActiveSheet.EnableCalculation = False End Sub
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
Partager