Attribuer une valeur à toutes les cellules de la colonne

Résolu
jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007 - 5 oct. 2006 à 12:44
jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007 - 6 oct. 2006 à 16:22
Bonjour à tous,

Depuis access 2002, qui pourrait m'écrire la syntaxe pour attribuer à toutes les cellules de la colonne 17 de ma feuille (référence) le nom du fichier xls.  C:\aa\clients\bruxelles_12345.xls
Ceci pour éviter de devoir passer par une requête update

j'ai déjà ceci pour attribuer une valeur (fichier) à la cellule (1) de la feuille (Référence)

objExcel.ActiveWorkbook.Sheets("Référence").Select
      objExcel.Cells(1, 1).Value = fichier

merci d'avance
jl

4 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 oct. 2006 à 13:22
 Bonjour à tous....

Salut Jean-Luc

J'ai avancé un petit peu sur l'un des tes problèmes.


Pour les tests, peux-tu mettre un fichier .xls, qui n'a pas déjà été modifié,
dans un répertoire de test et lancer le bout de code ci-dessous.

Pour mes tests, j'ai crée un .xls avec:
- 4 feuilles, peut importe le nom;
- dans la seconde feuille, j'ai écrit n'importe quoi dans certaines cellules.

Je n'arrive pas à ce que la feuille "Référence" soit positionnée en dernière position.
Le copier/coller des 12 lignes de "ident1" vers "Référence" s'effectue bien.

jean-marc




 


Dim path: path = "D:\test1_camions"   'mon répertoire de test, avec 1 fichier
Call Modif_File_Excel(path)


Function Modif_File_Excel(path)
Dim fso:        Set fso = CreateObject("Scripting.FileSystemObject")
Dim Dossiers:   Set Dossiers = fso.GetFolder(path)
Dim fichiers:   Set fichiers = Dossiers.Files


Dim fichier, f
For Each fichier In fichiers
    Set f = fso.GetFile(fichier)
    If fso.GetExtensionName(fichier) = "xls" Then
       Dim objExcel    : Set objExcel = CreateObject("Excel.Application")
       Dim objClasseur : Set objClasseur = objExcel.Workbooks.Open(fichier)


       'enlève l'alerte       oui=True   non=False
       objExcel.DisplayAlerts = False


       'Cache le classeur     oui=True   non=False
       objExcel.Application.Visible = True


       'Renomme la première feuille
       objClasseur.Sheets(1).Name = Replace(Replace(fichier, Left(path, InStrRev(path, "")),""),".xls","")


       'Renomme la deuxième feuille
       objClasseur.Sheets(2).Name = "ident1"


       'Renomme la troisième feuille
       objClasseur.Sheets(3).Name = "ident2"


       'On se positionne sur la dernière feuille
       objExcel.ActiveWorkbook.Sheets(objExcel.Sheets.Count).Select     


       'Ajout d'une feuille
       'objExcel.ActiveWorkbook.Sheets.Add
       'objClasseur.Sheets.add(before:=objExcel.Sheets.Count)


       'Renommer la derniere feuille
       objExcel.ActiveSheet.Name = "Référence"


       'on met le nom du fichier dans la 1ère cellule de "Référence"
       objExcel.Cells(1, 1).Value = fichier


       'on se positionne sur la cellule au-dessous
       objExcel.Cells(2, 1).Select


       'on copie les lignes 2 à 12 de la feuille "ident1"
       objExcel.ActiveWorkbook.Sheets("ident1").Rows("2:12").Copy


       'on colle dans la feuille "Référence"
       objExcel.ActiveSheet.Paste


       'vidage de la mémoire liée à Excel suite à la copie précédente
       objExcel.Application.CutCopyMode = False


       'Mise en forme des colonnes
       objExcel.Columns("A:G").Select
       objExcel.Selection.Columns.AutoFit


       'on se re-positionne sur la 1ère cellule de la 1ère feuille
       objExcel.Range("A1").Select


       'objExcel.ActiveWorkbook.Sheets.Move(:=objExcel.Sheets.Count-1)
       objExcel.ActiveWorkbook.SaveAs fichier


       'sauvegarde le classeur
       objExcel.ActiveWorkbook.Saved = True 'sauvegarde true=oui false=non


       'Affiche le classeur   oui=True   non=False
       objExcel.Application.Visible = True


       'remet l'alerte       oui=True   non=False
       objExcel.DisplayAlerts = True


       'objExcel.Application.Visible=True 'remet la visibilité
       objExcel.ActiveWorkbook.Close 'Fermeture d'Excel


       'Destruction des objets
       Set objExcel = Nothing
       Set objClasseur = Nothing
    End If
    Set f = Nothing
Next
Set fichiers = Nothing
Set Dossiers = Nothing
Set fso = Nothing
End Function
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
5 oct. 2006 à 13:12
Salut
objExcel.ActiveWorkbook.Sheets("Référence").Range("A:A") = fichier

 Drikce 06
0
jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007
5 oct. 2006 à 14:47
Bonjour Jean-Marc,


Un très très grand merci pour ton aide sans laquelle je serais resté planté sur place.


Pour le problème de la position de la feuille, c'est ok, j'en tiens compte.
Super !!
JL


 
0
jeanluc065 Messages postés 134 Date d'inscription samedi 23 septembre 2006 Statut Membre Dernière intervention 1 juin 2007
6 oct. 2006 à 16:22
Bonjour Jean-Marc

Dans cette fonction, serait-il possible d'inclure une commande afin que : dans la feuille "ident1" pour effacer les premières colonnes (de une à plusieurs, c'est pas fixe  ) si elles sont vides ?

à la suite de

'on copie les lignes 2 à 12 de la feuille "ident1"
       objExcel.ActiveWorkbook.Sheets("ident1").Rows("2:12").Copy
       'on colle dans la feuille "Référence"
       objExcel.ActiveSheet.Paste

       'vidage de la mémoire liée à Excel suite à la copie précédente
       objExcel.Application.CutCopyMode = False

Merci d'avance Jean-Marc.
JL
0
Rejoignez-nous