Problème rechercher et remplacer sous Access - VB/VBA/VBS - Programmation
Marsh Posté le 10-06-2010 à 14:35:50
Hello
C'est pas une question d'etre different ou pas du VBA d'access...!
Aucun rapport... Chaque logiciel a ses methodes et propriétés propres. D'où le "A" de VBA
Tu créés un objet Excel, a partir d'Access. Cet objet se nomme AppExcel. Si tu veux utiliser des methodes d'Excel il faut bien que tu fasses référence a cet objet...
Cells est une propriété d'Excel pas d'Access. Donc dans ton code tu fais appel a une propriété Cell sans specifié que c'est une propriété de ton objet Excel.
Ce qu'il faut faire :
AppExcel.Cells.Replace etc.
Pour preuve, qd tu veux ouvrir un fichier tu l'utilises bien :
AppExcel.Workbooks.Open ("J:\Commun\Quota\Extraction spaceguard\" & "CGW7utams.csv" )
Parcontre le SearchCells je ne connais pas
Marsh Posté le 10-06-2010 à 14:39:06
Cells est un objet Excel qui dépend de la feuille (Worksheet), laquelle dépend du Workbook.
Quand on se trouve dans Excel, la worksheet est celle en cours. Mais quand on se trouve à l'éxterieur, il faut la sélectionner. Idem pour le workbook.
Essayer de créer un objet pour la feuille, ou bien d'utiliser un chemin complet, par exemple :
AppExcel.Workbooks(1).Worksheets("Feuil1" ).Cells.Replace What:="CG\", _ |
Marsh Posté le 10-06-2010 à 14:43:11
Salut Dje69r olivthill et merci de vos réponses !
Je comprends mieux maintenant pourquoi Access me disais "Objet non défini" ou un truc dans le genre.
Je vais donc m'aider de vos réponses et je vous tiens au courant !
Je précise au passage que le code en gras est issue d'une macro enregistrée automatiquement.
Merci encore,
Lumi.
Marsh Posté le 09-06-2010 à 14:53:26
Bonjour à tous.
Sous access, j'ai besoin d'ouvrir un csv, faire des rechercher/remplacer, enregistrer le csv sous un autre nom, l'importer dans une base et le supprimer.
L'ouverture se fait sans problème cependant, lorsque j'écris le code du "rechercher et remplacer" sous excel et que je le copie colle sous access, la macro s'arrete et me dit "Objet requis".
Le code VBA Access et Excel ne sont pas si diffèrent quand même. Si ?
Voila mon code.
Sub rptcarc()
NomFichier = "CGW7utams.csv"
Set AppExcel = CreateObject("Excel.Application" )
AppExcel.Workbooks.Open ("J:\Commun\Quota\Extraction spaceguard\" & "CGW7utams.csv" )
SearchCells.Replace What:="E:\Users", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="CG\", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="CMS\", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
AppExcel.Visible = True
On Error Resume Next
AppExcel.UserControl = True
AppExcel.Close
End Sub
En gras, c'est ce qui ne marche pas... Et sur le coup, google n'a pas été mon ami ;(
concernant les dernières étapes, ça doit être relativement simple non ?
Merci par avance de vos réponse
Lumi;