Attribuer une valeur à toutes les cellules de la colonne

[Résolu]
Signaler
Messages postés
134
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
-
Messages postés
134
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
-
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

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 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
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut
objExcel.ActiveWorkbook.Sheets("Référence").Range("A:A") = fichier

 Drikce 06
Messages postés
134
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
1 juin 2007

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


 
Messages postés
134
Date d'inscription
samedi 23 septembre 2006
Statut
Membre
Dernière intervention
1 juin 2007

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