Macro Excel dans Access

Le
Patrice
Bonjour,

Dans un module Access je veux utiliser Excel pour formater un type de
fichier avant de pouvoir l'inporter dans Access. J'y ai mis le code suivant:


Dim objXL As Object
Dim objWkb As Object
Dim objSht As Object
Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String

Set objXL = CreateObject("Excel.Application")
strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT (*.csv),
*.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
MultiSelect:úlse)
Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
Set objSht = objWkb.Worksheets(strNomFichier)

Range("A1").Select
Do While Not ActiveCell.Value = "Date/time"
ActiveCell.Offset(1, 0).Select
Loop

strRow = ActiveCell.Address(ReferenceStyle:=xlR1C1)
strRow = Left(strRow, Len(strRow) - 2)
strRow = Right(strRow, Len(strRow) - 1)

Rows("1:" & strRow - 1).Select

'--
'ÇA BLOQUE ICI
'Propriété ou méthode non géré par cet objet

With objSht.Selection
.Delete Shift:=xlUp
End With
'--

Comment écrire le code pour travailler avec la sélection?

Merci

Patrice
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #18309821
Bonsoir,

peut-être ainsi, si j'ai compris


Dim objXL As Object
Dim objWkb As Object
Dim objSht As Object
Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String
Dim c as range

Set objXL = CreateObject("Excel.Application")
strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT
(*.csv),
*.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
MultiSelect:úlse)
Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
Set objSht = objWkb.Worksheets(strNomFichier)
objsht.activate

'----------
For each c in Range("A1:A"&[a65536].end(xlup).row)
If c = "Date/time" then c.entirerow.delete
next

'--------------------------------------------------

'--
lSteph

Patrice a écrit :
Bonjour,

Dans un module Access je veux utiliser Excel pour formater un type de
fichier avant de pouvoir l'inporter dans Access. J'y ai mis le code suivant:


Dim objXL As Object
Dim objWkb As Object
Dim objSht As Object
Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String

Set objXL = CreateObject("Excel.Application")
strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT (*.csv),
*.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
MultiSelect:úlse)
Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
Set objSht = objWkb.Worksheets(strNomFichier)

Range("A1").Select
Do While Not ActiveCell.Value = "Date/time"
ActiveCell.Offset(1, 0).Select
Loop

strRow = ActiveCell.Address(ReferenceStyle:=xlR1C1)
strRow = Left(strRow, Len(strRow) - 2)
strRow = Right(strRow, Len(strRow) - 1)

Rows("1:" & strRow - 1).Select

'--------------------------------------------------
'ÇA BLOQUE ICI
'Propriété ou méthode non géré par cet objet

With objSht.Selection
.Delete Shift:=xlUp
End With
'--------------------------------------------------

Comment écrire le code pour travailler avec la sélection?

Merci

Patrice



Patrice
Le #18310691
J'ai obtenu cette solution d'un autre usager

Remplacer:
Rows("1:" & strRow - 1).Select
With objSht.Selection
.Delete Shift:=xlUp
End With

Par:
objSht.Rows("1:" & strRow - 1).Delete Shift:=xlUp

Merci



"LSteph" a écrit :

Bonsoir,

peut-être ainsi, si j'ai compris


Dim objXL As Object
Dim objWkb As Object
Dim objSht As Object
Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String
Dim c as range

Set objXL = CreateObject("Excel.Application")
strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT
(*.csv),
*.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
MultiSelect:úlse)
Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
Set objSht = objWkb.Worksheets(strNomFichier)
objsht.activate

'----------
For each c in Range("A1:A"&[a65536].end(xlup).row)
If c = "Date/time" then c.entirerow.delete
next

'--------------------------------------------------

'--
lSteph

Patrice a écrit :
> Bonjour,
>
> Dans un module Access je veux utiliser Excel pour formater un type de
> fichier avant de pouvoir l'inporter dans Access. J'y ai mis le code suivant:
>
>
> Dim objXL As Object
> Dim objWkb As Object
> Dim objSht As Object
> Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String
>
> Set objXL = CreateObject("Excel.Application")
> strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT (*.csv),
> *.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
> MultiSelect:úlse)
> Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
> strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
> Set objSht = objWkb.Worksheets(strNomFichier)
>
> Range("A1").Select
> Do While Not ActiveCell.Value = "Date/time"
> ActiveCell.Offset(1, 0).Select
> Loop
>
> strRow = ActiveCell.Address(ReferenceStyle:=xlR1C1)
> strRow = Left(strRow, Len(strRow) - 2)
> strRow = Right(strRow, Len(strRow) - 1)
>
> Rows("1:" & strRow - 1).Select
>
> '--------------------------------------------------
> 'ÇA BLOQUE ICI
> 'Propriété ou méthode non géré par cet objet
>
> With objSht.Selection
> .Delete Shift:=xlUp
> End With
> '--------------------------------------------------
>
> Comment écrire le code pour travailler avec la sélection?
>
> Merci
>
> Patrice
>



LSteph
Le #18311241
Le principe est que les select sont inutiles
Ma proposition est donc plus simple!
Puisque je remplace tout ceci en 3 lignes

'--------------------------------------------------
Range("A1").Select
Do While Not ActiveCell.Value = "Date/time"
ActiveCell.Offset(1, 0).Select
Loop

strRow = ActiveCell.Address(ReferenceStyle:=xlR1C1)
strRow = Left(strRow, Len(strRow) - 2)
strRow = Right(strRow, Len(strRow) - 1)

Rows("1:" & strRow - 1).Select


With objSht.Selection
.Delete Shift:=xlUp
End With
'--------------------------------------------------



Patrice a écrit :
J'ai obtenu cette solution d'un autre usager

Remplacer:
Rows("1:" & strRow - 1).Select
With objSht.Selection
.Delete Shift:=xlUp
End With

Par:
objSht.Rows("1:" & strRow - 1).Delete Shift:=xlUp

Merci



"LSteph" a écrit :

Bonsoir,

peut-être ainsi, si j'ai compris


Dim objXL As Object
Dim objWkb As Object
Dim objSht As Object
Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String
Dim c as range

Set objXL = CreateObject("Excel.Application")
strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT
(*.csv),
*.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
MultiSelect:úlse)
Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
Set objSht = objWkb.Worksheets(strNomFichier)
objsht.activate

'----------
For each c in Range("A1:A"&[a65536].end(xlup).row)
If c = "Date/time" then c.entirerow.delete
next

'--------------------------------------------------

'--
lSteph

Patrice a écrit :
Bonjour,

Dans un module Access je veux utiliser Excel pour formater un type de
fichier avant de pouvoir l'inporter dans Access. J'y ai mis le code suivant:


Dim objXL As Object
Dim objWkb As Object
Dim objSht As Object
Dim strPath_et_Fichier, strNouveauFichier, strNomFichier As String

Set objXL = CreateObject("Excel.Application")
strPath_et_Fichier = objXL.GetOpenFileName(fileFilter:="Fichier DAT (*.csv),
*.csv ,Fichiers texte (*.txt),*.txt", Title:="Ouvrir le fichier CR10x",
MultiSelect:úlse)
Set objWkb = objXL.Workbooks.Open(strPath_et_Fichier)
strNomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
Set objSht = objWkb.Worksheets(strNomFichier)

Range("A1").Select
Do While Not ActiveCell.Value = "Date/time"
ActiveCell.Offset(1, 0).Select
Loop

strRow = ActiveCell.Address(ReferenceStyle:=xlR1C1)
strRow = Left(strRow, Len(strRow) - 2)
strRow = Right(strRow, Len(strRow) - 1)

Rows("1:" & strRow - 1).Select

'--------------------------------------------------
'ÇA BLOQUE ICI
'Propriété ou méthode non géré par cet objet

With objSht.Selection
.Delete Shift:=xlUp
End With
'--------------------------------------------------

Comment écrire le code pour travailler avec la sélection?

Merci

Patrice







Publicité
Poster une réponse
Anonyme