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

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
 

Karlito91170

XLDnaute Nouveau
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
 

pierrejean

XLDnaute Barbatruc
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
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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


100.jpg


100.jpg
 

Karlito91170

XLDnaute Nouveau
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
 

Discussions similaires