Sélectionner et copier une plage de cellules

mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour,
Dans un code Excel vba, j'ai défini dans Feuil2  deux objets Range nommés Debut et Fin . En supposant par exemple que:
* Debut soit la cellule A1
* Fin soit la cellule A10
1) comment définir l'objet Range nommé MaPlage qui serait la zone A1:D10
2) pour ensuite la copier et la coller dans la feuil1 en cellule E300 (par exemple)


Windows / Chrome 123.0.0.0

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

(re)bonjour,

d'où vient D10?

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 

un exemple:

Option Explicit

Private Sub tt()
Dim debut As Range, fin As Range, maplage As Range
Set debut = Sheets("2").[a1]
Set fin = Sheets("2").[d10]
Set maplage = Range(debut, fin)
maplage.Copy Sheets("1").[f12]
End Sub
0
mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   18
 

C'est 3 colonnes après la colonne A

0
mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   18 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

Merci pour ta réponse!
Mais les adresses A1 et D10 sont des exemples pour imager le problème.
En fait j'ai du code qui détermine les deux Range Debut et Fin ! 
Je ne sais pas comment coder la définition de MaPlage que j'exprimerais en langage courant par " sélectionner la plage de cellules de Début à Fin+3 colonnes "
 

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention  
 

Ce serait plus simple si tu donnais le code que tu as déjà.

Tu as déjà oublié la fonction offset()?

Set maplage = Range(debut, fin.Offset(,3))
0
mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   18 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

Super: ça fonctionne parfaitement ....
Désolé pour mon code un peu maladroit et pas très orthodoxe mais je suis de la génération des années 70, et j'ai fait mes études scientifiques à la Faculté des Sciences, à l'époque des IBM 1130 alimentés par des cartes perforées; on programmait en Fortran ... J'ai étudié un peu plus tard la programmation VBA, mais c'est très loin et j'ai peu pratiqué !
Merci encore pour ton aide. Cordialement, Mikel 

1