XL 2013 Copie d'une colonne d'une feuille sur une autre d'un autre classeur

flo189

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à copier les données d'une colonne A (de la cellule A3 à A65536) d'un classeur A sur une feuille "Stock" d'un classeur B qui me sert de base de données générales.

Sur ce classeur B, il faut que les données soient copiées sur la colonne A à la suite des données existantes.

Ci-joint mon fichier.

Merci de votre aide.
 

Pièces jointes

  • test.xlsm
    26.1 KB · Affichages: 36
  • test.xlsm
    26.1 KB · Affichages: 38

Lone-wolf

XLDnaute Barbatruc
Re : Copie d'une colonne d'une feuille sur une autre d'un autre classeur

Bon... bein... si tu insiste


Code:
Sub Copier()
Dim Wb, AWb As Workbook
Application.ScreenUpdating = False
    
'Modifier le chemin C:\Users\flo\Desktop\ ainsi que le nom des classeurs et des feuilles
    
'Ouvre le Classeur2 ou Classeur de destination
Set AWb = ThisWorkbook 'C'est le Classeur de saisie
Set Wb = Workbooks.Open("C:\Users\flo\Desktop\Classeur2.xls")  'C'est le Classeur de destination
    
'Transfert les données saisies du Classeur de saisie dans le Classeur2
AWb.Sheets(1).Range("a3:a65536").Copy Wb.Sheets(1).Range("a65536").End(xlUp)(2)
AWb.Save
'Referme le Classeur2 en sauvegardant les modifications
Wb.Close True
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

flo189

XLDnaute Occasionnel
Re : Copie d'une colonne d'une feuille sur une autre d'un autre classeur

Merci Lone pour ta réactivité.

Mais mon classeur 2 n'est jamais enregistré au même endroit et jamais sous le même nom c'est une variable

J'avais commencé le code ci-dessous mais j'ai une erreur au moment ou je veux copier la colonne A à partir de la celulle 3 d'un classeur X sur le classeur que je t'ai mis en copie sur mon premier post sur la feuille Stock. Sachant que sur la feuille stock je veux une base de données et que les données importées s'ajoutent au fur et à mesure.


Ou je bute, je t'ai mis la ligne du code en rouge.

Sub Ouvre()

Dim wbMyWb As Workbook
Dim Nom_Fichier As Variant
Dim Classeursource As String
Dim LastRow As Long

Nom_Fichier = Application.GetOpenFilename
If Nom_Fichier = "Faux" Then
Exit Sub

End If

Set wbMyWb = Workbooks.Open(Nom_Fichier)

Classeursource = wbMyWb.Name

Windows("test.xlsm").Activate

With ActiveWorkbook.Sheets("Feuil1")

.Range("A3:A65536").Value = Workbooks(Classeursource).Sheets(1).Range("A" & LastRow + 1)


Sheets("Feuil1").Select

End With

End Sub

Merci beaucoup pour ton aide
 

Lone-wolf

XLDnaute Barbatruc
Re : Copie d'une colonne d'une feuille sur une autre d'un autre classeur

flo...flo...

Tu peux m'expliquer pourquoi tu n'as pas dit ça tout de suite?! :mad:

J'éspère que cette fois tu as tout dit, oubien il y a encore autre chose à faire avant que je modifie la macro en conséquence?

Et si j'ai bien compris: tu copie une première fois la plage (65533 cellules) dans le classeur test, tu l'enregistre sous "Test1" par exemple, jusque là ok. Tu réinscrit des données dans le classeurs A et tu copie la plage (65533 cellules) à la suite dans le classeur "Test", c'est bien ça?.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Copie d'une colonne d'une feuille sur une autre d'un autre classeur

Re flo,


Code:
Sub Copier()
Dim Wb, AWb As Workbook, plage As Range
Application.ScreenUpdating = False
   
'Modifier le chemin C:\Users\flo\Desktop\ ainsi que le nom des classeurs et des feuilles
   
Set AWb = ThisWorkbook 'C'est le Classeur de saisie

'Ouvre le Classeur2 ou Classeur de destination
Set Wb = Workbooks.Open("C:\Users\flo\Desktop\test.xlsm")  

'Transfert les données saisies du ClasseurA de saisie dans le ClasseurB et enregistre
AWb.Sheets("Feuil1").Range("a2:a" & Range("a65536").End(xlUp).Row).Copy  _ Wb.Sheets("Stock").Range("a65536").End(xlUp)(2)
AWb.Save

'Ouvre la boîte de dialogue "Enregistrer sous"
Application.Dialogs(xlDialogSaveAs).Show

Application.ScreenUpdating = True
End Sub
 
Dernière édition:

flo189

XLDnaute Occasionnel
Re : Copie d'une colonne d'une feuille sur une autre d'un autre classeur

Bonjour Lone,

Effectivement je pensais que tu avais ouvert mon fichier du premier post, excuse-moi.

Pour reprendre l'explication :
Je souhaiterais sur mon classeur "test" sur la feuille "stock" :
- dès que je clic sur le bouton import que ça m'ouvre une fenêtre me permettant d'aller chercher un autre classeur (mon début de macro qui fonctionne)
- une fois ce classeur ouvert je veux copier les données de la colonne A à partir de la cellule 3 sur mon classeur "test", sur la feuille "stock", à la suite des données existantes de la colonne A (c'est ça que je parviens pas à faire)

Encore merci de ton aide.
 

Lone-wolf

XLDnaute Barbatruc
Re : Copie d'une colonne d'une feuille sur une autre d'un autre classeur

Alors voici la macro,

j'ai fait un test en copiant la colonne A de 4 classeurs différents, pas de problèmes de mon côté.


Code:
Sub test()
Dim Wbdest As Workbook, NomFichier
Application.ScreenUpdating = False
        On Error GoTo ErrHandler
    NomFichier = Application.GetOpenFilename("Fichiers Excel (*.*), *.*")
    If NomFichier = "" Then Exit Sub
    Workbooks.Open NomFichier
    Set Wbdest = ThisWorkbook
    ActiveWorkbook.ActiveSheet.Range("a3:a" & Range("a65536").End(xlUp).Row).Copy _
    Wbdest.Worksheets("Stock").Range("a65536").End(xlUp)(2)
        Application.DisplayAlerts = False
    Wbdest.Save
 ActiveWorkbook.Close savechanges:=False
ErrHandler:
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 535
dernier inscrit
moimeme1