jeanluc065
Messages postés134Date d'inscriptionsamedi 23 septembre 2006StatutMembreDernière intervention 1 juin 2007
-
4 oct. 2006 à 22:08
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
5 oct. 2006 à 09:36
Bonsoir tout le monde,
Depuis access 2002, je dois importer des données mais au préalable, je dois mettre mon fichier en forme.
Je voudrais intégrer à la fonction ci-dessous ( écrite par JMO )
couper les lignes de 1 à 12 incluse de la feuille "clients" et les coller à partir de la 2ème ligne dans la feuille "référence" du même classeur.
Une autre fonction précède celle-ci, elle sert à déterminer les variables.
QUI PEUT M'AIDER, SVP ?
Merci d'avance
Function ShowFolderListmobi(path)
'présentation originale: 1 feuille appelée req...
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim Dossiers: Set Dossiers = fso.GetFolder(path)
Dim fichiers: Set fichiers = Dossiers.Files
Dim fichier, f, strListe
For Each fichier In fichiers
Set f = fso.GetFile(fichier)
If fso.GetExtensionName(fichier) = "xls" Then
Dim objExcel, objClasseur
Set objExcel = CreateObject("Excel.Application")
Set objClasseur = objExcel.Workbooks.Open(fichier)
'test existence d'une feuille "référence" comme 1ère feuille, si pas on la renomme
'MsgBox objClasseur.Sheets(1).Name,,"Nom de la Feuil1 avant modification"
If objClasseur.Sheets(1).Name <> "Référence" Then
objClasseur.Sheets(1).Name = "clients"
End If
'Renommer la derniere feuille
If objExcel.ActiveWorkbook.Sheets(1).Name <> "Référence" Then
objExcel.ActiveWorkbook.Sheets.Add
objExcel.ActiveWorkbook.Sheets(objExcel.Sheets.Count - 1).Name = "Référence"
End If
'écriture du nom du fichier dans la 1ère cellule de "Référence " c'est pour çà qu'il faut copier à partir de la ligne 2
C'est ici que devrait s'intercaler
couper lignes 1 à 12 de la feuille "clients"
coller à partir de la ligne 2 dans la feuille "référence"
'WScript.Sleep "500"
'MsgBox objClasseur.Sheets(1).Name,,"Nom de la Feuil1 après modification"
objExcel.ActiveWorkbook.SaveAs fichier 'sauvegarde sous le même nom
objExcel.ActiveWorkbook.Saved = True 'sauvegarde true=oui false=non
'objExcel.DisplayAlerts=True 'remet l'alerte
'objExcel.Application.Visible=True 'remet la visibilité
objExcel.ActiveWorkbook.Close 'Fermeture d'Excel
Set objExcel = Nothing
Set objClasseur = Nothing
End If
Next
Set f = Nothing
Set fichiers = Nothing
Set Dossiers = Nothing
Set fso = Nothing
DoCmd.Hourglass False
End Function
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 5 oct. 2006 à 09:10
Salut,
Voili voilou
'Coupe les lignes 1 à 12 de la feuille "clients"
objExcel.ActiveWorkbook.Worksheets("clients").Rows("1:12").Cut
'Insert la selection coupé a partir de la ligne 2
'(la ligne 2 se retrouvera donc APRES la selection insérée
objExcel.ActiveWorkbook.Worksheets("Référence").Rows("2:2").Insert Shift:=xlDown
jeanluc065
Messages postés134Date d'inscriptionsamedi 23 septembre 2006StatutMembreDernière intervention 1 juin 2007 5 oct. 2006 à 09:23
SUPERRRRRRRRR,
Merci Julien, çà marche .
Et si je devais ajouter que la cellule A1 (clients)doit être éagle à "USER" pour que le couper coller soit effectué, quelle serait la syntaxe stp ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 5 oct. 2006 à 09:36
Salut,
Attention le code suivant est sensible a la Casse (si je ne me trompe pas)
Donc le Couper / Coller ne se fera pas si A1 = User
Si tu veux qu il se fasse quand meme tu dois utiliser Ucase
If objExcel.ActiveWorkbook.Worksheets("clients").Range("A1").Value = "USER" Then
'Coupe les lignes 1 à 12 de la feuille "clients"
objExcel.ActiveWorkbook.Worksheets("clients").Rows("1:12").Cut
'Insert la selection coupé a partir de la ligne 2
'(la ligne 2 se retrouvera donc APRES la selection insérée
objExcel.ActiveWorkbook.Worksheets("Référence").Rows("2:2").Insert Shift:=xlDown
End If