XL 2010 VBA : Sélection d'une colonne à partir de la 2eme ligne

Akortys

XLDnaute Junior
Bonjour,

Un petit coup de main serait le bienvenu.
J'ai mis en place un bout de code vba pour copier-coller le contenu d'une colonne dans une autre feuille excel.
Le souci c'est que cela me copie l'ensemble de la colonne. Je ne voudrais pas recopier l'entête de la colonne qui d'un fichier à l'autre n'est pas la même.

Sachant que je ne connais pas par avance le nombre de lignes à coller c'est pour cela que je sélectionnais l'ensemble de la colonne.

code en place
VB:
    Windows("FichierSource.xlsm").Activate
    Columns("O:O").Select
    Selection.Copy
    Windows("FichierArrivee.xls").Activate
    Columns("E:E").Select
    ActiveSheet.Paste
Je pensais faire un truc du style
Columns("E2:E").Select

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Par exemple :
VB:
Dim R As Range
Set R = Workbooks("FichierSource.xlsm").Worksheets(1).[O2:O1000000]
Set R = R.Resize(R.Rows(1000000).End(xlUp).Row - 1)
R.Copy Destinationh:=Workbooks("FichierArrivee.xls").Worksheets(1).[E2]
 

patricktoulon

XLDnaute Barbatruc
re
si c'est juste pour les valeurs
on copie pas mais value de l'un = value de l'autre
et on travaille avec uniquement ce qui est remplie
VB:
Sub test()
    With Workbooks("FichierSource.xlsm").Sheets(1)
        Set plage = .Range("O1", .Cells(Rows.Count, "O").End(xlUp))
        Workbooks("FichierArrivee.xlsm").Sheets(1).Range("E2").Resize(plage.Rows.Count) = plage.Value
    End With
End Sub
;)
 

Akortys

XLDnaute Junior
Merci pour vos réponses. J'ai procédé autrement car je me suis aperçu que j'avais une variable qui définissait la taille de mon tableau.

du coup j'ai pu mettre en place le code ci-dessous :
VB:
    Windows("FichierSource.xlsm").Activate
    Range("O2", "O" & jMax).Select
   Selection.Copy
    Windows("FichierArrive.xls").Activate
    Range("E2", "E" & jMax).Select
    ActiveSheet.Paste
Encore merci de votre réactivité.



,
 

patricktoulon

XLDnaute Barbatruc
re
on le répétera jamais assez; les activates sont une source de lenteur

qu'est ce qui a que tu comprends pas dans :


VB:
  workbooks("FichierArrive.xls"). Range("E2", "E" & jMax).value=workbooks("FichierSource.xlsm"). Range("O2", "O" & jMax).value
c'est pourtant pas compliqué ;)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas