problème avec la fonction Range

problème avec la fonction Range - VB/VBA/VBS - Programmation

Marsh Posté le 24-03-2006 à 10:39:41    

Bonjour,
J'ai un problème dans mon programme je souhaite sélectionner une colonne toutes les 5 colonnes mais dans la fonction Range les colonnes sont désignées par des lettres . Y'a t'il un moyen d'incrémenter les lettres ou d'utiliser une autre fonction où les colones sont désignées par des chiffres?
merci d'avance

Reply

Marsh Posté le 24-03-2006 à 10:39:41   

Reply

Marsh Posté le 24-03-2006 à 11:39:23    

Bonjour elgobi
Bonjour à tous
 
En VBA les colonnes sont reprises en chiffre par :
macolonne = ActiveCell.Column
Cela devrait t'aider
Cordialement

Reply

Marsh Posté le 24-03-2006 à 12:02:32    

merci  
mais le problème c'est que même si je connais le chiffre de la colone, je ne vois pas comment le faire intervenir dans Rang("B6:C104" )
en faite je voudrais que B et C soient des variables

Reply

Marsh Posté le 24-03-2006 à 12:21:52    

elgobi a écrit :

merci  
mais le problème c'est que même si je connais le chiffre de la colone, je ne vois pas comment le faire intervenir dans Rang("B6:C104" )
en faite je voudrais que B et C soient des variables


Salut elgobi,
c'est toute la colonne que tu veux sélectionner ou juste une partie de la colonne ?
si c'est toute la colonne je m'étais fais une petite fonction personnalisée qui devrait t'aider :

Code :
  1. Public Function ConcatColonne(ByVal Debut As Long, fin As Long, step As Integer) As Range
  2. Dim i As Integer, plage As String
  3. plage = Columns(Debut).Address
  4. For i = Debut + step To fin Step step
  5.     plage = plage & "," & Columns(i).Address
  6. Next i
  7. Set ConcatColonne = Range(plage)
  8. End Function

Pour l'appel :

Code :
  1. Sub test()
  2. Dim maPlage As Range
  3. Set maPlage = ConcatColonne(1, 15, 5)
  4. maPlage.Select
  5. End Sub


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 24-03-2006 à 13:15:44    

c'est toute la colonne  
merci beaucoup je vais essayer ta fonction personalisée

Reply

Marsh Posté le 24-03-2006 à 15:13:56    

ça marche!!!
merci encore

Reply

Marsh Posté le 24-03-2006 à 15:54:39    

de rien ;)
édites juste ton post avec un résolu ça pourra en aider d'autres :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 04-02-2009 à 18:46:30    

salut à tous!
 
pour moi c'est plus ou moins le même problème avec "Range", mais je veux prendre la moyenne de diz cellules dans une autre feuille, puis avancer de trente cellules et prendre la moyenne de diz encore, etc.
 
j'ai cette code, mais je n'arrive pas à changer la partie R[1] et R[10] pour être une fonction de i et i+9, par exemple, où on peut décider quel i on veut utiliser...
 
    Range("C3" ).Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(Montée!R[1]C[-1]:R[10]C[-1])"
 
suggestions? merci!
NB : mon ordi est en anglais, pour les fonctions

Reply

Marsh Posté le 08-02-2009 à 13:12:33    

Bonjour Slalom2209,
 
Pour pouvoir vous aider il me faut les précisions suivantes
 
1) L'adresse où s'inscrit la moyenne (C3 dans votre message) puis les adresses suivantes (C4 C5 C6 ...  ???)
ainsi que le nom de la feuille des résultats.
2) L'adresse de la plage de cellules qui founissent les données pour le calcul de la moyenne car l'adresse de  
l'exemple que vous donnez est une adresse relative (mais relative à quoi ? On ne sait pas)
Indiquez l'adresse selon ce style :   feuille Montée   plage "A1:B5"
3) Précisez dans quel sens se fait l'avancement de 30 cellules  
         en lignes : A1 passe à A31
         en colonnes : A1 passe à  AE1
 
Cordialement.
 
PMO
Patrick Morange

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed