Probleme enregistrement de données sur excel

thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007 - 5 juin 2007 à 19:19
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 19 juin 2007 à 07:55
j'arrive pas a faire un enregistrement sur plusieurs cellules
je voudrais qu'a chaque donnee envoyé par le port série soit enregistrer à la suite dans excel

Dim exc As New Excel.Application
Workbooks.Add
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "mafeuille"
Range("A2").Select

ActiveCell.FormulaR1C1 = b

ActiveWorkbook.SaveAs FileName:="C:\TxtNumComm.Text.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWorkbook.Close
Set exc = Nothing

pour plus d'explication b c'est la donnée de la rs232

26 réponses

thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
14 juin 2007 à 07:39
bonjour,


j'ai un problème pour l'envoi de donnée sur excel


il me dit que:
method range of object 'worksheet failed


et la ligne wsExcel.Range("A", ligne) = b est soulignée


voici le code




'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel


'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ajout d'un classeur car à l'ouverture d'Excel il n'y a aucun classeur d'ouvert
appExcel.Workbooks.Add 'Ceci n'est nécessaire que si vous n'ouvrez pas un fichier existant
'Récupération du classeur par défaut
Set wbExcel = appExcel.ActiveWorkbook
'Récupération de la feuille par défaut
Set wsExcel = wbExcel.ActiveSheet
Dim ligne As Integer


ligne = 1




While b <> 0


wsExcel.Range("A", ligne) = b
ligne = ligne + 1
Wend
0
jers19 Messages postés 9 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 18 juin 2007
14 juin 2007 à 18:32
wsExcel.Range("A1").Offset(ligne,0) = b   'par contre si tu veux que la première valeur soit dans la cellule A1, à l'initialisation, tu dois mettre : ligne =0
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
18 juin 2007 à 11:22
j'ai changé la ligne par
wsExcel.Range("A1").Offset(ligne,0) = b
mais le programme se plante
0
jers19 Messages postés 9 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 18 juin 2007
18 juin 2007 à 19:03
il manque le .value
0

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

Posez votre question
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
19 juin 2007 à 06:11
le . value se met après b
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juin 2007 à 07:55
Salut,
J'arrive en plein milieu.
De quelle type est b?

ligne = 1
While b <> 0
   wsExcel.Range("A", ligne) = b
   ligne = ligne + 1
Wend, ----
[code.aspx?ID=41455 By Renfield]
- Quel est l'intéret de cette boucle si b ne change pas de valeur?
- Ou bien OU B change de valeur

POurquoi ne pas avoir fait

ligne = 1
While b <> 0
   wsExcel.Range("A" & CStr(ligne)) = b
   ligne = ligne + 1
Wend, ----
[code.aspx?ID=41455 By Renfield]
NOTE: Ligne devrait être déclaré comme Long et pas Integer (=> et si ta boucle allait jusqu'au bas de la feuille?)

@+: Ju£i?n
Pensez: Réponse acceptée
0
Rejoignez-nous