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

RESOLU MACRO VB toute bête

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 !

chris6999

XLDnaute Impliqué
Bonsoir

Je suis en train de me casser la tête sur une macro qui déterminerait 2 variables en fonction de 2 autres
J'ai dans ma colonne C un nombre d'heures
dans ma colonne D un coût horaire
dans ma colonne E un coût total (nb d'heure X coût horaire)

La seule donnée définie est le nombre d'heures
Je souhaiterais une macro qui permettrait d'afficher en E le coût total si je saisis le coût horaire en D
et en sens inverse d'afficher en D le coût horaire si je saisis le coût total en E

Lorsque l'une des valeurs de C, D,ou E est supprimée toutes les valeurs le sont

Cela peut paraître bête mais je ne sais pas comment le prendre.
Si quelqu'un peut m'aider.


Cordialement
 
Dernière édition:
Re : MACRO VB toute bête

bonsoir,
Dans le module de la feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then Target.Offset(0, 1) = Target.Offset(0, -1) * Target
If Target.Column = 5 Then Target.Offset(0, -1) = Target / Target.Offset(0, -2)
End Sub
Il faudra sans doute ajouter la gestion d'erreurs éventuelles et définir la plage de fonctionnement
A+
kjin
 
Re : MACRO VB toute bête

Bonsoir Kjim

Je viens de tester ta proposition qui fonctionne nickel pour les calcul et la reconstitution des variables manquantes.

Par contre c'est lorsque je supprime les valeurs saisies que cela ne va plus.
Lorsque je supprime la valeur dans C la cellule est vide mais les valeurs dans D et E restent affichées.
Lorsque je supprime la valeur dans D, la valeur de C reste en l'état. Les cellules D et E deviennent "0" au lieu de s'effacer

Cordialement
 
Re : MACRO VB toute bête

Bonjour,
Par contre c'est lorsque je supprime les valeurs saisies que cela ne va plus.
Pas vu la suite de la question...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Target.Row
y = Target.Column
If y > 2 And y < 6 Then
    If Not IsNumeric(Target) Or IsEmpty(Target) Or IsEmpty(Cells(x, 3)) Then
        Application.EnableEvents = False
        Range(Cells(x, 3), Cells(x, 5)).ClearContents
        Application.EnableEvents = True
        Exit Sub
    End If
End If
If y = 4 Then Cells(x, 5) = Cells(x, 3) * Target
If y = 5 Then Cells(x, 4) = Target / Cells(x, 3)
End Sub
La plage [C:E] est effacée si
- une cellule est effacée en C, D ou E
- il n'y a aucune valeur en C, ce qui oblige à renseigner cette colonne au préalable
- une valeur non numérique est saisie en C, D ou E
La macro ne gère pas la sélection multiple
A+
kjin
 
Re : MACRO VB toute bête

Merci kjin

Cela fonctionne parfaitement.
A voir le code c'est quand même plus compliqué que ce que j'avais imaginé.
Merci encore pour ton aide précieuse.

Cordialement et bonne journée
 
- 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
662
Réponses
3
Affichages
534
Réponses
5
Affichages
322
Réponses
20
Affichages
1 K
Réponses
8
Affichages
683
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…