Transferts EXCEL vers l\'iseries
Dernière réponse : dans Programmation
Bonjour,
je souhaite transférer des données EXCEL vers un AS400.
Je ne suis pas très doué en visual basic et j'aimerais avoir un exemple de macros écrites pour pouvoir le réaliser.
Etape 1 => sélection de données dans une feuille ( récupération de données pouvant être variable suivant le nombre de lignes de la feuille ). En fait je sélectionne toutes les données de la feuille
Etape 2 => transfert vers un fichier userlib d'un AS400
Si vous savez l'écrire, pensez à moi.
MERCI
je souhaite transférer des données EXCEL vers un AS400.
Je ne suis pas très doué en visual basic et j'aimerais avoir un exemple de macros écrites pour pouvoir le réaliser.
Etape 1 => sélection de données dans une feuille ( récupération de données pouvant être variable suivant le nombre de lignes de la feuille ). En fait je sélectionne toutes les données de la feuille
Etape 2 => transfert vers un fichier userlib d'un AS400
Si vous savez l'écrire, pensez à moi.
MERCI
Autres pages sur : transferts excel vers iseries
Lassé par la pub ? Créez un compte
Bonjour,
Pour sélectionner l'ensemble des données de la feuille active :
Pour obtenir les numéros de ligne et colonne de la dernière cellule de la feuille active :
Par contre peux tu décrire les caraxctéristiques d'un fichier "userlib" ?
Souhaitant t'avoir apporté une réponse partielle.
Pour sélectionner l'ensemble des données de la feuille active :
Cells.select
Pour obtenir les numéros de ligne et colonne de la dernière cellule de la feuille active :
NumLigne = Cells.SpecialCells(xlCellTypeLastCell).Row
NumColonne = Cells.SpecialCells(xlCellTypeLastCell).Column
Par contre peux tu décrire les caraxctéristiques d'un fichier "userlib" ?
Souhaitant t'avoir apporté une réponse partielle.
Oui, désolé de répondre si tardivement.
Je souhaite en effet sélectionner une feuille de données EXCEL et l'envoyer dans un AS400.
Il existe plusieurs bibliothèques de travail dans cette AS400 dont une qui est celle des utilisateurs que l'on appelle USERLIB.
Je travaille dans un entrepôt.
En fait, j'extrait de l'AS400 un fichier de travail que je retravaille sur EXCEL - Là pas de soucis, j'utilise l'option transfert de données ISERIES.
Je souhaite ensuite transférer le fichier retravaillé dans un premier dans une bibliothèque utilisateur pour voir si c'est tout est bien retranscris dans l'AS400.
Vous l'aurez compris, au final, il s'agira de remplacer le fichier AS400 initial une fois la procédure verrouillée.
Je sais que cela marche en utilisant la commande "Transfert de données vers l'Iseries" mais je ne peux pas laisser un utilisateur débutant utiliser cette commande, trop dangereux.
Je souhaite donc traduire cette commande en visual basic.
MERCI à tous. Je suis impatient d'avoir la réponse.
@+
Je souhaite en effet sélectionner une feuille de données EXCEL et l'envoyer dans un AS400.
Il existe plusieurs bibliothèques de travail dans cette AS400 dont une qui est celle des utilisateurs que l'on appelle USERLIB.
Je travaille dans un entrepôt.
En fait, j'extrait de l'AS400 un fichier de travail que je retravaille sur EXCEL - Là pas de soucis, j'utilise l'option transfert de données ISERIES.
Je souhaite ensuite transférer le fichier retravaillé dans un premier dans une bibliothèque utilisateur pour voir si c'est tout est bien retranscris dans l'AS400.
Vous l'aurez compris, au final, il s'agira de remplacer le fichier AS400 initial une fois la procédure verrouillée.
Je sais que cela marche en utilisant la commande "Transfert de données vers l'Iseries" mais je ne peux pas laisser un utilisateur débutant utiliser cette commande, trop dangereux.
Je souhaite donc traduire cette commande en visual basic.
MERCI à tous. Je suis impatient d'avoir la réponse.
@+
En fait je transfert un fichier EXCEL dans une bibliothèque de l'AS400.
C'est une macro complémentaire qui est installé sur EXCEL.
Voici les macros qui permettent d'importer des fichiers de l'AS400 :
Sub requeteDTF(Dtf As String, destination As String, plage As Range, Optional Entete = False, Optional MiseEnFormeColonne = False)
'
Dim chemin_transfert As String
Dim fichier_transfert As String
Dim lignes As Long
chemin_transfert = "U:\"
fichier_transfert = "transfertDTF.xls"
Application.Cursor = xlWait
Menage destination, plage ' ménage dans la feuille avant le transfert
supprimer_fichier chemin_transfert & fichier_transfert
lignes = transfert(Dtf)
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(chemin_transfert & fichier_transfert) Then
charger_fichier destination, plage, chemin_transfert, fichier_transfert, Entete
supprimer_fichier chemin_transfert & fichier_transfert ' ménage après le transfert
Else: MsgBox "Le fichier " & Dtf & " n'est pas correct. Il doit générer le fichier u:\transfertDTF.xls", , "MODIFIER LE FICHIER TRANSFERT DE DONNEES"
End If
'REPRISE CALCUL AUTO
Application.Calculation = xlCalculationAutomatic
Calculate
Application.Cursor = xlDefault
If MiseEnFormeColonne Then affichage_correct
End Sub
Function transfert(Dtf As String) As Integer
'
' DLL cwbx.dll
' Menu Outils-Références IBM AS/400 iSeries Access for Windows ActiveX Object Library
Dim dt As New cwbx.DatabaseTransfer
On Error Resume Next ' Diffère la gestion d'erreur.
Err.Clear
dt.Transfer Dtf
If Err.Number <> 0 Then
Msg = "LE FICHIER " & Dtf & " N'A PAS GENERE DE RESULTAT" & Chr(13) & Chr(13) & Chr(13) & "L'erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "AUCUNE DONNEE EXPLOITABLE POUR LA REQUETE", Err.HelpFile, Err.HelpContext
End If
transfert = dt.TransferResults.RowsTransferred
End Function
Function transfertSQL(systeme As String, SQL As String, format_date As cwbdtDateFormatEnum) As Integer
'
' DLL cwbx.dll
' Menu Outils-Références IBM AS/400 iSeries Access for Windows ActiveX Object Library
Dim as400 As New cwbx.AS400System
Dim dlr As New cwbx.DatabaseDownloadRequest
as400.Define systeme
Set dlr.system = as400
dlr.AS400File = "-"
dlr.pcFile = "U:\TransfertSQL.xls"
dlr.pcFile.FileType = cwbdtBIFF8
dlr.Convert65535 = True
dlr.Format.SetDateFormat format_date
dlr.QueryDataTransferSyntax = False
dlr.Query = SQL
On Error Resume Next ' Diffère la gestion d'erreur.
Err.Clear
dlr.Download
' Vérifie la présence d'erreurs, puis affiche le message.
If Err.Number <> 0 Then
Msg = "LE FICHIER " & Dtf & " N'A PAS GENERE DE RESULTAT" & Chr(13) & Chr(13) & Chr(13) & "L'erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "AUCUNE DONNEE EXPLOITABLE POUR LA REQUETE", Err.HelpFile, Err.HelpContext
End If
transfertSQL = dlr.TransferResults.RowsTransferred
End Function
Sub charger_fichier(onglet As String, plage As Range, chemin_transfert As String, fichier_transfert As String, Optional Entete = False)
'
'
' V1 : prise en compte des valeurs vides
Dim colonnes As Long
Dim lig As Long
colonnes = 1
Workbooks.Open Filename:=(chemin_transfert & fichier_transfert)
' le paramètres lignes est parfois incorrect. La DLL retourne 0 lignes alors que plusieurs lignes sont retournées.
' On recalcule le nombre de lignes d'une autre façon.
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
lig = Selection.Rows.Count
While Cells(1, colonnes) <> ""
colonnes = colonnes + 1
Wend
If Entete Then
Range("A1").Select
Range(Selection, Cells(Selection.Row + lig, colonnes - 1)).Select
Else:
lig = Selection.Rows.Count
Range("A2").Select
Range(Selection, Cells(Selection.Row + lig - 1, colonnes - 1)).Select
End If
Selection.Copy
ThisWorkbook.Activate
ThisWorkbook.Sheets(onglet).Cells(plage.Row, plage.Column).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
' Le presse papier est désactivé pour ne pas être questionné lors de la fermeture du fichier
Application.CutCopyMode = False
Workbooks(fichier_transfert).Close False
ThisWorkbook.Activate
End Sub
Sub supprimer_fichier(fichier As String)
'
'
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(fichier) Then fs.deletefile fichier, True
End Sub
Sub appel_SQL(systeme As String, cellule As Range, destination As String, plage As Range, Optional Entete = False, Optional MiseEnFormeColonne = False)
Dim SQL As String
Dim chemin_transfert As String
Dim fichier_transfert As String
Dim format_date As cwbdtDateFormatEnum
If systeme = "" Then systeme = Worksheets("SQL").Cells(cellule.Row, cellule.Column + 1).Value
SQL = Worksheets("SQL").Cells(cellule.Row, cellule.Column).Value
Select Case Worksheets("SQL").Cells(cellule.Row, cellule.Column + 2).Value
Case "EUR"
format_date = cwbdtDateFmtEUR
Case "ISO"
format_date = cwbdtDateFmtISO
Case "YrMonDay"
format_date = cwbdtDateFmtYrMonDay
Case "DayMonYr"
format_date = cwbdtDateFmtDayMonYr
Case "USA"
format_date = cwbdtDateFmtUSA
Case Else
MsgBox "Le format date de la requête n'est pas correct."
SQL = ""
End Select
If SQL <> "" Then
pointeur = Application.Cursor
chemin_transfert = "U:\"
fichier_transfert = "transfertSQL.xls"
Application.Cursor = xlWait
Menage destination, plage ' ménage dans la feuille avant le transfert
supprimer_fichier chemin_transfert & fichier_transfert ' ménage avant le transfert
lignes = transfertSQL(systeme, SQL, format_date)
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(chemin_transfert & fichier_transfert) Then
charger_fichier destination, plage, chemin_transfert, fichier_transfert, Entete
supprimer_fichier chemin_transfert & fichier_transfert ' ménage après le transfert
End If
'REPRISE CALCUL AUTO
Application.Calculation = xlCalculationAutomatic
Calculate
Application.Cursor = xlDefault
If MiseEnFormeColonne Then affichage_correct
Else: MsgBox "Pas de requête appelée dans l'onglet SQL"
End If
End Sub
Sub Menage(destination As String, plage As Range)
Dim existe As Boolean
Dim i As Integer
existe = False
i = 1
While i < Sheets.Count + 1 And Not existe ' Test de l'existance de la feuille
a = Sheets(i).Name
If StrConv(Sheets(i).Name, vbUpperCase) = StrConv(destination, vbUpperCase) Then existe = True
i = i + 1
Wend
If existe Then
Sheets(destination).Select 'ARRET DU CALCUL AUTO
Application.Calculation = xlCalculationManual
If Sheets(destination).FilterMode = True Then 'ENLEVER LES FILTRES
Selection.AutoFilter Field:=1, Criteria1:=310
ActiveSheet.ShowAllData
End If
'EFFACER LES DONNEES
Range(Cells(plage.Row, plage.Column), Cells(plage.Row + plage.Rows.Count, plage.Column + plage.Columns.Count - 1)).ClearContents
Range("A1").Select
Else
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = destination
End If
End Sub
Sub affichage_correct()
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select
End Sub
Reste maintenant à exporter
C'est une macro complémentaire qui est installé sur EXCEL.
Voici les macros qui permettent d'importer des fichiers de l'AS400 :
Sub requeteDTF(Dtf As String, destination As String, plage As Range, Optional Entete = False, Optional MiseEnFormeColonne = False)
'
Dim chemin_transfert As String
Dim fichier_transfert As String
Dim lignes As Long
chemin_transfert = "U:\"
fichier_transfert = "transfertDTF.xls"
Application.Cursor = xlWait
Menage destination, plage ' ménage dans la feuille avant le transfert
supprimer_fichier chemin_transfert & fichier_transfert
lignes = transfert(Dtf)
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(chemin_transfert & fichier_transfert) Then
charger_fichier destination, plage, chemin_transfert, fichier_transfert, Entete
supprimer_fichier chemin_transfert & fichier_transfert ' ménage après le transfert
Else: MsgBox "Le fichier " & Dtf & " n'est pas correct. Il doit générer le fichier u:\transfertDTF.xls", , "MODIFIER LE FICHIER TRANSFERT DE DONNEES"
End If
'REPRISE CALCUL AUTO
Application.Calculation = xlCalculationAutomatic
Calculate
Application.Cursor = xlDefault
If MiseEnFormeColonne Then affichage_correct
End Sub
Function transfert(Dtf As String) As Integer
'
' DLL cwbx.dll
' Menu Outils-Références IBM AS/400 iSeries Access for Windows ActiveX Object Library
Dim dt As New cwbx.DatabaseTransfer
On Error Resume Next ' Diffère la gestion d'erreur.
Err.Clear
dt.Transfer Dtf
If Err.Number <> 0 Then
Msg = "LE FICHIER " & Dtf & " N'A PAS GENERE DE RESULTAT" & Chr(13) & Chr(13) & Chr(13) & "L'erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "AUCUNE DONNEE EXPLOITABLE POUR LA REQUETE", Err.HelpFile, Err.HelpContext
End If
transfert = dt.TransferResults.RowsTransferred
End Function
Function transfertSQL(systeme As String, SQL As String, format_date As cwbdtDateFormatEnum) As Integer
'
' DLL cwbx.dll
' Menu Outils-Références IBM AS/400 iSeries Access for Windows ActiveX Object Library
Dim as400 As New cwbx.AS400System
Dim dlr As New cwbx.DatabaseDownloadRequest
as400.Define systeme
Set dlr.system = as400
dlr.AS400File = "-"
dlr.pcFile = "U:\TransfertSQL.xls"
dlr.pcFile.FileType = cwbdtBIFF8
dlr.Convert65535 = True
dlr.Format.SetDateFormat format_date
dlr.QueryDataTransferSyntax = False
dlr.Query = SQL
On Error Resume Next ' Diffère la gestion d'erreur.
Err.Clear
dlr.Download
' Vérifie la présence d'erreurs, puis affiche le message.
If Err.Number <> 0 Then
Msg = "LE FICHIER " & Dtf & " N'A PAS GENERE DE RESULTAT" & Chr(13) & Chr(13) & Chr(13) & "L'erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "AUCUNE DONNEE EXPLOITABLE POUR LA REQUETE", Err.HelpFile, Err.HelpContext
End If
transfertSQL = dlr.TransferResults.RowsTransferred
End Function
Sub charger_fichier(onglet As String, plage As Range, chemin_transfert As String, fichier_transfert As String, Optional Entete = False)
'
'
' V1 : prise en compte des valeurs vides
Dim colonnes As Long
Dim lig As Long
colonnes = 1
Workbooks.Open Filename:=(chemin_transfert & fichier_transfert)
' le paramètres lignes est parfois incorrect. La DLL retourne 0 lignes alors que plusieurs lignes sont retournées.
' On recalcule le nombre de lignes d'une autre façon.
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
lig = Selection.Rows.Count
While Cells(1, colonnes) <> ""
colonnes = colonnes + 1
Wend
If Entete Then
Range("A1").Select
Range(Selection, Cells(Selection.Row + lig, colonnes - 1)).Select
Else:
lig = Selection.Rows.Count
Range("A2").Select
Range(Selection, Cells(Selection.Row + lig - 1, colonnes - 1)).Select
End If
Selection.Copy
ThisWorkbook.Activate
ThisWorkbook.Sheets(onglet).Cells(plage.Row, plage.Column).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
' Le presse papier est désactivé pour ne pas être questionné lors de la fermeture du fichier
Application.CutCopyMode = False
Workbooks(fichier_transfert).Close False
ThisWorkbook.Activate
End Sub
Sub supprimer_fichier(fichier As String)
'
'
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(fichier) Then fs.deletefile fichier, True
End Sub
Sub appel_SQL(systeme As String, cellule As Range, destination As String, plage As Range, Optional Entete = False, Optional MiseEnFormeColonne = False)
Dim SQL As String
Dim chemin_transfert As String
Dim fichier_transfert As String
Dim format_date As cwbdtDateFormatEnum
If systeme = "" Then systeme = Worksheets("SQL").Cells(cellule.Row, cellule.Column + 1).Value
SQL = Worksheets("SQL").Cells(cellule.Row, cellule.Column).Value
Select Case Worksheets("SQL").Cells(cellule.Row, cellule.Column + 2).Value
Case "EUR"
format_date = cwbdtDateFmtEUR
Case "ISO"
format_date = cwbdtDateFmtISO
Case "YrMonDay"
format_date = cwbdtDateFmtYrMonDay
Case "DayMonYr"
format_date = cwbdtDateFmtDayMonYr
Case "USA"
format_date = cwbdtDateFmtUSA
Case Else
MsgBox "Le format date de la requête n'est pas correct."
SQL = ""
End Select
If SQL <> "" Then
pointeur = Application.Cursor
chemin_transfert = "U:\"
fichier_transfert = "transfertSQL.xls"
Application.Cursor = xlWait
Menage destination, plage ' ménage dans la feuille avant le transfert
supprimer_fichier chemin_transfert & fichier_transfert ' ménage avant le transfert
lignes = transfertSQL(systeme, SQL, format_date)
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(chemin_transfert & fichier_transfert) Then
charger_fichier destination, plage, chemin_transfert, fichier_transfert, Entete
supprimer_fichier chemin_transfert & fichier_transfert ' ménage après le transfert
End If
'REPRISE CALCUL AUTO
Application.Calculation = xlCalculationAutomatic
Calculate
Application.Cursor = xlDefault
If MiseEnFormeColonne Then affichage_correct
Else: MsgBox "Pas de requête appelée dans l'onglet SQL"
End If
End Sub
Sub Menage(destination As String, plage As Range)
Dim existe As Boolean
Dim i As Integer
existe = False
i = 1
While i < Sheets.Count + 1 And Not existe ' Test de l'existance de la feuille
a = Sheets(i).Name
If StrConv(Sheets(i).Name, vbUpperCase) = StrConv(destination, vbUpperCase) Then existe = True
i = i + 1
Wend
If existe Then
Sheets(destination).Select 'ARRET DU CALCUL AUTO
Application.Calculation = xlCalculationManual
If Sheets(destination).FilterMode = True Then 'ENLEVER LES FILTRES
Selection.AutoFilter Field:=1, Criteria1:=310
ActiveSheet.ShowAllData
End If
'EFFACER LES DONNEES
Range(Cells(plage.Row, plage.Column), Cells(plage.Row + plage.Rows.Count, plage.Column + plage.Columns.Count - 1)).ClearContents
Range("A1").Select
Else
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = destination
End If
End Sub
Sub affichage_correct()
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select
End Sub
Reste maintenant à exporter
Bonjour à tous,
J'aimerai savoir si ce problème est résolu, et si finalement Tigrou22 a réussi à faire une Macro VB qui fonctionne.
Moi, de mon côté, j'avais dévloppé une Macro VB ous excel qui fonctionnait trés bien :
- Excel formate les données sous format d'un macro exécutable sous Client Access Expres, en utilisant le bouton Macro et exécutant le fichier crée via excel, une simulation de la sisier se fait (c'est à dire, je tappe d'abord le nom de la transaction + Return l'écran se positionne dessus, je tappe 1 pour la lancer, j'arrive au 1.er masque de saisie, et je commence à remplir les champs un aprés l'autre ...et à la fin, je supprime la Fichier Macro....).
On ne peut pas dire que c'est pour les feneants car quan il s'agit de l'interface des Mvts comptables de la paye d'une société, environ 700 ligne de saisie, c'est un gain de temps enorme.
Or je viens de rencontrer une limitation dans Cliet Access Express, une Macro ne peut dépasser 749 lignes, et là c'est la panique !
Donc, je suhaite modifier mon Excel actuel , de façon à écrire directement dans un ficchier AS400, en envoyant une commande du style "ClearPfm" pour vider le fichier d'interface, puis rajouter mes Mvts dedans etc ...
Si vous pouvez me donner juste les commandes VB, le reste n'est pas un problème.
Merci à tous (et à charge de revanche, si je peux aider à mon tour).
Addresse mail : xxxxxxxxx.dadi@fr.xxxxxxxxxxx.com
Merci par avance
J'aimerai savoir si ce problème est résolu, et si finalement Tigrou22 a réussi à faire une Macro VB qui fonctionne.
Moi, de mon côté, j'avais dévloppé une Macro VB ous excel qui fonctionnait trés bien :
- Excel formate les données sous format d'un macro exécutable sous Client Access Expres, en utilisant le bouton Macro et exécutant le fichier crée via excel, une simulation de la sisier se fait (c'est à dire, je tappe d'abord le nom de la transaction + Return l'écran se positionne dessus, je tappe 1 pour la lancer, j'arrive au 1.er masque de saisie, et je commence à remplir les champs un aprés l'autre ...et à la fin, je supprime la Fichier Macro....).
On ne peut pas dire que c'est pour les feneants car quan il s'agit de l'interface des Mvts comptables de la paye d'une société, environ 700 ligne de saisie, c'est un gain de temps enorme.
Or je viens de rencontrer une limitation dans Cliet Access Express, une Macro ne peut dépasser 749 lignes, et là c'est la panique !
Donc, je suhaite modifier mon Excel actuel , de façon à écrire directement dans un ficchier AS400, en envoyant une commande du style "ClearPfm" pour vider le fichier d'interface, puis rajouter mes Mvts dedans etc ...
Si vous pouvez me donner juste les commandes VB, le reste n'est pas un problème.
Merci à tous (et à charge de revanche, si je peux aider à mon tour).
Addresse mail : xxxxxxxxx.dadi@fr.xxxxxxxxxxx.com
Merci par avance
Bonjour Zeb,
Tout d'abord merci d'avoir pris la peine de répondre aussi rapidemenT.
En réalité, je visais via mon mail, Tigrou22, qui avait essayé de solutionner le même cas de figure. Je vouslais récupérer son dernier script, et essayer d'aller plus loin.
Mon objectif est le suivant :
- Je récupère un fichier de type.CSV comportant les Mvts comptables de la paye (traitée à l'exterieur par Sage).
- J'ai fait une feuille Excel avec 3 boutons :
1* Integration du fichier CSV dans la feuille depuis un répertoire PC (toujours le même, et le fichier porte le même nom tous les mois).
Les Mvts sont controlés, je retire les lignes dont la valeut est = 0, ainsi que les lignes de totalisation par service.
2* Le second Bouton copie le résultat dans un autre onglet où la sequence des champs est alignée avec la structure du Fichier AS400 (en terme format des dates, taille des libellés etc ...)
Le service du personnel attache le fichier à ce stade et l'envoi aux comptables.
3* Les comptables l'ouvrent et utilise le 3ème Bouton pour créer une Macro.
Ensuite, ils vont sur la session AS400 ouverte, exécutent cette Macro qui saisie automatiquement les données dans un masque de Saisie AS400.
Sachant qu'il y'a une limitation en nombre de lignes dans l'execution d'une Macro-AS400, jai envisagé de changer ma façon de faire, en charchant les commandes VB qui permettent de travailler directement sur un Fichier AS400.
J'éspère que vous voyez mieux l'objectif que je souhaite atteindre.
Merci de votre aide
Tout d'abord merci d'avoir pris la peine de répondre aussi rapidemenT.
En réalité, je visais via mon mail, Tigrou22, qui avait essayé de solutionner le même cas de figure. Je vouslais récupérer son dernier script, et essayer d'aller plus loin.
Mon objectif est le suivant :
- Je récupère un fichier de type.CSV comportant les Mvts comptables de la paye (traitée à l'exterieur par Sage).
- J'ai fait une feuille Excel avec 3 boutons :
1* Integration du fichier CSV dans la feuille depuis un répertoire PC (toujours le même, et le fichier porte le même nom tous les mois).
Les Mvts sont controlés, je retire les lignes dont la valeut est = 0, ainsi que les lignes de totalisation par service.
2* Le second Bouton copie le résultat dans un autre onglet où la sequence des champs est alignée avec la structure du Fichier AS400 (en terme format des dates, taille des libellés etc ...)
Le service du personnel attache le fichier à ce stade et l'envoi aux comptables.
3* Les comptables l'ouvrent et utilise le 3ème Bouton pour créer une Macro.
Ensuite, ils vont sur la session AS400 ouverte, exécutent cette Macro qui saisie automatiquement les données dans un masque de Saisie AS400.
Sachant qu'il y'a une limitation en nombre de lignes dans l'execution d'une Macro-AS400, jai envisagé de changer ma façon de faire, en charchant les commandes VB qui permettent de travailler directement sur un Fichier AS400.
J'éspère que vous voyez mieux l'objectif que je souhaite atteindre.
Merci de votre aide
(Désolé, mais la politique de ce site est de ne pas laisser les problèmes se traiter en privé par mail. C'est pourquoi je l'ai retiré de ton message. 1° ça te protège du spam, 2° c'est que tu es venu chercher : il faut que la question et les réponses soient au même endroit. Si la question reste ici mais que les réponses sont dans ta boîte aux lettres, l'intérêt de ce forum disparaît)
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumVba iseries
- ForumTransferts video
- ForumTransfert de donnã es iseries
- ForumTransfert excel
- ForumEmule transferts
- ForumModele de macro pour systeme iseries
- ForumTransfert de donnã es iseries access
- ForumTransfert userform vers excel
- ForumTransfert excel vers access
- ForumTransfert pdf vers excel
- Voir plus
![[:zeb:6] [:zeb:6]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/77/40/zeb:6.gif)