[Catégorie modifiée .Net --> VBA] sélection d'une plage de coordonnées variables [Résolu]

Messages postés
7
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010
- - Dernière réponse : b31
Messages postés
7
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010
- 30 juin 2010 à 13:50
Bonjour,

J'ai un problème pour lequel je n'ai pas trouvé de solution sur ce site...

Je voudrais sélectionner une plage dont les coordonnées colonnes varient, par exemple:
Range(Colonne & "2:" & AutreColonne & "29," & Colonne & "31:" & AutreColonne & "58").Select

Mais pour utiliser range, il faut que mes colonnes soient sous forme de lettres alors que dans mon cas il s'agit de variables incrémentées (integer) selon certaines conditions (on construit en fait un tableau au fur et à mesure de la réception de données).

Je voudrais donc savoir s'il est possible d'utiliser cells (colonnes et lignes : nombres entiers) pour sélectionner ma plage, ou bien de faire une conversion automatique d'un entier à la lettre (ou ensemble de lettres) qui lui correspond??

Merci beaucoup de vos réponses!!!
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
3
Merci
Salut
Deux solutions :
-1- Définir les Range comme des Cells : Exemple pour sélection de A1:A13 + C1:C13 :
Range(Cells(1, 1).Address & ":" & Cells(13, 1).Address & "," & _
      Cells(1, 3).Address & ":" & Cells(13, 3).Address).Select

-2- Convertir ton chiffre en lettre
La lettre "A" est le code ASCII 65.
Sonc il suffit d'ajouter 64 à ta variable pour obtenir la lettre :
Range(Chr$(Colonne + 64) & "2:" & _
                  Chr$(AutreColonne + 64) & "29," & _
      Chr$(Colonne + 64) & "31:" & _
                  Chr$(AutreColonne + 64) & "58").Select 
Mais attention : Cette technique ne fonctionnera QUE pour les colonnes à lettre unique (impossible avec des colonnes de la forme AA ou AT)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
7
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
30 juin 2010
0
Merci
La première solution est parfaite!!!
La seconde est utilisable aussi, même avec un format de colonne à plusieurs lettres. Mais les manipulations nécessaires rallongent le code inutilement... (je l'avais un peu explorée mais je préfère largement la 1ère solution)

Merci!!!
Commenter la réponse de b31