Affecter la valeur de la dernière cellule non vide à une variable

Bonjour, je suis débutant sur vba et cela fait maintenant 1 jour que je cherche à pouvoir résoudre mon problème. Je possède un tableau à une colonne (colonne "P") dans lequel une premiere valeur de production est entree. Puis à chaque début de semaine à la ligne en dessous est ajoutée une nouvelle valeur de production et ainsi de suite jusqu'à 52 semaines.

Le problème est que je souhaite par la suite affecter la derniere valeur numérique non vide de ce tableau à une variable ("var") pour ensuite la comparer selon certaines conditions. Mon soucis est que je n'arrive pas à programmer correctement les instructions me permettant de trouver la dernière valeur non vide dans la colonne P et de l'affecter par la suite à ma variable var sachant par la suite que la semaine d'apres, une nouvelle valeur sera entree a la ligne suivante et que le programme devra réiterer ces actions afin d'affecter à la variable var la nouvelle valeur entrée

Quelqu'un aurait il des idées pour résoudre ce problème ?

Merci d'avance et bonnes fetes de fin d'annees à toutes les personnes de ce forum

Bonjour

Var = Cells(Range("P65536").End(xlUp).Row, 16).Value

Bye

Bonjour

Pour trouver la dernière valeur non vide dans la colonne "A" !

der = worksheets("ma feuille").Range("A65536").End(xlUp).Row

Jacky

Paty5046, bonjour. Désolé je ne t'avais pas vue

Cordialement

Jacky

Bonjour à tous,

J'espère que tu vas bien.

Première contribution VBA pour ma part donc je te sollicite d'écouter les pros qui ont répondus plus haut.

Voilà le code que j'ai écris.

Sub DerVal_Var()
Dim Var_DerVal As Long
Range("A1").Select
Selection.End(xlDown).Select
Var_DerVal = ActiveCell
Range("D5") = Var_DerVal
End Sub

Voilà le résultat que cela donne.

image

Bonnes fêtes de fin d'année à tous.

2021 12 23 14 59 15 microsoft visual basic pour applications progfinale xlsm module1 code

Voici le code que j'ai elabore avec votre aide merci. Le problème est que dans la condition if que j'ai ajouté, j'ai mis volontairement une valeur de "R3" bien inférieure à la valeur de derL , (dernière cellule non vide la colonne P) afin de respecter la condition de ElseIf. De plus la cellule de C6 est bien egale à 1 mais pourtant je n'ai pas la message box qui s'affiche à la fin et il n'y pas de message d'erreur non plus. Savez vous où se situe mon erreur svp ?

Il y a une petite chose qui me gène dans ton code : ton ElseIf porte une condition sur Prod, or Prod n'est défini que si C6=1 ce qui signifie que si C6<>1 alors on passe directement au ElseIF sans définir Prod

Je peux me tromper mais ....

jacky

En effet, c'est pourquoi j'ai fait en sorte que C6=1 de manière à ce que le code ne saute pas la definition de Prod. Donc en l'état le programme devrait m'afficher le message car l'ensemble des conditions y sont reunies. Cependant et c'est la mon problème, il ne se passe rien, ni erreur ni affichage.

Bonjour,

le problème est que ton C6 ne représente pas du tout la valeur de la cellule C6

D' après ton code, la variable C6 que tu as déclaré comme entier long contient la valeur de la cellule S19 ( cells(2,19).value ) de ta feuille.

Donc ton code dit

si S19 = 1 alors tu affectes la valeur de la Cellule R3 a la variable Prod

autrement regardons si

la variable Prod (dont on ignore a l'heure actuelle ce qu'elle vaut) est inferieur a la valeur de la dernière cellule non vide de la colonne P

et si c'est le cas envoie un message "pas assez de production "

Fin du code

Pour moins galérer, envoie ton fichier

Cdlt

Bonjour, je ne peux vous envoye de fichier car ils sont protéges et confidentiels en revanche voici un apercu de son contenu avec les cellules impliquées

2021 12 23 15 45 59 classeur excel

Tu dis que tu as fait en sorte que C6 soit égal à 1, donc la cellule ligne 2 colonne 19 contient 1

Bien C6 étant alors obligatoirement égal à 1 (ce que tu veux) la condition If C6=1 est respectée et de ce fait Prod prend la valeur de "R3", si C6 n'était pas égal à 1 (ce qui n'est pas le cas car tu as voulu que C6=1) alors tu passes à l'autre condition (ElseIf), mais tu ne peux pas car la condition If a été honorée, donc alors, selon moi, tu sors du If.

Essaies donc avec un nouveau If sur Prod au lieu d'un ElseIf

J'espère que l'erreur est bien celle là

Jacky

Ca fonctionnneeeee merci beaucoup Jacky et merci à tout le monde pour votre aide et en vous souhaiteant de belles fetes de fin d'années

Rechercher des sujets similaires à "affecter valeur derniere vide variable"