Will-e-coyote
XLDnaute Occasionnel
Bonsoir,
J'ai un tableur sur lequel figure plusieurs connexions de données externes (format texte) donc sur plusieurs feuilles...
Afin de me simplifier certains calculs, j'ajoute, sur les feuilles ou les connexions de données se déversent, des colonnes de formules que je veux mettre à jour à chaque fois que je rafraichi la connexion concernée (et uniquement elle). Le but étant d'augmenter ou de réduire les nombre de lignes de ces formules en fonction de la taille du fichier importé.
Pour ce faire, je ne lance pas la MAJ par l'interface Excel, mais par VBA. (Thisworkbook.connections(x).Refresh)
Mon problème est que je ne trouve pas le moyen de trouver simplement sur quelle feuille se trouve la connexion rafraichie afin d'y mettre à jour les formules.
Actuellement je parcoure l'ensemble des feuilles jusqu'à trouver la bonne :
Je ne trouve pas le moyen d’accéder au nom de la feuille plus simplement... Une idée ? (Ma procédure fonctionne très bien mais je pense qu'il y a plus Sioux !)
Par avance, merci !
PS : Ma procédure MàJ_Formules,en plus, copie-colle en valeur le résultat des formules afin d'accélerer Excel...Utile quand on ramène 40 000 Lignes et plus sur plusieurs connexions... Dailleurs merci 'Crosoft pour le format xlsb...
J'ai un tableur sur lequel figure plusieurs connexions de données externes (format texte) donc sur plusieurs feuilles...
Afin de me simplifier certains calculs, j'ajoute, sur les feuilles ou les connexions de données se déversent, des colonnes de formules que je veux mettre à jour à chaque fois que je rafraichi la connexion concernée (et uniquement elle). Le but étant d'augmenter ou de réduire les nombre de lignes de ces formules en fonction de la taille du fichier importé.
Pour ce faire, je ne lance pas la MAJ par l'interface Excel, mais par VBA. (Thisworkbook.connections(x).Refresh)
Mon problème est que je ne trouve pas le moyen de trouver simplement sur quelle feuille se trouve la connexion rafraichie afin d'y mettre à jour les formules.
Actuellement je parcoure l'ensemble des feuilles jusqu'à trouver la bonne :
Code:
ThisWorkbook.Connections(1).Refresh
On Error Resume Next
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.QueryTables(1).WorkbookConnection.Name = ThisWorkbook.Connections(1).Name Then
If Feuille.QueryTables.Count > 0 Then
Call MàJ_Formules(Feuille.Name)
Exit For
End If
End If
Next Feuille
Je ne trouve pas le moyen d’accéder au nom de la feuille plus simplement... Une idée ? (Ma procédure fonctionne très bien mais je pense qu'il y a plus Sioux !)
Par avance, merci !
PS : Ma procédure MàJ_Formules,en plus, copie-colle en valeur le résultat des formules afin d'accélerer Excel...Utile quand on ramène 40 000 Lignes et plus sur plusieurs connexions... Dailleurs merci 'Crosoft pour le format xlsb...