[VBA] Copier/Coller sur la première cellule vide d'un autre classeur

AntoineM

XLDnaute Junior
Bonjour,

Dans le cadre de mon travail, j'essais de me former au VBA. Mais je pars de très bas et les lois de la pesanteurs ne semblent pas décidées à me laisser m'élever.

Je travail sur un fichier d'inventaire. J'ai créer un classeur "Synthèse.xlsx". J'aimerais que ce dernier soit mis à jour par macro liée à un bouton.

J'explique : Mon premier fichier est une matrice d'inventaire, que l'on remplirais donc tous les jours sans garder de sauvegarde. J'aimerais qu'il reste cependant une trace de ce qu'on compte tous les jours dans mon fichier synthèse.

¨Pour ce faire, je voulais créer un bouton, qui serait lié à une macro qui :
- Sélectionnerais la plage à copier
- En ferait une copie
- Et la collerais sur la dernière cellule vide en partant de A1 (et en allant à droite)

Petites précisions :
Mon classeur "synthèse" s'ouvre automatiquement avec une macro.

Bref (merci d'avoir suivi):
Ma macro est la suivante :

Sub nouvelessai()

Dim Plagecopie As Range, Plagecible As Range

Set Plagecopie = _
Workbooks("Inventaires.xlsm").Worksheets("Lundi").Range("K2:K11")

Set Plagecible = _
Workbooks("Synthese.xlsx").Worksheets("Test").Range("A1").End(xlToRight).Offset(0, 1)


With Plagecopie
Set Plagecible = Plagecible.Resize(.Rows.Count, .Columns.Count)
End With

Plagecible.Value = Plagecopie.Value


End Sub


Cela me donne une erreur 1004 sur la ligne en gras,

Merci d'avance à celui ou ceux qui pourra m'apporter ses connaissances,

Antoine.
 

Pièces jointes

  • Inventaires.xlsm
    63.4 KB · Affichages: 115

Paf

XLDnaute Barbatruc
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

Bonjour et bienvenu sur XLD

et pourquoi pas:

Code:
Workbooks("Inventaires.xlsm").Worksheets("Lundi").Range("K2:K11").Copy _
Workbooks("Synthese.xlsx").Worksheets("Test").Range("A1").End(xlToRight).Offset(0, 1)

A+
 

Tibo62

XLDnaute Occasionnel
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

Je pense que tu trouvera ton bonheur dans ces phrases :

Sélectionner une plage de la première à la dernière cellule non-vide d'une colonne
Range("A1", Range("A1").End(xlDown)).Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select

Sélectionner une plage de la dernière cellule non vide jusqu'à la première
Range("A25", Range("A25").End(xlUp)).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select

Sélectionner une plage de la première cellule de la colonne ou de la ligne jusqu'à la dernière cellule non-vide
Range("A1", Range("A1").End(xltoRight)).Select
Range(ActiveCell, ActiveCell.End(xltoLeft)).Select

Sélectionner la première cellule vide au bas de la colonne
Range("B3").End(xlDown).Offset(1, 0).Select

Sélectionner la première cellule vide à droite
Range("A1").End(xltoRight).Offset(1, 0).Select
 

AntoineM

XLDnaute Junior
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

Peut-être un début d'élément de réponse :
Sub copieII()

'Copie de la sélection sur la dernière ligne 'vide'
Sheets("Test").Range("A1").End(xlToRight).Offset(1, 1).Resize(10, 1).Value = _
Sheets("Lundi").Range("K2:K11").Value

'Affichage de la date sur la première ligne
Dim today As Date
today = Date
Sheets("Test").Range("A1").End(xlToRight).Offset(0, 1) = today

End Sub

Mais quand je veux mettre :
Workbooks("Synthese.xlsx").Sheets("Test")... ca me met une erreur 9.

Le code fonctionne sur un même classeur mais pas entre plusieurs j'ai l'impression :/
 

Tibo62

XLDnaute Occasionnel
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

Bonjour essaye ceci :

Sub Export()
Dim Wbk As Workbook
Dim Sh As Worksheet, aSh As Worksheet

Application.ScreenUpdating = False
'On ouvre le classeur destination Wbk
Set Wbk = Workbooks.Open("D:\....\toto.xls")
'La 2ème feuille de Wbk enfin toi elle est peut être en 3 4 5 6 enfin adapte à ton besoin: Sh
Set Sh = Wbk.Worksheets(2)
'Feuil1 de classeur source aSh
Set aSh = ThisWorkbook.Worksheets("Feuil1")

'Je copie A1:A100 de Feuil1 du fichier source vers la première cellule vide de la 2ème feuille du classeur de destination
aSh.Range("A1:E100").Copy Sh.Cells(Sh.Rows.Count, "A").End(xlUp)(2)
'J'ecrase la variable objet aSh (je n'en ai plus besoin)
Set aSh = Nothing
'Je ferme le classeur destination en sauvegardant
Wbk.Close True
'J'écrase les autres variables
Set Sh = Nothing
Set Wbk = Nothing
MsgBox "Export terminé"
End
 

AntoineM

XLDnaute Junior
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

Bonjour !

Merci pour ta réponse (encore).

J'ai adapté un peu ton code pour ne pas fermer le classeur (car j'ai demandé pour une plage mais j'en ai d'autre à copier).

Ca marche niquel merci beaucoup, enfaite c'est mon onglet "Test" de mon classeur cible qui faisait planté ma macro car avec les autres onglets ca marchaient niquel.

J'aurais une autre question sur l'activation d'un classeur ouvert en .csv

J'ai lu pas mal de topic sur le sujet, je préfère d'abord tenter ma chance avant de vous solliciter.

Merci (sans doute à bientot) pour tes réponses, elles m'ont vraiment aidé !

Bon weekend !
 

Tibo62

XLDnaute Occasionnel
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

si c'est juste pour ouvrir un fichier .csv avec excel utilise cette macro :

'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier CSV
Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierCSV.csv")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)


Si c'est pour plus ouvre un nouveau post sur le forum :)

A bientôt
 

AntoineM

XLDnaute Junior
Re : [VBA] Copier/Coller sur la première cellule vide d'un autre classeur

Oui c'est pour un fichier type : LIST111_13.02.2015_17.45
Avec evidemment la date et l'heure qui change en fonction de l'instant de creation ^^
Merci pour la macro, c'etait mon point de depart !
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 130
dernier inscrit
FRCRUNGR