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...