je cherhce à faire une macro qui mettrait à jour des champs dans IBM
Mainframe avec MS Excel.
Je rencontre des problèmes :
1/ La première fois que je lance ma macro, elle plante avec le message
: The remote server machine does not exist or is unavailable (Error
462) sur la ligne nb_ligne =
xl.WorksheetFunction.CountA(Range("a:a")) . Si je relance la macro
immédiatement ca marche.
2/ Malgrès la workbooks.close, le fichier reste chargé en mémoire (je
vois autant le Excel.exe que de fois où j'ai lancer la macro dans la
liste des applications en cours dans windows) et si je charge mon
fichier vide.xls, il est en read-only
3/ Certaines des functions VBA ne marchent pas, par exmple LEFT, je
pense que c'est dû au fait que Left existe aussi pour mainframe.
-----Code----
Sub TestXLS()
'
' Generated by the Reflection Macro Recorder on 04-06-2004
16:31:48.88
' Generated by Reflection for IBM for Windows 9.0.172
'
Dim xl As Excel.Application
Set xl = New Excel.Application
xl.Workbooks.Open ( _
"C:\temp\vide.xls")
nb_ligne = xl.WorksheetFunction.CountA(Range("a:a"))
For i = 2 To nb_ligne
val0 = Cells(i, 1)
val1 = LeftB(val0, 4 * 2)
val2 = RightB(val0, 6 * 2)
val3 = Cells(i, 2)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Laurent,
Essaie ceci :
'-------------------------- Sub TestXLS() ' ' Generated by the Reflection Macro Recorder on 04-06-2004 16:31:48.88 ' Generated by Reflection for IBM for Windows 9.0.172 ' Dim xl As Object, Wk As Workbook On Error Resume Next Set xl = GetObject(, "excel.application") If Err <> 0 Then Err = 0 Set xl = CreateObject("Excel.application") End If
Set Wk = xl.Workbooks.Open( _ "C:tempvide.xls")
'Inscrit le nom de la feuille de ton application Wk.Worksheets("NomDeLaFeuille").Select
nb_ligne = xl.CountA(Range("a:a")) For i = 2 To nb_ligne val0 = Cells(i, 1) val1 = LeftB(val0, 4 * 2) val2 = RightB(val0, 6 * 2) val3 = Cells(i, 2)
'Fermeture de l'instance d'excel xl.Quit 'Libération de l'espace mémoire Set Wk = Nothing: Set xl = Nothing End Sub '----------------------------
Salutations!
"Laurent Zarkoff" a écrit dans le message de news: Bonjour,
je cherhce à faire une macro qui mettrait à jour des champs dans IBM Mainframe avec MS Excel.
Je rencontre des problèmes : 1/ La première fois que je lance ma macro, elle plante avec le message : The remote server machine does not exist or is unavailable (Error 462) sur la ligne nb_ligne xl.WorksheetFunction.CountA(Range("a:a")) . Si je relance la macro immédiatement ca marche. 2/ Malgrès la workbooks.close, le fichier reste chargé en mémoire (je vois autant le Excel.exe que de fois où j'ai lancer la macro dans la liste des applications en cours dans windows) et si je charge mon fichier vide.xls, il est en read-only 3/ Certaines des functions VBA ne marchent pas, par exmple LEFT, je pense que c'est dû au fait que Left existe aussi pour mainframe.
-----Code----
Sub TestXLS() ' ' Generated by the Reflection Macro Recorder on 04-06-2004 16:31:48.88 ' Generated by Reflection for IBM for Windows 9.0.172 ' Dim xl As Excel.Application Set xl = New Excel.Application xl.Workbooks.Open ( _ "C:tempvide.xls") nb_ligne = xl.WorksheetFunction.CountA(Range("a:a")) For i = 2 To nb_ligne val0 = Cells(i, 1) val1 = LeftB(val0, 4 * 2) val2 = RightB(val0, 6 * 2) val3 = Cells(i, 2)
'--------------------------
Sub TestXLS()
'
' Generated by the Reflection Macro Recorder on 04-06-2004 16:31:48.88
' Generated by Reflection for IBM for Windows 9.0.172
'
Dim xl As Object, Wk As Workbook
On Error Resume Next
Set xl = GetObject(, "excel.application")
If Err <> 0 Then
Err = 0
Set xl = CreateObject("Excel.application")
End If
Set Wk = xl.Workbooks.Open( _
"C:tempvide.xls")
'Inscrit le nom de la feuille de ton application
Wk.Worksheets("NomDeLaFeuille").Select
nb_ligne = xl.CountA(Range("a:a"))
For i = 2 To nb_ligne
val0 = Cells(i, 1)
val1 = LeftB(val0, 4 * 2)
val2 = RightB(val0, 6 * 2)
val3 = Cells(i, 2)
'Fermeture de l'instance d'excel
xl.Quit
'Libération de l'espace mémoire
Set Wk = Nothing: Set xl = Nothing
End Sub
'----------------------------
Salutations!
"Laurent Zarkoff" <lolozarkoff@hotmail.com> a écrit dans le message de
news:92e5ff20.0404080055.3530fa76@posting.google.com...
Bonjour,
je cherhce à faire une macro qui mettrait à jour des champs dans IBM
Mainframe avec MS Excel.
Je rencontre des problèmes :
1/ La première fois que je lance ma macro, elle plante avec le message
: The remote server machine does not exist or is unavailable (Error
462) sur la ligne nb_ligne xl.WorksheetFunction.CountA(Range("a:a")) . Si je relance la macro
immédiatement ca marche.
2/ Malgrès la workbooks.close, le fichier reste chargé en mémoire (je
vois autant le Excel.exe que de fois où j'ai lancer la macro dans la
liste des applications en cours dans windows) et si je charge mon
fichier vide.xls, il est en read-only
3/ Certaines des functions VBA ne marchent pas, par exmple LEFT, je
pense que c'est dû au fait que Left existe aussi pour mainframe.
-----Code----
Sub TestXLS()
'
' Generated by the Reflection Macro Recorder on 04-06-2004
16:31:48.88
' Generated by Reflection for IBM for Windows 9.0.172
'
Dim xl As Excel.Application
Set xl = New Excel.Application
xl.Workbooks.Open ( _
"C:tempvide.xls")
nb_ligne = xl.WorksheetFunction.CountA(Range("a:a"))
For i = 2 To nb_ligne
val0 = Cells(i, 1)
val1 = LeftB(val0, 4 * 2)
val2 = RightB(val0, 6 * 2)
val3 = Cells(i, 2)
'-------------------------- Sub TestXLS() ' ' Generated by the Reflection Macro Recorder on 04-06-2004 16:31:48.88 ' Generated by Reflection for IBM for Windows 9.0.172 ' Dim xl As Object, Wk As Workbook On Error Resume Next Set xl = GetObject(, "excel.application") If Err <> 0 Then Err = 0 Set xl = CreateObject("Excel.application") End If
Set Wk = xl.Workbooks.Open( _ "C:tempvide.xls")
'Inscrit le nom de la feuille de ton application Wk.Worksheets("NomDeLaFeuille").Select
nb_ligne = xl.CountA(Range("a:a")) For i = 2 To nb_ligne val0 = Cells(i, 1) val1 = LeftB(val0, 4 * 2) val2 = RightB(val0, 6 * 2) val3 = Cells(i, 2)
'Fermeture de l'instance d'excel xl.Quit 'Libération de l'espace mémoire Set Wk = Nothing: Set xl = Nothing End Sub '----------------------------
Salutations!
"Laurent Zarkoff" a écrit dans le message de news: Bonjour,
je cherhce à faire une macro qui mettrait à jour des champs dans IBM Mainframe avec MS Excel.
Je rencontre des problèmes : 1/ La première fois que je lance ma macro, elle plante avec le message : The remote server machine does not exist or is unavailable (Error 462) sur la ligne nb_ligne xl.WorksheetFunction.CountA(Range("a:a")) . Si je relance la macro immédiatement ca marche. 2/ Malgrès la workbooks.close, le fichier reste chargé en mémoire (je vois autant le Excel.exe que de fois où j'ai lancer la macro dans la liste des applications en cours dans windows) et si je charge mon fichier vide.xls, il est en read-only 3/ Certaines des functions VBA ne marchent pas, par exmple LEFT, je pense que c'est dû au fait que Left existe aussi pour mainframe.
-----Code----
Sub TestXLS() ' ' Generated by the Reflection Macro Recorder on 04-06-2004 16:31:48.88 ' Generated by Reflection for IBM for Windows 9.0.172 ' Dim xl As Excel.Application Set xl = New Excel.Application xl.Workbooks.Open ( _ "C:tempvide.xls") nb_ligne = xl.WorksheetFunction.CountA(Range("a:a")) For i = 2 To nb_ligne val0 = Cells(i, 1) val1 = LeftB(val0, 4 * 2) val2 = RightB(val0, 6 * 2) val3 = Cells(i, 2)