Copier cellule vers un autre classeur

Signaler
Messages postés
12
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
18 juillet 2012
-
Messages postés
12
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
18 juillet 2012
-
Bonjour,

J'aimerai copié une cellule par exemple A2 du fichier "RESP RECRU" vers un autre classeur en A2
j'ai déjà mit se code pour la création de mon nouveau classeur

Private Sub fin_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim nomfichier As String

nomfichier = Range("c1") & ".xls"

'On créer l'objet Excel/color
Set xlApp = CreateObject("Excel.Application")
'On défini le nombre d'onglets (ici 1)
xlApp.SheetsInNewWorkbook = 1
'On ajoute un classeur
Set xlBook = xlApp.Workbooks.Add
'On donne un nom au classeur
xlBook.SaveAs (nomfichier)
'On rend le classeur visible
xlApp.Visible = True
'On créer l'objet onglet dans le nouveau classeur créé
Set xlSheet = xlBook.Worksheets(1)
'On affecte un nom aux l'onglets
xlSheet.Name = "resulat"

'On remet la propriété de l'application à 3 (par défaut)
xlApp.SheetsInNewWorkbook = 3
'On ferme l'application
xlApp.Quit

End Sub

merci de votre aide

bon futur a tous

4 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

euhhhh ! la création de ton nouveau fichier s’effectue depuis excel si je ne m'abuse...
alors pourquoi utiliser un object excel :

xlApp = CreateObject("Excel.Application") 


ceci aurait suffit :

Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim nomfichier As String

nomfichier = Range("c1") & ".xls" 
Set xlBook = Workbooks.Add
xlBook.SaveAs (nomfichier)
Set xlSheet = xlBook.Worksheets(1)
'On affecte un nom aux l'onglets
xlSheet.Name = "resulat" 


ce qui permettrait, d'ailleurs, de travailler sur ce nouveau fichier via la variable xlBook par la suite

De plus ou ce trouve ce fichier "RESP RECRU" ?

- est-il déjà ouvert ?
- est-il le fichier qui porte les macros ?
- devra-il être ouvert par l'utilisateur lors de l’exécution de la macro ?
- la macro doit elle être capable de retrouver ce fichier par elle même ?


A+
Messages postés
12
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
18 juillet 2012

mon fichier " RESP RECRU" est un fichier ou s'affiche des valeurs
dessus j'ai un bouton "fin" qui me lance la création de mon "resultat.xls"
ainsi je veux copier que certaine cellules.
Oui mon fichier "RESP RECRU" sera toujours ouvert et il comporte bien la macro
mon fichier "resultat" sera toujours dans le même dossier mais s'appellera de façon différente a chaque fois celon une variable.
Ce qui que quand je lance "resp recru" , on clic sur le bouton fin
un traitement de données se fait
la création d'un nouveau xls
et la copie de données sur ce nouveau xls
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Par exemple a la suite du bout de macro que je t'ai donné:

Dim NbNewSheetByDefault as Long
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim nomfichier As String

nomfichier = Range("c1") & ".xls"
'note qu'il y a peut être des gens qui comme moi ont déjà configuré excel pour n'avoir qu'une feuille à la 
'création du fichier. Il est de bon ton quand on change ce type de paramétré de revenir à l’état initial.
NbNewSheetByDefault = Application.SheetsInNewWorkbook
if NbNewSheetByDefaul > 1 then Application.SheetsInNewWorkbook = 1 
Set xlBook = Workbooks.Add
xlBook.SaveAs (nomfichier)
if Not NbNewSheetByDefaul Application.SheetsInNewWorkbook then Application.SheetsInNewWorkbook NbNewSheetByDefaul
Application.SheetsInNewWorkbook = 3
Set xlSheet = xlBook.Worksheets(1)
'On affecte un nom aux l'onglets
xlSheet.Name = "resulat" 

'Copie des cellules vers le fichier résultat
With ThisworkBook
   .Range("A2").copy destination:=xlSheet.Range("A2")
End With

A+
Messages postés
12
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
18 juillet 2012

merci beaucoup

j'ai juste modifé en bas j'ai mit
thisworbook.sheets("candidat").Range("A2").copydestination:=xlSheet.Range("A2")
car ca ne fonctionnait pas

par contre j'ai un autre classeur qui s'ouvre et qui s'appelle classeur1 ou 2 etc ...


bon futur a tous