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

Akortys

XLDnaute Occasionnel
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 Occasionnel
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é ;)
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 889
Membres
101 831
dernier inscrit
gillec