Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Interagir avec EXCEL à partir d'ACCESS

1 réponse
Avatar
Martin
Bonjour à tous


J'aurais besoin de votre aide pour réaliser une macro sous Access qui
doit réalisé des modifications sur une fichier Excel au format *.CSV.

J'ai fait une macro sous EXCEL, voir la macro ci dessous, qui fait les
modifications souhaitées sur le fichier se nommant TELEMAIN.CSV en
supprimant une colonne s'intitulant Clé Vantive et qui supprime des
guillemets dans deux colonnes. Mais pour faciliter la vie des opérateurs,
j'aimerais que cettre macro qui s'éxécute sous EXCEL se fasse sous ACCESS.

Pouvez vous l'adapter à ACCESS ? Merci d'avance pour tous et à tous.

Option Explicit
Public Const File = "telemain.csv"
Public Const CLEF = "Clé Vantive"
Sub Auto_Open()

'
' Auto_Open Macro
'

Dim FileToOpen
Dim Workb As Workbook

' Les 6 lignes ci après permettent juste de contôler si le fichier
' File est déjà ouvert

On Error Resume Next
Set Workb = Workbooks(File)

If Err = 0 Then
MsgBox "Le fichier " & File & " est déjà ouvert. Veuillez d'abord le
fermer."
GoTo line100
End If

Set Workb = Nothing

ChDir "C:\UTILISAT\PUBLIC"
Workbooks.Open Filename:="C:\UTILISAT\USERS\telemain.csv"
On Error GoTo ErrorHandler

Columns("A:A").Select

Application.DisplayAlerts = False

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited,
_
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False

Application.DisplayAlerts = True
Range("A1").Select

If ActiveCell.Value = CLEF Then

Columns("A:A").Select
Selection.Delete Shift:=xlToLeft

Columns("B:B").Select
Selection.Replace What:="""", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False

Columns("D:D").EntireColumn.AutoFit
Columns("D:D").Select

Selection.Replace What:="""", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False

Range("D1").Select
MsgBox " Le champ Clé Vantive a été supprimé ainsi que les
guillemets dans les champs Entité et Equipement. Vous pouvez faire la MAJ de
la base de données dans Telemain", vbInformation
Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Filename:="C:\UTILISAT\USERS\telemain.csv", _
FileFormat:=xlCSV, CreateBackup:=False

ActiveWorkbook.Close
Application.DisplayAlerts = True

Else
MsgBox " Ce fichier TELEMAIN.CSV a déjà été modifié. Veuillez créer
un autre à partir de Vantive et le sauvegarder sous C:\UTILISAT\USERS",
vbInformation
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End If

ErrorHandler:
Select Case Err.Number
Case 55
Close #1
Case 1004
MsgBox " Le fichier Telemain.csv n'est pas présent sous
C:\UTILISAT\USERS. Créez en un à partir de Vantive et sauvegardez le sous
C:\UTILISAT\USERS.", vbInformation
GoTo line100
Case Else
End Select

line100:

End Sub

1 réponse

Avatar
3stone
Salut,

"Martin"
| J'aurais besoin de votre aide pour réaliser une macro sous Access qui
| doit réalisé des modifications sur une fichier Excel au format *.CSV.
|
| J'ai fait une macro sous EXCEL, voir la macro ci dessous, qui fait les
| modifications souhaitées sur le fichier se nommant TELEMAIN.CSV en
| supprimant une colonne s'intitulant Clé Vantive et qui supprime des
| guillemets dans deux colonnes. Mais pour faciliter la vie des opérateurs,
| j'aimerais que cettre macro qui s'éxécute sous EXCEL se fasse sous ACCESS.
|
| Pouvez vous l'adapter à ACCESS ? Merci d'avance pour tous et à tous.


Un fichier CSV est un fichier texte, donc séquenciel, tu ne peut donc pas le
modifier directement... sauf à le charger dans Excel, mais dans ce cas il devient
à nouveau une feuille Excel comme les autres ;-)


Pour piloter Excel au départ de Access, on utilise l'automation, dont tu peux
trouver la méthode et les détails ici :
http://officesystem.access.free.fr/vba/excel.htm
voir le menu de gauche...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/