Variables dans formules

W

Willoub

Guest
Application.Run 'ATPVBAEN.XLA!Regress', ActiveSheet.Range('$A$2:$A$369'), _
ActiveSheet.Range('$B$2:$B$369'), False, False, , ActiveSheet.Range('$I$1') _
, False, False, False, False, , False

Je souhaiterai pouvoir rendre variable ActiveSheet.Range('$A$2:$A$369') car ma colonne ne contiendra pas toujours le meme nombre de lignes selon les données rentrées et j'aimerai donc pouvoir faire varier cette donnée en fonction du nombre de lignes mais comme cela se trouve à l'intérieur d'une formule et que je suis pas très fort ben j'y arrive pas... alors un grand merci à vous qui ... pourrez m'aider
Will
 

PAD

XLDnaute Occasionnel
Bonjour Willoub,

Alors d’abord, quand tu rentres dans un bistrot je pense que tu salut tout le monde par un grand « BONJOUR », et ensuite tu demandes un café « SI YOU PLAY ! . »

Et bien ici c’est la même chose.

A+ Pad
 

Blunet

XLDnaute Occasionnel
Salut PAD ;) , Willoub,

Vois si tu peux pas utiliser une boucle dans ce cas tu auras Range('A2':'A'&i)
Ou alors tu utlises ne plage nommée.
Une façon plus simple est de touver le nombre de données dans la colonne et faire la sélédction.
Voici comment le récupérer : Range('A2').End(xlDown).Rows.
Ainsi ta sélection devient Range('A2':'A'&Nb) où Nb=Range('A2').End(xlDown).Rows

Ca devrait aller.

Ciao
P.S.: Prends soin de récupérer le Nbre de données avant la sélection ie Nb=Range('A2').End(xlDown).Rows vient avant Application.Run 'ATPVBAEN.XLA!Regress', ActiveSheet.Range('$A$2:$A$369'), _
ActiveSheet.Range('$B$2:$B$369'), False, False, , ActiveSheet.Range('$I$1') _
, False, False, False, False, , False
 
W

willoub

Guest
Bonjour à tous, alors moi je prendrai un demi s'il vous plait...
bon le temps en ce moment c'est pas trop ça mais bon !
Pour ce qui est de la macro excel dont on parlait de ça pas plus tard qu'hier, je te remercie pour cette réponse rapide mais j'ai toujours un petit problème
apparement ca viendrait de cette ligne Range('A2').End(xlDown).Rows car en fait il s'avère que la case selectionné par cette ligne de commande est la dernière case de la colonne (case écrite bien sure) et non pas la selection de la colonne ... alors j'ai essayé d'autres trucs mais jusqu'ici rien ...
dans mes avancées j'en suis arrivé à ça:
Dim Range1 As Range
Set Range1 = Range('A2', Selection.End(xlDown)).Select '
Dim returnvalue As Integer '
returnvalue = Range1.Count
returnvalue = Range1.Count
Application.Run 'ATPVBAEN.XLA!Regress', ActiveSheet.Range('A2:A' & returnvalue), _
ActiveSheet.Range('$B$2:$B$' & returnvalue), False, False, , ActiveSheet.Range('$I$1') _
, False, False, False, False, , False
mais il aime pas la deuxieme ligne (Set Range1 = Range('A2', Selection.End(xlDown)).Select ') et je sais pas trop quoi mettre à la place et que ca marche
ben je vais continuer à chercher mais si quelqu'un à une idée surtout qu'il hésite pas ...
Merci et bonne journée
PS: sont où vos toilettes?
 
W

willoub

Guest
Bonjour
bon ben je me suis creusé les méninges et j'ai trouvé la solution:
Dim returnvalue As Integer '
Range('A1').Select
Range(Selection, Selection.End(xlDown)).Select
returnvalue = Selection.Count
Application.Run 'ATPVBAEN.XLA!Regress', ActiveSheet.Range('$A$2:$A$' & returnvalue), _
ActiveSheet.Range('$B$2:$B$' & returnvalue), False, False, , ActiveSheet.Range('$I$1') _
, False, False, False, False, , False

Ben merci à toi Pad et surement à un de ses jours
 

Gael

XLDnaute Barbatruc
Bonjour Willoub, bonjour Pad, bonjour Blunet,

J'arrive un peu tard puisque tu as déjà une solution, mais je voulais te signaler que 'Range' peut aussi être utilisé avec un nom qui peut lui-même correspondre à une plage variable dans un tableau, par exemple:

Range('plage') où 'plage' est définie dans la tableau en fonction des données existantes.

@+

Gael

Bon, en fait après relecture des réponses, c'est ce que Blunet avait déjà proposé avec la plage nommée.

Gael

Message édité par: Gael, à: 08/02/2006 14:50
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS