Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je réalise plusieurs importations de données de plusieurs fichiers .txt par macro selon le code suivant
Code:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FichierChoisi, Destination:=Range(Position))
.Name = "DataImport"
...
Comme il peut y en avoir plusieurs zones d'importation sur la même feuille (ActiveSheet) !! XL les nomme successivement "DataImport, DataImport_1, DataImport_2, ... Lors de l'importation la macro récupère le nom de la dernière importation par
Code:
TableCourante = ActiveSheet.QueryTables(1).Name
NB, il m'a fallu un moment pour comprendre que la dernière table porte l'indice le plus bas!!!
Ensuite, la macro passe par une phase de nettoyage de la dite table et c'est là que je cale.
Je souhaite par exemple décaler des lignes 14 à 26 de la 3ème colonne dans la zone renvoyée par TableCourante"
Mais le code ci dessous ne fonctionne pas
C'est une histoire de savoir faire de la référence relative dans une plage nommée mais je ne trouve pas ni dans l'aide XL ni avec des mots clefs dans ce Forum et je sens bien qu'écrire .Range(...).Range(cells(..)) n'est pas trop bon 🙁
Mais il est peut être plus simple de travailler par rapport à la cellule "Position" qui est l'adresse de la cellule en haut à droite de la table importée, ce qui ne change rien car je m'adresse toujours au Range(Cells(14, 3), Cells(26, 3) par rapport à cette cellule.
Re : référence relative dans une plage nommée en VBA
Bonjour le Forum, Catrice
Merci d'avoir tenté une réponse mais j'ai peut être très mal formulé ma question.
Donc en la simplifiant au maximum, je souhaite savoir comment réaliser une insertion de cellules vides dans la 3ème colonne de la ligne 14 à la ligne 26 cela dans une plage nommée (par exemple "DataImport_3" et qui peut se trouver n'importe où dans la feuille.
Sachant que le code cidessous ne fonctionne pas
Re : référence relative dans une plage nommée en VBA
Bonjour,
ci-joint une solution à tester :
Code:
Sub Test()
Deb = 14
Fin = 26
Col = 3
'---------------------------
ActiveSheet.Range("DataImport_3").Offset(Deb - 1, Col).Resize(Fin - Deb + 1).Insert Shift:=xlDown
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD