Affectation d'une valeur dans une cellule
Bonjour à tous !
J'aurais besoin de votre aide pour résoudre un traitement qui me paraissait simpliste et qui me fait suer ...
Grâce à un traitement, je récupère des valeurs dans un fichier EXCEL. Un bouton dans ce premier fichier me permet de créer un nouveau classeur avec ces valeurs... Tout marche sauf pour l'ajout de la ligne d'en tête du fichier créé !
Impossible d'ajouter une valeur dans les cellules !
Voici mon code :
' Ouverture du fichiers des départs
CheminDossier = "D:\Mes documents\Relevés armoire de commande\" & NomDossier & "\"
NomFichier = "Relevé Departs.xls"
' Si le chemin du dossier n'existe pas on le créé et on créé le fichier relié
If Not (RepertoireExiste(CheminDossier)) Then
MkDir CheminDossier
CreationFichierExcel (CheminDossier)
' On ouvre le fichier créé à la fin de la création
Workbooks.Open (CheminDossier & NomFichier)
Else
Workbooks.Open (CheminDossier & NomFichier)
End IfLa procédure :
Private Sub CreationFichierExcel(ByRef CheminDossier)
Dim xlApp As New Excel.Application
Dim xlBook As Workbook
Dim NomFichier As String
NomFichier = "Relevé Departs.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
CheminFichier = CheminDossier & NomFichier
' En tête première colonne
xlbook.Sheets("Feuil1").Cells(1, 1).Value = "Matricule commande"
xlbook.SaveAs CheminFichier
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End SubQuel est le traitement à effectuer pour réaliser cela ? Ou où mettre l'affectation des cellules !?!
du genre
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 09/12/2010 par jm
'
'
Rows("1:1").Select
Selection.Insert Shift:=xlDown
Range("A1").Select
ActiveCell.FormulaR1C1 = "titre1"
Range("B1").Select
ActiveCell.FormulaR1C1 = "titre2"
Range("C1").Select
End SubBonjour jmd et merci pour ta réponse rapide !
Malheureusement cela ne fonctionne pas ! Les entêtes s'affichent mais dans le fichier contenant les boutons ... Et non dans le fichier créé !
J'ai tout essayé je crois, ça doit surement venir de mon code mais je n'arrive pas à voir d'où ça peut venir !
en fait, tu veux que le code du fichier 1 s'exécute dans le fichier 2, avec la difficulté que le fichier 2 est créé par le fichier 1
suggestion ne pas créer le fichier 2
suggestion donc :
- faire un fichier MonModèle2
- y mettre un code qui crée une ligne d'en-tête avec les titres
- mettre ce code de telle sorte qu'il se joue à l'ouverture
- dans fichier 1, mettre un bouton qui duplique MonModèle2 et l'enregistre sous Fichier2
jouable ?
(moi, je ne suis pas assez calé en VBA, mais tu sembles assez costaud)
courage
bgrvfe
^^ Costaud n'est surement pas le mot sachant que je rame depuis hier sur un problème complétement banal (enfin... je croyais lol)
Merci pour la soluce, mais je pense qu'il y a plus simple que ça ! Je la testerais en dernier recours
Je te souhaite une bonne journée et si tu as une illumination n'hésites pas !
Bonjour,
J'ai modifié légèrement ton code et ça marche (j'ai enlevé quelques lignes mais tu pourras les remettre chez toi, mais ça fonctionne aussi sans !)
Sub CreationFichierExcel() 'J'ai enlevé Private et ton argument
'Dim xlApp As New Excel.Application
Dim xlBook As Workbook
Dim NomFichier As String
NomFichier = "Relevé Departs.xls"
CheminFichier = ActiveWorkbook.Path & "\" & NomFichier 'A remettre correctement dans ton code
'Set xlApp = CreateObject("Excel.Application")
Set xlBook = Workbooks.Add
xlBook.Activate 'J'active ce nouveau classeur pour être sûr d'écrire sur lui et pas dans le fichier contenant les noutons
' En tête première colonne
xlBook.Sheets("Feuil1").Cells(1, 1).Value = "Matricule commande"
xlBook.SaveAs CheminFichier
xlBook.Close
Application.Quit 'A changer
Set xlBook = Nothing
'Set xlApp = Nothing
End SubA+
Merci pour ta réponse ! Je vais modifier mon code en conséquence !
Mais j'ai trouvé d'où venait mon problème ... C'était bien une erreur dans mon code, mais ça venait de plus haut dans le traitement... Mauvaise initialisation de mon tableau, un des indices ne commençait pas à 0
Ce qui fait qu'à l'ajout des informations dans le second fichier, une ligne était en trop et écrasée mon entête...
Aïe Aïe Aïe ! En tout cas merci pour votre aide !
Bonne fin de journée !