Determiner la derniere ligne d'un fichier excel et l'eliminer en Visual Basic 6.

Résolu
hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005 - 21 juil. 2005 à 11:49
hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005 - 22 juil. 2005 à 12:19
bonjour tout le monde, est ce que quelqu'un peut m'aider : j'ai besoin de determiner la derniere ligne d'un fichier excel pour la supprimer ( avec le code)
en fait je suis sencé automatiser l'import d'un fichier text et le mettre sous excel en eliminant la premiere, deuxieme et dreniere ligne; pour l'importer ensuite a la base de donnees access( ca, j'ai arrivé à le faire)
si quelqu'un peut m'aider je serai tres reconnaissant. et merci d'avance

7 réponses

hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005
22 juil. 2005 à 12:19
bonjour Molenn.
je vais essayer de t'eclaircir mon objectif : j'ai tes fichiers txt (contenant des colonnes) qui doivent être importés vers access pour les exploiter pour des statistiques; mais d'abord, je dois les traiter en enlevant certaines lignes(première; troisième et dernière) avec excel:
si je les traite manuellement avec excel j'otient le truc suivant qui justifie les champs.
.
Mon probleme alors est d'automatiser cette opération pour l'exploiter pour plusieurs autres fichiers.
j'ai utilisé une macro pour voire; mais elle s'adapte avec la taille du fichiers; et je ne sais pas s'il existe un truc pour le faire; la partie du code associé dans la ,acro est le suivant :
FieldInfo:=Array(Array(0, 1), Array(14 _
, 1), Array(27, 1), Array(39, 1), Array(49, 1), Array(59, 1), Array(69, 1), Array(79, 1), _
Array(89, 1), Array(99, 1), Array(109, 1), Array(119, 1), Array(129, 1), Array(139, 1), _
Array(149, 1), Array(159, 1), Array(169, 1), Array(179, 1), Array(190, 1), Array(200, 1), _
Array(210, 1), Array(220, 1), Array(230, 1), Array(240, 1), Array(250, 1), Array(260, 1), _
Array(270, 1), Array(280, 1), Array(292, 1), Array(302, 1), Array(314, 1), Array(328, 1), _
Array(338, 1), Array(348, 1), Array(358, 1), Array(369, 1), Array(382, 1), Array(396, 1), _
Array(406, 1), Array(419, 1), Array(433, 1), Array(447, 1), Array(461, 1), Array(471, 1), _
Array(481, 1), Array(491, 1), Array(501, 1), Array(511, 1), Array(521, 1), Array(531, 1), _
Array(541, 1), Array(557, 1), Array(573, 1), Array(591, 1), Array(603, 1), Array(615, 1), _
Array(629, 1), Array(647, 1), Array(657, 1), Array(669, 1), Array(679, 1), Array(689, 1), _
Array(701, 1), Array(711, 1), Array(721, 1), Array(731, 1), Array(743, 1), Array(755, 1), _
Array(767, 1), Array(784, 1), Array(804, 1), Array(819, 1), Array(839, 1), Array(849, 1), _
Array(859, 1), Array(869, 1), Array(879, 1), Array(889, 1), Array(899, 1), Array(909, 1), _
Array(919, 1), Array(929, 1))
Merci encore
3
hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005
21 juil. 2005 à 11:55
bonjour tout le monde, est ce que quelqu'un peut m'aider : j'ai besoin de determiner la derniere ligne d'un fichier excel pour la supprimer ( avec le code)
en fait je suis sencé automatiser l'import de plusieurs fichiers text dans un dossier et les mettre sous excel en eliminant la premiere, deuxieme et dreniere ligne; pour les importer ensuite a la base de donnees access( ca càd l'import à access, j'ai arrivé à le faire)
si quelqu'un peut m'aider je serai tres reconnaissant. et merci d'avance
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
21 juil. 2005 à 12:04
Si j'ai bien compris ce que tu dis :
Tu importes un fichier text dans Excel.
Tu supprimes 3 lignes (les 2 premières et la dernière)
Tu exportes ton résultat dans ACCESS

Suivant le contenu du fichier texte (si l'organisation est la même que les autres lignes), tu aurais peut être intérêt à l'importer directement dans ACCESS et ensuite, à supprimer les 2 premières lignes et la dernière, ce qui est très simple :
table.movefirst
delete...
table.movefirst
delete...
table.movelast
delete...


Si ce sont des entêtes de colonnes que tu veux enlever, dans les options d'Excel autrement, tu peux choisir de ne pas les importer si ma mémoire est bonne.


Sinon, il te reste la solution suivante :
POur les 2 premières lignes rien de bien compliqué, je suppose que tu y arrives.
Tu as choisi une cellule pour l'importation de ton fichier texte, tu connais donc le numéro des 2 premières lignes.
Si ta première ligne est par exemple la 10 :
Rows("10:11").Delete Shift:=xlUp


Il reste à déterminer la dernière ligne.
Le plus simple je pense est de créer une cellule (par exemple A1) avec comme formule :
=nbval(A10:A...) Tumets ici un chiffre suffisament grand pour couvrir ton fichier texte (tu sais qu'il y a environ 500 lignes, etc .. sinon, tu colles A32000 par exemple).
A condition bien sur que ton import de texte commence dans la colonne A ^^
Ca va te donner le nombre de lignes non vides.

Ensuite, pour déterminer la dernière ligne :
DernièreLigne=Range("A1").value + 10 - 1 (le 10 est le numéro de la ligne où tu importes la 1ère donnée)

Plus qu'à la supprimer elle aussi :
DernièreLigne = DernièreLigne & ":" & DernièreLigne
Rows(DernièreLigne).Delete Shift:=xlUp

Voilà.
Molenn
0
hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005
21 juil. 2005 à 14:08
merci, tu m'as donné de bonnes idées pour commencer; je m'excuse;d'abbord je voulais dire la première; la troisieme et la derniere ligne; mais ca revient au même. Voici la structure des fichiers .txt ( il y ad'autres avec 1600 lignes)


je vais essayer et te repondre si ca marche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005
21 juil. 2005 à 15:27
merci ca marche mnt j'ai pu eliminer la derniere ligne en utilisant le code suivant :
nbre_lignes = excel.ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
Rows(nbre_lignes).Delete Shift:=xlUp
0
hicham_a_t23 Messages postés 9 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 1 août 2005
21 juil. 2005 à 17:05
merci Molenn pour ton aide.

j'ai utilisé une macro pour determiner le code pour voire comment alligner les colonnes du fichier text (le truc text to columns de excel ) ; si vous avez une idee pour le parametrer ( le fichier text est sous forme de table avec des champs) . voici le code :
/* strResFolder = chemin du dossier ds la boite du dialogue*/
Workbooks.OpenText FileName:= _
strResFolder & " \cell_bh050707.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(14 _
, 1), Array(27, 1), Array(39, 1), Array(49, 1), Array(59, 1), Array(69, 1), Array(79, 1), _
Array(89, 1), Array(99, 1), Array(109, 1), Array(119, 1), Array(129, 1), Array(139, 1), _
Array(149, 1), Array(159, 1), Array(169, 1), Array(179, 1), Array(190, 1), Array(200, 1), _
Array(210, 1), Array(220, 1), Array(230, 1), Array(240, 1), Array(250, 1), Array(260, 1), _
Array(270, 1), Array(280, 1), Array(292, 1), Array(302, 1), Array(314, 1), Array(328, 1), _
Array(338, 1), Array(348, 1), Array(358, 1), Array(369, 1), Array(382, 1), Array(396, 1), _
Array(406, 1), Array(419, 1), Array(433, 1), Array(447, 1), Array(461, 1), Array(471, 1), _
Array(481, 1), Array(491, 1), Array(501, 1), Array(511, 1), Array(521, 1), Array(531, 1), _
Array(541, 1), Array(557, 1), Array(573, 1), Array(591, 1), Array(603, 1), Array(615, 1), _
Array(629, 1), Array(647, 1), Array(657, 1), Array(669, 1), Array(679, 1), Array(689, 1), _
Array(701, 1), Array(711, 1), Array(721, 1), Array(731, 1), Array(743, 1), Array(755, 1), _
Array(767, 1), Array(784, 1), Array(804, 1), Array(819, 1), Array(839, 1), Array(849, 1), _
Array(859, 1), Array(869, 1), Array(879, 1), Array(889, 1), Array(899, 1), Array(909, 1), _
Array(919, 1), Array(929, 1))

Merci encore
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
22 juil. 2005 à 09:41
Je dois avouer que là je patauge.
En fait, je ne vois pas du tout ce que tu veux faire, si tu peux être un peu plus précis (ou alors, il est encore trop tôt pour moi et mon cerveau ne tourne pas encore à plein régime :)
0
Rejoignez-nous