Tableau filtré et référence de cellule
je viens demander de l'aide sur un point que je ne comprends pas.
j'ai le tableau ci-joint qui va chercher des données sur le site de l'INSEE et les intègre dans une feuille "INSEE". ça marche très bien (après avoir cherché le forum).
Je voudrais maintenant sur la feuille "REVISION" faire remonter un certain nombre d'informations à partir du tableau nommé dans la feuille INSEE.
Je souhaite voir apparaitre :
le dernier mois d'indice publié et son indice;
le mois travaux si il est publié et son indice;
Vu que le tableau en feuille INSEE a toujours la même structure, je pensais (par lacune technique en vBA) que je pourrais faire remonter l'info dans la feuille REVISION en utilisant un simple "M5= INSEE!Z4" puisque le dernier mois publié sera toujours à cet endroit.
Sauf que lorsque je lance ma macro, la formule INSEE!Z4 devient "=INSEE!Z80" (soit la première ligne en dehors de la plage nommée).
Je suppose que cela vient du fait qu'il y a un filtre sur le tableau nommé en feuille INSEE mais je comprends pas comment faire pour résoudre le souci.
J'ai donc besoin d'un coup de main :)
merci par avance pour votre aide
Bonsoir David,
Il suffit d'utiliser la fonction DECALER() je pense
En M5
=DECALER(INSEE!Z$1;3;0)
@+
Merci Bruno ! Bien entendu ça fonctionne
J'ai donc la solution pour mon mois travaux et indice qui sont toujours en Z4 et AA4.
Question bête : pour mon second mois à chercher ainsi que son indice, est ce que je dois utiliser une fonction combinant EQUIV et DECALER ?je vais essayer comme ça, voir ce que ça me retourne.
Merci pour ce coup de main :)
N'arrivant pas à faire une recherche sur le tableau structuré, je me suis dit que j'allais faire sauter la structure, tout transformer en plage et que peut-être cela me faciliterait la tâche mais....non ça ne fonctionne toujours pas pour rechercher dans la feuille "INSEE", le mois des travaux indiqué dans la feuille "REVISION" en M1.
J'ai essayé de passer la formule RECHERCHEV dans une cellule avec Formula="=.... et j'ai essayé aussi avec la fonction VLOOKUP comme ceci :
.Range("AH2") = Application.WorksheetFunction.VLookup(.Range("AF1").Value, Sheets("INSEE").Range("Z:AA"), 2, False)
mais rien à faire, ça ne veut pas fonctionner et j'avoue que je suis un peu perdu malgré les lectures des différents articles et réponses sur le forum.
Bonjour David,
Voici le fichier modifié avec la bonne formule, j'espère que c'est ce que tu cherches
Car j'avoue que je suis perdu également
Comme tu es en Office 2013, autant mettre la bonne extension au fichier : ".xlsm"
@+
Merci Bruno j'ai trouvé :)
Private Sub Worksheet_Activate()
With Sheets("INSEE")
Dim Site As String, Sht As Worksheet
Dim Idbank As String
Dim NomTab As String
Dim mTravaux As String
Dim DerMois As String
Dim DerIndice As String
Dim iTravaux As String
Idbank = Sheets("DONNEES").Range("A1").Value
If .Range("AG1") = "" Then
.Range("AG1").Value = "OUI"
Site = "https://bdm.insee.fr/series/sdmx/data/SERIES_BDM/" & Idbank
Application.DisplayAlerts = False
ThisWorkbook.XmlImport URL:=Site, ImportMap:=Nothing, Overwrite:=True, _
Destination:=.Range("A3")
.Range("AF1").Value = "=REVISION!A2"
.Range("AF2").Value = "=REVISION!M1"
NomTab = Worksheets("INSEE").ListObjects(1).Name
.ListObjects(NomTab).Unlist
mTravaux = WorksheetFunction.VLookup(.Range("AF2"), .Range("Z:AA"), 2, 0)
DerMois = .Range("Z4").Value
DerIndice = .Range("AA4").Value
iTravaux = WorksheetFunction.VLookup(.Range("AF2"), .Range("Z:AA"), 2, 0)
Sheets("REVISION").Range("M5").Value = DerMois
Sheets("REVISION").Range("N5").Value = mTravaux
Sheets("REVISION").Range("O5").Value = DerIndice
je n'avais pas déclaré de variables !
L'apprentissage est laborieux pour moi :) le code est sans doute largement améliorable mais pour le moment il rempli son office.
merci en tout cas et bonne soirée
Re,
Tu regarderas mon fichier au post précédent que j'ai déposé entretemps
@+
la formule que tu as ajouté me plait bien !
je vais regarder à tête reposée par ce qu'après j'ai trois cas possible de révision :
des fois c'est sur le dernier indice connu (ou l'indice du mois travaux si il est connu au moment où on fait le calcul;
des fois c'est uniquement si l'indice du mois travaux est connu
et des fois c'est sur le dernier indice connu mais on corrige quand on a l'indice du mois travaux
Tu as raison le If ne sert à rien ! je vais le retirer.
Merci !!