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

  • Initiateur de la discussion Initiateur de la discussion Akortys
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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]
 
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
😉
 
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é.



,
 
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é 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour