Manipulation cellule excel

Résolu
Signaler
Messages postés
10
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
7 septembre 2007
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
je suis en train de créer une application qui permettra de lire un fichier ASCII et d'envoyer certaines données sur Excel.
J'arrive à filtrer et envoyer les données dans les cellules souhaitées.
Mon problème est que j'aimerai, en fonction de la cellule active( qui est en variable) d'envoyer une donnée sur une cellule décalée à droite de une case ou deux.



Dim
ligne

As



Object








Dim
i

As



Integer






Dim
j

As



Integer






Dim
k

As



Integer






Dim
info(100)

As



String






Dim
VA(100)

As



Double






Dim
VN

As



Double






Dim
TI

As



String






Dim
TS(1000)

As



String






Dim
DV

As



Double






Dim
lacase

As



String






Dim
objExcel

As



New
Excel.Application 


With
objExcel.Visible =


True

.Workbooks.Open(XlsPath)







End



With 



FileOpen(1, TrfPath, OpenMode.Input)


i = 1


LectureCase:







Do



Until
EOF(1)ligne = LineInput(1)

info(i) = ligne

j = i - 2

k = i - 1

lacase = Mid(info(i), 64, 1)


If
lacase =

" "



Then



GoTo
finlecturecase


If
lacase =

"-"



Then



GoTo
finlecturecase


If
lacase =

"*"



Then



GoTo
finlecturecase


If
lacase =

""



Then



GoTo
finlecturecaselacase = Mid(info(i), 64, 4)


'recherche de la valeur actuelle VA

VA(i) = Mid(info(j), 34, 11)







'recherche de la valeur nominal VN

VN = Mid(info(j), 49, 11)







'recherche TS et TI

TS(i) = Mid(info(k), 49, 11)


TI = Mid(info(i), 34, 11)







'recherche déviation

DV = Mid(info(k), 34, 11)


objExcel.Worksheets(1).range(lacase).Value = TS(i)


finlecturecase:


i = i + 1







Loop

FileClose(1)


Application.Exit()

5 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
OUps croisement de post.

Ton problème est résolu alors? Si oui pense à appuyer sur réponse accepetée sur le ou les posts qui t'on débloqués)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Regarde peu être du coté de Offset

DecalageLigne = 1
DecalageColonne = 1
ActiveCell.Offset(DecalageLigne, DecalageColonne).Activate

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
10
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
7 septembre 2007

merci de ton aide. Je suis en train de tester parce que ça ne marche pas comme je veux.
Messages postés
10
Date d'inscription
mardi 21 novembre 2006
Statut
Membre
Dernière intervention
7 septembre 2007

merci encore de ton orientation


voilà la solution :
'activer la cellule



objExcel.Worksheets(1).range(lacase).activate()







'envoyer la donnée dans la cellule

objExcel.Worksheets(1).range(lacase).value = TS(i)







'définir les décalages

decalageligneTSTI = 1


decalagecolonneTSTI = 0







'activer la cellule

objExcel.ActiveCell.Offset(decalageligneTSTI, decalagecolonneTSTI).Activate()







'envoyer la donnée

objExcel.ActiveCell.Value = VA(i)
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Question ou est ton code?
Dans VB6 ou directement sous Excel?

@+: Ju£i?n
Pensez: Réponse acceptée