cs_bijnok
Messages postés16Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 avril 2008
-
7 avril 2008 à 17:38
cs_bijnok
Messages postés16Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 avril 2008
-
10 avril 2008 à 17:11
Bonjour, je debute en VBExcel et je souhaite creer automatiquement de nouveaux classeurs dont les noms est contenu dans deux colonnes (id et nom) , et inserere le nom et l`id dans la nouvelle feuille ainsi qu`une structure predefinie.
J`ai reussi a creer une macro permettant de creer automatiquement tous mes nouveaux classeurs, voici le code:
Sub test()
Dim newW As Workbook
Application.ScreenUpdating = False
For i = Sheets(1).Range("A50000").End(xlUp).Row To 1 Step -1
fName = Sheets(1).Cells(i, 1).Value & " " & Sheets(1).Cells(i, 2).Value & ".xls"
Set newW = Workbooks.Add
newW.SaveAs Filename:=fName
Workbooks(fName).Close
Next
Application.ScreenUpdating = TrueEnd Sub
puis creation d`un bouton:
Private Sub CommandButton1_Click()
test
End Sub
Maintenant j`aimerais que dans chque feuille apparraisse une structure predefinie identique dans tous les classeurs (en vert sur l`image) ainsi que l`id et le nom utilises (en gris sur l`image)... mais je ne vois pas comment inserer un copy-paste dans la boucle ci-dessus.
Merci d`avance
Bijnok
A voir également:
Excel copie automatique cellule d'une feuille à l'autre vba
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 7 avril 2008 à 17:59
Salut,
Bon ben deja, t'es pas dans le bon theme... ben si... donc le bon theme le voici : [infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_LANGAGES-DERIVES_287.aspx Langages dérivés] / [infomsgt_VBA_244.aspx VBA] /
Sub test()
Dim newW As Workbook
Application.ScreenUpdating = False
For i = Sheets(1).Range("A50000").End(xlUp).Row To 1 Step -1
fName = Sheets(1).Cells(i, 1).Value & " " & Sheets(1).Cells(i, 2).Value & ".xls"
Set newW = Workbooks.Add
newW.SaveAs Filename:=fName
With Workbooks(fName)
'ici on crée une nouvelle feuille par copie d'une feuille template d'un fichier template prealablement ouvert
Workbooks("Template.xls").Worksheets("Template").Copy Before:= .Sheets(1)
.Close
End With
Next
Application.ScreenUpdating = True
End Sub
cs_bijnok
Messages postés16Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 avril 2008 8 avril 2008 à 10:45
Merci pour le code, c`est presque xce que je voudrais mais je souhaiterais ne pas a voir a confirmer la sauvegarde parce que je dois avoir quelquechose comme 300 classeurs a creer! De plus, j`aimerais que les cellules A2 et B2 contiennent respectivement l`id et le nom utilise comme filename.
Est-ce possible avec une formule de reference sur une feuille contenant les noms du type
`=(i,1)` pour la colonne A et `=(i,2)` pour la B ?
cs_bijnok
Messages postés16Date d'inscriptionlundi 7 avril 2008StatutMembreDernière intervention10 avril 2008 10 avril 2008 à 17:00
J`ai essaye ceci:
Sub test()
Dim newW As Workbook
Application.ScreenUpdating = False
'Application.DisplayAlerts = False
For i = Sheets(1).Range("A50000").End(xlUp).Row To 1 Step -1
Set newW = Workbooks.Add
newW.SaveAs Filename:=FName
With Workbooks(FName)
'ici on crée une nouvelle feuille par copie d'une feuille template d'un fichier template prealablement ouvert
Workbooks("structure.xls").Worksheets("timetable") .Copy Before:=.Sheets(1)
Sheets(1).Cells(2, 1).Value = A2
Sheets(1).Cells(i, 2).Value = B2
.Close
End With
Next
'Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
mais la boucle s`arrete apres la creation du premier classeur (toujours le meme probleme de nom de sauvegarde vide).
De plus la cellule B2 de la nouvelle feuille reste vide alors que la A2 contient l`Id que je souhaite. Je ne compremd vraiment pas grand chose a VBA bien que je soit presque bon en C et Java...
Aussi, je ne fais que copier la valeur en A2, alors que je souhaiterais copier une formule du type "=............." afin de faire reference a la base de donnee; de cette facon chacune des feuilles sera mise a jour avec la base de donnees principale...
Enfin, le "display alerts" ne fait rien (je sais qu`il est en commentaire ici).
Merci pour votre aide, j`en ai grandement besoin.
Vous n’avez pas trouvé la réponse que vous recherchez ?