Determiner la derniere ligne d'un fichier excel et l'eliminer en Visual Basic 6. [Résolu]

Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
Dernière intervention
1 août 2005
- 21 juil. 2005 à 11:49 - Dernière réponse :
Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
Dernière intervention
1 août 2005
- 22 juil. 2005 à 12:19
3
Merci
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

Merci hicham_a_t23 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
Dernière intervention
1 août 2005
- 21 juil. 2005 à 11:55
0
Merci
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
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
- 21 juil. 2005 à 12:04
0
Merci
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
Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
Dernière intervention
1 août 2005
- 21 juil. 2005 à 14:08
0
Merci
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
Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
Dernière intervention
1 août 2005
- 21 juil. 2005 à 15:27
0
Merci
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
Messages postés
9
Date d'inscription
mercredi 13 juillet 2005
Dernière intervention
1 août 2005
- 21 juil. 2005 à 17:05
0
Merci
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
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
- 22 juil. 2005 à 09:41
0
Merci
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 :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.