bonjour,
je suis débutant en ce qui concerne VBA, j'ai pour but de faciliter l'entrée de données dans un tableau de frais de déplacement sur excel.
J'ai donc un tableau avec plusieurs montant a renseigner, ces montantSvont permettre de savoir si la personne a dépasser ou non un plafond maximum (colonne G, plage (G7;G29).pour renseigner ces montants La personne doit appuyer sur un bouton "nouveau déplacement".ce bouton lance donc un userform (userform6) qui permet la saisie des montants, l'userform envoie les données dans le tableau lorsque que l'on appuis sur le bouton valider.
Cependant je veux que lorsque la ligne de montants est saisie, un module (module 4) vérifie si le plafond dans la colonne G a été dépassé ( valeur colonne G >0) ou si il n'a pas été dépassé (valeur colonne G = 0). Si le plafond n'a pas été dépassé alors un userform s'affiche pour demander si l'on veut enregistrer un autre déplacement ( userform9) alors que si le plafond a été dépassé la cellule se colore en rouge et un userform s'affiche pour alerter la personne ( userform7).
Je veux que le module fasse la vérification sur la dernière cellule remplie de la colonne G du tableau ainsi c'est toujours la dernière saisie qui est vérifié d'ou l'utilisation de .end(lUp) dans mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub plafond() If Range("G29").End(xlUp) = 0 Then UserForm9.Show Else Range("G29").End(xlUp).Interior.ColorIndex = 4 UserForm7.Show End If End Sub
Enfaite mon problème c'est que ce code marche dans une colonne normale ou les valeurs des cellules ne provienne pas de formule. les valeurs de ma colonne G sont calculé avec une formule. le code ne fonctionne pas sur cette colonne comme si le End(Xlup) considérait que les cellules qui contiennent une valeur grâce a une formule sont des cellules vides.
Partager