justin92330
Messages postés32Date d'inscriptionlundi 21 juillet 2008StatutMembreDernière intervention 1 octobre 2008
-
30 sept. 2008 à 10:54
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 2012
-
30 sept. 2008 à 12:41
Bonjour,
Voila, j'ai créer un script sous VBA excel.
Celui ci est sencé ouvrir un page excel ( ou la créer si elle n'existe pas ) et enregistrer un tableau a l'intérieur de cette page, puis la fermer.
Et j'ai une erreur dans mon code au moment d'entrer mes données dans cette page.
Pouvez vous m'aider ?
Bien cordialement
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
PrivateSub CommandButton1_Click()
OnErrorGoTo Err_XLWrite
Dim myXl As Excel.ApplicationDim mySheet As Excel.Workbook
'Creation de l'objet an excelSet myXl = CreateObject("Excel.Application")
'Ouverture du fichier excelSet mySheet = myXl.Workbooks.Open("D:\Documents and Settings\Invité\Mes documents\Justin\test\toto.xls")
Dim x AsInteger, y AsIntegerDim i AsInteger, j AsIntegerDim NomTableau()AsString'Redéfinit la taille du tableau
x = 10
y 5ReDim NomTableau(1To x, 1To y)'Alimente les éléments du tableauFor i 1To x
For j = 1To y
NomTableau(i, j) = i & "-" & j
Next j
Next i
'Transfère les éléments du tableau dans la feuille de calcul ----> message d'erreur sur la ligne suivante mais je ne sais pas pourquoi
myXl.Range(Cells(1, 1), Cells(UBound(NomTableau, 1), UBound(NomTableau, 2))) = NomTableau
'Sauvegarde du fichier
mySheet.Save
'Fermeture du fichier
mySheet.Close
'On quitte excel
myXl.Quit
'Libération des objetsSet myChart NothingSet mySheet NothingSet myXl = Nothing
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 30 sept. 2008 à 11:10
Bonjour,
Alors mettons un peu d'ordre :
PrivateSub CommandButton1_Click()
On Error GoTo Err_XLWrite
Dim myXl As Excel.Application
Dim mySheet As Excel.Workbook
'Creation de l'objet an excel
Set myXl = CreateObject("Excel.Application")
'Ouverture du fichier excel
SetmySheet = myXl.Workbooks.Open("D:\Documents and Settings\Invité\Mes documents\Justin\test\toto.xls")
Dimx As Integer, y As Integer
Dimi As Integer, j As Integer
DimNomTableau() As String
'Redéfinit la taille du tableau
x = 10
y = 5
ReDim NomTableau(1To x, 1To y)
'Alimente les éléments du tableau
For i = 1To x
Forj = 1To y
NomTableau(i, j) = i & "-" & j
Next j
Nexti
'Transfère les éléments du tableau dans la feuille de calcul ----> message d'erreur sur la ligne suivante mais je ne sais pas pourquoi
--> Il ne faut pas donner des paramètres à ton tableau? car tu affecte une valeur pour 1 tableau... Il me semble du moins
myXl.Range(Cells(1, 1), Cells(UBound(NomTableau, 1), UBound(NomTableau, 2))) = NomTableau
'Sauvegarde du fichier
mySheet.Save
'Fermeture du fichier
mySheet.Close
'On quitte excel
myXl.Quit
'Libération des objets
SetmyChart = Nothing
SetmySheet = Nothing
SetmyXl = Nothing
Exit_XLWrite:
Exit Sub
Err_XLWrite:
MsgBox Error$
Resume Exit_XLWrite
End Sub
Voilà qui est un peu mieux... Ensuite pourrais-tu mettre le message d'erreur qu'il affiche?
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- Le bon t
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 30 sept. 2008 à 12:41
bonjour
myXl.Range(Cells(1, 1), Cells(UBound(NomTableau, 1), UBound(NomTableau, 2))) = NomTableau
ne serait ce pas plutot
mySheet.Range
voire meme
mySheet.activesheet.Range
car d'apres ton code
myXl c'est Excel lui-meme
mySheet c'est ton fichier
mySheet.activesheet la feuille active dans ton fichier
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE