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

calcul ou saisie dans la meme cellule

  • Initiateur de la discussion Initiateur de la discussion sopcz
  • Date de début Date de début

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 !

S

sopcz

Guest
bonsoir,
je realise un tableau permettant de gerer les augmentations salariales. Mon pb est le suivant :
A1 => salaire
B1 => augmentation en pourcentage
C1 => augmentation en valeur reelle

j'aimerai laisser la possibilite a mes petits chefs de :
soit remplir la cellule B1 et que cela calcule C1
soit remplir la cellule C1 et que cela calcule B1

Merci pour vos solutions.
 
Dernière modification par un modérateur:
Re : calcul ou saisie dans la meme cellule

Bonsoir,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    Application.EnableEvents = False
    Target.Offset(0, 1) = Target.Offset(0, -1) * Target
    Application.EnableEvents = True
  End If
    If Target.Address = "$C$1" Then
    Application.EnableEvents = False
    Target.Offset(0, -1) = Target / Target.Offset(0, -2)
    Application.EnableEvents = True
  End If
End Sub

ou

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    Application.EnableEvents = False
    Target.Offset(0, 1).FormulaR1C1 = "=RC[-2]*RC[-1]"
    Application.EnableEvents = True
  End If
    If Target.Address = "$C$1" Then
    Application.EnableEvents = False
    Target.Offset(0, -1).FormulaR1C1 = "=RC[1]/RC[-1]"
    Application.EnableEvents = True
  End If
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

Dernière édition:
Re : calcul ou saisie dans la meme cellule

Bonsoir et bienvenu sur le forum Sopcz,

Voici ci-joint une solution.

Si tu me dis ton nom, je peux faire en sorte, que lorsque ton patron met ton nom dans le fichier, quelque soit l'augmentation qu'il t'octroieras, la macro mettra +25% d'office 😉

Toute peine mérite salaire 🙂

Bonne soirée

Edition : Bonsoir BOISGONTIER
 

Pièces jointes

Dernière édition:
Re : calcul ou saisie dans la meme cellule

merci pour vos reponses simplement je ne connais pas le langage vba et je suis incapable de modifier qqchose la dedans. en l'occurence, sur la deuxieme reponse, je cherche la valeur de l'augmentation et non le salaire + l'augmentation.

peux tu refaire ton tableau stp ?

Merci
 
Re : calcul ou saisie dans la meme cellule

ah oui j'oubliais, comment fait on pour recopier la formule sur les autres lignes ?

merci pour l'augmentation de 25% mais 25% de pas grand chose, ca fait pas grand chose...

a+
 
Re : calcul ou saisie dans la meme cellule

Bonsoir Sopcz,

sopcz à dit:
ah oui j'oubliais, comment fait on pour recopier la formule sur les autres lignes ?

Pas la peine, la macro s'occupe de tout. Je n'avais colorié que les x premières lignes "zone de saisie", mais en faite, la macro géré toutes les lignes, jusqu'à la 65.536ème (je n'ai donc rien touché à ce niveau - juste colorié les cellules du dessous et refait les bordures).

sopcz à dit:
merci pour l'augmentation de 25% mais 25% de pas grand chose, ca fait pas grand chose...

🙂


C'est fait, cf. pièce ci-jointe.

Voici la macro écrite sur ta feuille :
Code:
[COLOR="Blue"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR]
' Macro enregistrée par Excel-lent

[COLOR="Blue"][I]  If Target.[B]Column[/B] = [B]2[/B] Then[/I][/COLOR]
[COLOR="Red"]      Cells([B]Target.Row, 3[/B]) = Cells([I]Target.Row, 1[/I]) * ([U]Cells(Target.Row, 2)[/U] / 100)[/COLOR]
  End If

[COLOR="Orange"]  If Target.[B]Column[/B] = [B]3[/B] Then[/COLOR]
[COLOR="Orange"][I]      [U]Cells(Target.Row, 2)[/U] = [B]Cells(Target.Row, 3)[/B] / [B][U]Cells(Target.Row, 1)[/U][/B] * 100[/I][/COLOR]
  End If
End Sub

Voici son explication :
La macro se déclenchera à chaque fois que tu saisiras une nouvelle valeur sur la feuille : "Feuil1".

Si la saisie a eu lieu dans la seconde colonne alors ...

... alors écrire dans la cellule : colonne C, ligne : celle où à eu lieu la saisie le résultat de la formule ci-dessous :
= Cellule(colonne A, ligne où à eu lieu la saisie) * Cellule(colonne B, ligne où à eu lieu la saisie) / 100


Si la saisie a eu lieu dans la troisième colonne alors ...

... alors écrire dans la cellule : colonne B, ligne : celle où à eu lieu la saisie le résultat de la formule :
=>= Cellule(colonne C, ligne où à eu lieu la saisie) / Cellule(colonne A, ligne où à eu lieu la saisie) * 100

Bon WE
 

Pièces jointes

Re : calcul ou saisie dans la meme cellule

merci Excel lent,

j'ai vraiment besoin d'une formation visual basic. j'ai encore une petite question : comment dois je faire pour recopier la macro sur d'autre colonne ? car cette feuille va evoluer d'annee en annee en gardant l'historique des augmentations.

Merci
 
Re : calcul ou saisie dans la meme cellule

J'ai aussi un autre souci : les calculs ne sont pas justes. par exemple pour un salaire de 1000, si j'ajoute 100 cela me donne 9.91% au lieu de 10%

comme sur ta feuille, si je mets un % batard du genre 13.32%, j'ai une fenetre depassement de capacite.
 
Re : calcul ou saisie dans la meme cellule

Bonsoir Sopcz,

sopcz à dit:
J'ai aussi un autre souci : les calculs ne sont pas justes. par exemple pour un salaire de 1000, si j'ajoute 100 cela me donne 9.91% au lieu de 10%

???

J'ai téléchargé le dernier fichier que j'ai envoyé, j'ai pas de problème de justesse de calcul!

sopcz à dit:
si je mets un % batard du genre 13.32%, j'ai une fenetre depassement de capacite.

Dans la colonne pourcentage, pour 13.32% il faut saisir 13.32. Ne sachant pas ce que tu avais fais, j'ai essayé en saisissant 13.32%, il n'y a pas de message d'erreur!
Par contre évidement le résultat obtenu est faux mais pas batard!

Notice :
-> saisir en premier le salaire dans la colonne A
-> saisir le % dans la colonne B, ou le montant de l'augmentation dans la colonne C
-> la colonne restante se calcul automatiquement

Le seul soucis rencontré est que je n'ai pas copier coller le format des cellules jusqu'en bas! A partir de la 40ème environ, les chiffres dans la colonne B ne sont plus au format # ##0,00 mais au format standard

sopcz à dit:
comment dois je faire pour recopier la macro sur d'autre colonne ? car cette feuille va evoluer d'annee en annee en gardant l'historique des augmentations.

Dans le cas où tu ne change pas de feuilles pour chaque année :
-> 2009 : les colonnes : A-B-C
-> 2010 : les colonnes : E-F-G
-> 2001 : les colonnes : I-J-K
-> ...

Pas la peine de recopier la macro, il suffit juste de la modifier!

Macro présente dans le fichier envoyé précédemment :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
' Macro enregistrée par Excel-lent

  If Target.Column = [COLOR="Gray"][B]2[/B][/COLOR] Then
      Cells(Target.Row, [COLOR="Red"][B]3[/B][/COLOR]) = Cells(Target.Row, [COLOR="Blue"][B]1[/B][/COLOR]) * (Cells(Target.Row, [COLOR="Gray"][B]2[/B][/COLOR]) / 100)
  End If

  If Target.Column = [COLOR="Red"][B]3[/B][/COLOR] Then
      Cells(Target.Row, [COLOR="Gray"][B]2[/B][/COLOR]) = Cells(Target.Row, [COLOR="Red"][B]3[/B][/COLOR]) / Cells(Target.Row, [COLOR="Blue"][B]1[/B][/COLOR]) * 100
  End If
End Sub

Les chiffres suivants signifie
1 : la première colonne - colonne A - "Salaire" (dans l'exemple ci-dessus à remplacer par 5)
2 : la seconde colonne - colonne B - "Augmentation en %" (dans l'exemple ci-dessus à remplacer par 6)
3 : la troisième colonne - colonne C - "Augmentation en valeur réelle" (dans l'exemple ci-dessus à remplacer par 7)

Sinon si tu fais un onglet par année, l'idéal est :
-> nommé l'onglet déjà fait : "2009"
-> le "duppliquer" ("Edition"/"Déplacer ou copier une feuille..."/cocher "créer une copie)
-> puis nommer ce nouvelle onglet "2010".

En faisant ainsi, sans t'en apercevoir tu duplique également le code sur le nouvelle onglet. Bref RIEN à faire concernant la macro.

Bonne soirée
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
Réponses
8
Affichages
2 K
coloc52
C
K
Réponses
1
Affichages
830
KyoshiroMibu
K
S
Réponses
18
Affichages
3 K
C
Réponses
4
Affichages
2 K
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…