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

Statistiques des forums

Discussions
312 201
Messages
2 086 170
Membres
103 151
dernier inscrit
nassim