Stopper la selection sur case vide, formule droitereg

Bonjour, j'ai cherché un bon moment et testé par pas mal de moyens, mais impossible d'arriver à mes fins

 Range("A3:C3").Select
    Selection.FormulaArray = _
        "=LINEST(Spindt!RC[8]:R[140]C[8],valeurs_utiles!RC[5]:R[140]C[5]^{1,2},TRUE,TRUE)"

Cette formule marche très bien, sauf que la taille de mes colonnes sont variables, il me faut donc arriver à lui dire de stopper sa selection lorsqu'il arrive à une case vide (xldown, il me semble) mais je n'arrive pas à l'insérer correctement dans ma formule.

ça me semble pas si difficile, mais impossible d'y arriver, en espérant que vous pourrez m'aider.

Merci.

Salut et bienvenue sur le Forum,

Selon moi tu dois aller chercher - sous la forme d'une variable - la dernière ligne d'une des deux feuilles concernées et introduire cette donnée dans ta formule.

Mais sans voir ton fichier, c'est difficile d'en dire plus. Peux-tu nous le fournir, ou du moins une version simplifiée ou rendue anonyme ?

Cordialement.

Pour le fichier, je pense pouvoir le simplifier, mais seulement lundi, l'ayant pas avec moi le week-end, faut pas abuser non plus !

Je ne vois pas trop ce que tu me dis de faire, mais j'ai pas l'impression que ça donneras à ma formule un endroit où s'arrêter :s

Re,

serp1012 a écrit :

... mais j'ai pas l'impression que ça donneras à ma formule un endroit où s'arrêter

Qu'est-ce qu'on parie

En fait, j’aurais voulu avoir ton fichier afin de voir par exemple sur quelle feuille tu avais ta formule. Mais en fait on doit pouvoir sûrement déjà avancer.

Alors regarde le fichier ci-joint. J’y ai créé une feuille «Spindt» et une feuille «valeurs_inutiles» et j’ai placé un bouton sur une feuille quelconque, la feuille « Feuil1 ».

Si tu lances la macro, celle-ci va chercher la dernière ligne utilisée de la colonne I de la feuille «Spindt» - dans l’exemple fourni la ligne 7 – et va utiliser cette valeur afin de créer les formules dans les cellules A3:C3 de la feuille «Feuil1». En A3, tu auras donc la formule {=DROITEREG(Spindt!I3:I7;valeurs_utiles!F3:F7^{1\2};VRAI;VRAI)} qui sera placée par la macro. Il est évident que si tu modifies le nombre de lignes des feuilles «Spindt» et «valeurs_inutiles», la formule sera modifiée en conséquence.

J’ai considéré que tes deux feuilles «Spindt» et «valeurs_inutiles» avaient toujours le même nombre de valeurs.

Ca va dans le sens désiré ?

61serp-v2.xlsm (18.97 Ko)

Nickel, ça marche , je n'avais pas vu les choses comme ça

Merci beaucoup

Juste une question, que signifie les deux & qui entourent nombre_de_ligne - 3 ??

une espèce de "balise" pour lui signifier de faire un calcul ?

Merci encore.

Non, & est le signe de concaténation d'Excel.

Si tu veux par exemple remplacer le 14 de la formule ci-dessous– dont le texte est délimité par des guillemets - par une variable, tu dois fermer les guillemets avant la variable pour délimiter la première partie du texte, concaténer ta variable et concaténer encore un nouveau guillemet pour la suite du texte.

ActiveCell.FormulaR1C1 = "=SUM(R6C1:R14C1)"

Ca donne un texte comme ci-dessous :

ActiveCell.FormulaR1C1 = "=SUM(R6C1:R" & Variable_X & “C1)"

De même, si tu veux concaténer du texte et des variables dans une ComBox par exemple, tu peux écrire un texte du genre :

MsgBox "Bonjour, je m'appelle " & Variable_Y & " et vous souhaite la bienvenue"

Dans ta formule, j'ai dû concaténer deux fois la même variable que j'ai appelée Nombre_de_lignes

Range("A3:C3").FormulaArray =  "=LINEST(Spindt!RC[8]:R[" & Nombre_de_lignes - 3 & "]C[8],valeurs_utiles!RC[5]:R[" & Nombre_de_lignes - 3 & "]C[5]^{1,2},TRUE,TRUE)"

Amicalement.

Je vois, merci de la précison

Rechercher des sujets similaires à "stopper selection case vide formule droitereg"