olivier857
Messages postés188Date d'inscriptionmardi 21 décembre 2004StatutMembreDernière intervention10 avril 2008
-
30 nov. 2006 à 13:42
neo2k2
Messages postés126Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 9 novembre 2009
-
5 nov. 2007 à 16:14
Bonjour,
J'ai un petit pb, je souhaiterai selectionnerune suite de cellules dans une colonne pour la copier ailleurs, or je souhaite le faire avec l'objet cells et non range, mais je n'y arrive pas.
je m'explique je veus par exemple faire l'équivalent de cà :
Range("C2:C41").Select
mais avec l'objet cells puisque la plage de cellule est variable et est calculée en amont dans le programme.
J'ai donc essayer le code suisvant qui bien sure ne marche pas :
neo2k2
Messages postés126Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 9 novembre 20093 5 nov. 2007 à 16:14
Je crois que vous vous compliquez la tâche...
' copier-coller de toute la feuille par exemple
' Source:
Sheets("Feuille1").Select
Cells().Select
Selection.Copy
' Destination:
Sheets("Feuille2").Select
Cells().PasteSpecial (xlPasteAll)
Maintenant, à la place de Cells() (ou Cell()) pour une sélection mois large ou plus précise, tu peux indiquer :
- soit Range(Cells(1,1), Cells(x,y), etc.)
- soit Range("A1:" & Range("A65535").End(xlUp).Row) en admettant que tu veuilles sélectionner toutes les valeurs de la colonne A, p. ex.
Il est effectivement préférable d'utiliser Cells() à Range() mais parfois il faut revenir à l'ancienne méthode.
Ensuite, les différentes réponses ont négligé un aspect très (trop) simple dans ton cas : les boucles!
Cells() ne s'utilise pas exactement comme Range(), d'où le fait que les méthodes ne marchent pas (toujours).
Cells() = cellule précise (en général)
Range() = plage de données, de cellules, etc.
En gros, Cells() = Range("A1:" & Range("A65535").End(xlDown).Column)
Et Cells(1,1) = Range("A1")
Or Range("nom d'une plage de données") n'a, si je me rappelle bien, pas d'équivalent avec Cells().
Donc pour faire la sélection de ta plage en utilisant le sélecteur Cells() et .Select, je ferais plutôt :
Sheets("Feuille1").Select
Dim i As Integer/Long
For i = 1 to ligne_calc
Cells(1, & i).Copy
Next i
Puis tu choisis ta destination et tu fais un .PasteSpecial(xlPasteAll)
Sheets("Feuille2").Select
Cells().PasteSpecial (xlPasteAll)