Excel et VB
Bonjour,
J'ai quelques problèmes avec Excel. Je dois générer plus ou moins 4000 fiches qui comportent chacune 6 champs de saisie. Mais je n'ai pas d'expérience en ce qui concerne les macro et encore moins en ce qui concerne VB.
Voici mon problème:
J'ai une "fiche" type (vierge) qui comporte les 6 champs à remplir. J'ai un autre document excel avec les données (rangées dans un tableau) à insérer dans chaque fiche (une ligne du tableau correspond à une fiche).
Pour le moment, j'ai trouver ces lignes-ci pour enregistrer les pg excel:
Public Sub CommandButton1_Click() 'copie sauvegarde classeur
Dim nom As String
nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom
rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
End Sub Mais je n'ai pas besoin de la date dans le nom du document il me faudrait une incrémentation (1,2,3...) et pas de bouton sinon faut que j'ouvre les 4000 fiches :S.
J'ai aussi créé la macro suivante:
Sub Remplissage()
'
' Remplissage Macro
'
'
Range("C8").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C5"
Range("F8").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C4"
Range("J8").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C9"
Range("C13").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C1"
Range("G13").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C2"
Range("J13").Select
ActiveCell.FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C3"
Range("J14").Select
End SubQui elle sert juste a affecter la valeur au champ de la fiche à partir du tableau contenu dans le 2eme document.
Ce que je voudrait faire, c'est une boucle while qui répette ces tâches en incrémentant (pour passer à la ligne suivante du tableau) en enregistrant chaque fois la fiche avec le nom et le n°.
Je sais pas si j'ai été assez claire?
Je vous remercie de pretter attention à mon problème.
Bonjour,
Sur base de quelle ligne sont faites tes 4000 fiches ? Tu parles de 1, 2, 3 mais on ne sait pas de quelle cellule tu pars. A1, A100, Z5 ??
A moins que ta macro soit pour la première ligne ? D'où la suivante serait Range("C9"... etc ?
Tu peux déjà corriger ta macro comme suit :
Sub Remplissage()
Range("C8").FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C5"
Range("F8").FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C4"
Range("J8").FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C9"
Range("C13").FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C1"
Range("G13").FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C2"
Range("J13").FormulaR1C1 = "=[L1RACK_FC_EA.xls]L1RACK_FC_EA!R2C3"
Range("J14").Select
End SubLe mieux serait de mettre ton fichier avec données non confidentielles avec un mot d'explication.
Amicalement
Dan
Oui la macro est bien celle de la première ligne. Je peux te donner les fichiers mais je ne sais pas les metre ici donc par mail peut-être??
Merci de t'interessé à mon problème.
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonsoir à tous,
Salut Dan,
picpic62, Si je comprends bien, tu veux créer un fichier à chaque fiche ?
Il y a mieux à faire !
Envoie ta fiche "modèle" remplie avec des données "bidon",
regarde en haut de page Joindre un fichier
Amicalement
Claude.
re,
En C8 tu copies une formule venant de la cellule E2 de l'autre fichier, puis D2, puis I2 etc...
Lorsque tu mets ta formule en C9, tu pêches la formule de E3 (puis F9 dans D3, ...) dans l'autre fichier et ainsi de suite pour 4000 lignes ?
Autre chose à savoir. S'agit-il de copier une formule d'un fichier vers l'autre ou simplement des données ? Là ta macro copie une formule qui sera toujours liée au fichier L1Rack_FC_EA.xls
Si tu places ton fichier, suis l'indication de Dubois.
Amicalement
Dan