Bonjour le Forum
Je réalise plusieurs importations de données de plusieurs fichiers .txt par macro selon le code suivant
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
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.
J'attends votre choix et conseils éclairés. 😀
Merci d'avance
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"
...
Code:
TableCourante = ActiveSheet.QueryTables(1).Name
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
Code:
ActiveSheet.Range(TableCourante).Range(Cells(14, 3), Cells(26, 3)).Insert Shift:=xlDown
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.
J'attends votre choix et conseils éclairés. 😀
Merci d'avance