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 >
J'ai obtenu cette solution d'un autre usager
Remplacer:
Rows("1:" & strRow - 1).Select
With objSht.Selection
.Delete Shift:=xlUp
End With
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 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 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