Bonjour à tous.
Je rencontre 2 petits soucis et j'aimerai avoir un peu d'aide.
Je vais déjà commencer par vous expliquer le fonctionnement du projet.
Premièrement un fichier excel est généré par pro_eng au format txt.1
Ensuite il y'a 2 fichiers excel : code.xls et base.xls
Code.xls exécute une macro qui met en forme le fichier texte dans excel. Voici le code :
A la fin de cette macro, il ouvre le fichier excel base.xls pour y copier la ligne qu'il vient de formater avec ce code ci :
Le problème c'est que dans le fichier base.xls il me copie a l'infini la selection sur la deuxième ligne. Alors que si la sélection se trouve entre : A2:F2 il ne copie qu'une seule fois.
L'autre problème, c'est que je suis obligé de lancer 2 fois le code.xls pour qu'il puisse ouvrir le base.xls
Voici les chemins des différents fichiers :
Pour le fichier texte :
C:\ptc_config\config_perso_wf2\code_temp\
Pour les fichiers excel :
C:\ptc_config\config_perso_wf2\code_xls\
Merci d'avance.
Je rencontre 2 petits soucis et j'aimerai avoir un peu d'aide.
Je vais déjà commencer par vous expliquer le fonctionnement du projet.
Premièrement un fichier excel est généré par pro_eng au format txt.1
Ensuite il y'a 2 fichiers excel : code.xls et base.xls
Code.xls exécute une macro qui met en forme le fichier texte dans excel. Voici le code :
Code:
Function Import_Code_Temp()
Dim Fich As Worksheet
Dim Tbl
Dim Variables
Dim Ligne As String
Dim I As Integer
Dim J As Integer
Dim FichierTemp As String
Set Fich = ThisWorkbook.Worksheets("Feuil1")
'entêtes de colonnes
Variables = Array("", _
"A créer", _
"Code_JDE", _
"Format", _
"Indice", _
"Description", _
"Date", _
"Dessinateur")
Fich.Cells.ClearContents
For I = 0 To UBound(Variables)
Fich.Cells(1, I + 1) = Variables(I)
Next I
'chemin du fichier texte à lire
FichierTemp = "C:\ptc_config\config_perso_wf2\code_temp\code_temp.txt.1"
'commence à la seconde ligne pour éviter les entêtes
J = 2
'ouverture pour lecture
Open FichierTemp For Input As #1
I = 3 ' On commence à la colonne 1
'boucle sur toutes les lignes
Do While Not EOF(1)
'lecture de la ligne
Line Input #1, Ligne
'si pas vide
If Ligne <> "" Then
'splite dans un tableau, attention, le séparateur doit être adapté !
Tbl = Split(Ligne, ":")
'inscrit la valeur en fonction de l'entête de la colonne
Fich.Cells(J, I) = Tbl(UBound(Tbl))
' colonne suivante
I = I + 1
End If
Loop
'ferme le fichier
Close #1
'vide le tableau
Erase Tbl
Call KillProcessus("C:\WINDOWS\SYSTEM32\CMD.EXE") 'Module 2
Call Ajout_Base 'Module 3
End Function
A la fin de cette macro, il ouvre le fichier excel base.xls pour y copier la ligne qu'il vient de formater avec ce code ci :
Code:
Function Ajout_Base()
'=============================================================================
'======================= Declaration des variables ===========================
'=============================================================================
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'=============================================================================
'===================== Ajout de la ligne dans Base.xls =======================
'=============================================================================
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\ptc_config\config_perso_wf2\code_xls\base.xls")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
'copier la ligne 2 sur fichier code.xls
Workbooks("code.xls").Activate
'selectionne la ligne 2
Range("A2:H2").Copy
'Activation du classeur base.xls
Workbooks("base.xls").Activate
'Insertion d'une ligne à la ligne 1
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Range("A2:H2").EntireRow.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone
End Function
Le problème c'est que dans le fichier base.xls il me copie a l'infini la selection sur la deuxième ligne. Alors que si la sélection se trouve entre : A2:F2 il ne copie qu'une seule fois.
L'autre problème, c'est que je suis obligé de lancer 2 fois le code.xls pour qu'il puisse ouvrir le base.xls
Voici les chemins des différents fichiers :
Pour le fichier texte :
C:\ptc_config\config_perso_wf2\code_temp\
Pour les fichiers excel :
C:\ptc_config\config_perso_wf2\code_xls\
Merci d'avance.