Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Selectionner une plage jusqu'a la dernière cellule non vide dans une fonction

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Karlito91170

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant dans l'univers bien vaste de VBA .
Je souhaiterai apporté de la flexibilité à ma fonction codé sur VBA (voir ci dessous)

"=IF(OR(R[-1002]C=bdd_sinistre!R3C10:R28C10),R[-1002]C-Lancement!R9C1,"""")"

A la place d'une plage fixe, en gras ci dessus. J'aimerai sélectionner une plage de cellule dans l'onglet bdd_sinistre à partir de la cellule K3 jusqu'à la dernière cellule non vide de la colonne.

J'ai déjà trouver des pistes avec notamment ce type "de fonction" mais sans succès.
Range("K3").Select & Range(Selection, Selection.End(xlDown)).Select

Pourriez vous m'apporter vos lumières ?

Bien à vous
 
Philippe

Ta procédure fonctionne très bien mais lorsque je souhaite l'intégrer dans ma fonction un message d'erreur apparaît "erreur de compilation attendu : fin d'instruction"

"=IF(OR(R[-1002]C=bdd_sinistre!Range("K3:K" & Range("K65535").End(xlUp).Row).Select),R[-1002]C-Lancement!R9C1,"""")"

---------------------------------------------------------------------

Pierre Jean

Même problème avec un message d'erreur différent "erreur d'exécution 9 l'indice n'appartient pas à la sélection

Merci à vous
 
Re
Je ne suis pas spécialiste en formules . Je pense que l’écriture de la formule telle que tu la souhaites est bien faite mais qu'Excel en conteste la validité
Conseil: Ecrit en direct une formule valide et on pourra alors te fournir le code pour l'ecrire
 
Re,

C'est normal que ça foire car il n'y a pas de "Feuil1",
La feuille 1 se nomme "Lancement"

Remplace donc:

Code:
'Worksheets("Feuil1").Range(Cells(3, 11), Cells(Worksheets("Feuil1").Range("K" & Rows.Count).End(xlUp).Row, 11)).Select

Par:
Code:
Worksheets("Lancement").Select
Worksheets("Lancement").Range(Cells(3, 11), Cells(Worksheets("Lancement").Range("K" & Rows.Count).End(xlUp).Row, 11)).Select

à+
Philippe
 
Bonjour PierreJean,
Re
@Philippe

Dans la formule a copier il est fait mention de la feuille bdd_sinistre qui existe bien
Il n'y a que toi qui évoque une Feuil1
Ma réponse est dictée par le code que j'ai découvert dans le fichier joint au post#6 ce code ne fonctionne pas à cause du nom de la feuille.

Vu le manque de précision dans la demande, il est possible que nous soyons tous deux à côté de la réponse attendue

à+
Philippe




 
Rebonjour

Malheureusement Philippe, vous êtes dans le mauvais module, ma procédure se trouve dans l'onglet "retraitement_réass"

Pierre Jean voici la formule sur excel

=si(ou(C2=bdd_sinistre!J3:J31); C2 -lancement!A9; "")

Je vais essayer d'expliciter au maximum

Je souhaite que ma procédure compare la cellule C2 à une base de données dans l'onglet bdd_sinistre.
Si C2 se trouve dans la base de données alors il faut retrancher à C2 un montant inscrit dans l'onglet lancement (A9)
Dans le cas contraire (si C2 ne figure pas dans la base de données) alors il faut laisser la cellule vide

A ce jour la formule fonctionne, mais la plage de cellules correspond à la base de données (dans l'exemple ci dessous J3:J31) est fixe .
Je souhaiterai par conséquent qu'elle sélectionne les montants de J3 jusqu'à la dernière cellule non vide.

J'espère avoir été plus clair

Merci de votre participation active
 
Bonjour.
Pouvez-vous essayer ça :
VB:
[C1003].FormulaArray = Application.ConvertFormula( _
        "=IF(OR(R[-1002]C=bdd_sinistre!R3C10:R" & Feuil3.[J1000000].End(xlUp).Row _
        & "C10),R[-1002]C-Lancement!R9C1,"""")", xlR1C1, xlA1, RelativeTo:=[C1003])
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…