Macro coller dans la première colonne vide

Macroblem -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

Bonjour j'ai deux feuilles excel. une feuille (DONNEES) contenant des données, une deuxième feuille (Stockage donnees) pour récupérer les données de la 1ere feuille et conserver. les données de la 1ere feuille varient en fonction des échantillons d'où l’intérêt de récupérer les données en cas de besoin.

je veux une macro pour copier dans la première feuille et coller dans la deuxième feuille (jusque là tous va bien). Le problème c'est que je dois coller les données à partir de la première colonnes vide (sur la ligne E16) de la deuxième page.
j'ai essayé cette macro et tant d'autre mais j'y arrive pas. Aidez moi s'il vous plait.

cordialement

Sub Macro1()
'
' Macro1 Macro
'
Dim emptycolumn As Long

Sheets("DONNEES").Select
Range("A53").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy Cells(16, Columns.Count).End(xlToRight).Offset(, 1)

End Sub

2 réponses

  1. Macroblem
     
    Je vous remercie de votre réponse.

    Je n'y arrive toujours pas; Je sais chercher mais je ne sais pas faire le code qui me permet de coller dans la dernière colonne.

    Ce serait possible de me donner un exemple s'il vous ?

    merci d'avance !
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      je dois coller les données à partir de la première colonnes vide (sur la ligne E16)

      il y a une incohérence c'est la cellule E16 ou sur la ligne 16 de la 1ère colonne vide

      je penche pour la 2ème. Voici donc la macro:

      il faudra adapter le nom des feuilles et la plage de copie

      Option Explicit
      Sub test()
      Dim DerniereColonneUtilisee As Integer
      DerniereColonneUtilisee = Worksheets("Feuil2").Cells(1, Columns.Count).End(xlToLeft).Column + 1 'où X est le numéro de la ligne
      Worksheets("Feuil1").Range("A1:D20").Copy _
          Destination:=Worksheets("Feuil2").Cells(16, DerniereColonneUtilisee)
      End Sub
      


      ce code il était dans les 2 liens!
      0
      1. Macroblem > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        Merci beaucoup pour votre réponse.

        J'ai copié coller le code, celui qui est souligné et en italique ne fonctionnement pas, je ne sais pas pourquoi.

        sachant je ne veut pas coller qu'une plage définie, j'utilise "Range(Selection, Selection.End(xlToRight)).Select"
        et Range(Selection, Selection.End(xlDown)).Select" pour prendre en compte les variations de plage. Serait-il possible de m'aider avec l'ensemble s'il vous plait ? J'y parviens vraiment pas. encore merci pour tout.


        19.ccm2.net/qxJdZLfWYPuEYH8Wf699lOxccmw=/b1f16206e5d14184bd7564b620dd3a16/tmp/Capture.PNG
        |fancy]



        Sub Macro1()
        '
        ' Macro1 Macro
        Dim DerniereColonneUtilisee As Integer
        DerniereColonneUtilisee = Worksheets("Stockage donnees").Cells(1, Columns.Count).End(x1ToLeft).Column + 1 'où X est le numéro de la ligne
        Sheets("DONNEES").Select
        Range("A53").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.SpecialCells(xlCellTypeVisible).Select
        Selection.Copy Destination:=Worksheets("stockage donnees").Cells(16, DerniereColonneUtilisee)

        End Sub
        0
      2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Macroblem
         
        voir la bonne casse entre:

        DerniereColonneUtilisee = ("Stockage donnees")


        et:

        Destination:=Worksheets("stockage donnees")
        0