VBA - Petit problème

Signaler
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour à tous,

Je cherche désesperement quelque chose que vous pouvez me dire je pense !
je débute en VBA mais je connais bien le WLangage. Ma question :

J'ai une cellule "A1" qui me donne le Prix de revient
une cellule "A2" qui me donne le coefficient
et une cellule qui me donne le Prix Unitaire

Sachant que le prix de revient est le total des prix de revient unitaire, je souhaiterais pouvoir modifier le cofficient
qui me donnera automatiquement le prix unitaire et inversement pour le prix unitaire je veux que le coefficient se calcul automatiquement

Or si il y a une formule dans une cellule on ne peut pas ecrire dans celle ci

Les calcul serait :

En A1 "=SOMME("ma_plage")
En A2 "=A3/A1"
En A3 "=A1*A2"

J'en suis sur que le code est pas compliquer mais je ne trouve pas ...

Aidez moi Please !!


vince

14 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
Je ne suis pas certrain d'avoir compris :
1) Tu veux faire quoi ? Refaire cela (ce que font tes 3 formules), mais en VBA ?
2) si par formules et non par VBA : sont-elles à "étirer" ? et si oui : comment ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012

Bah imagine que cest une facture

En A1 j'ai le HT
En A2 la tva
et en A3 Le ttc

En A2 je mettre "=A1*0.196" (ou 0.212 vu quon va etre surtaxer lol )
Et en A3 je vais mettre soit "=A1+A2" ou "=A1*1.196"

Et bien imagine que moi je connaisse le TTC et que je veux avoir le HT et la TVA
Bah si j'écrit le montant TTC en A3 ma formule "=A1*1.196" va séffacer et moi je veux pas lol


vince
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Toujours assez peu clair !
En formules ?
Imaginons (exemple) que le pourcentage (exemple 19) soit en cellule G1 ===>>

en A1 : pas de formule (tu y saisis le montant hors taxe)
en A2 : =A1*G1/100
en A3 : à ton choix :
soit =A1*(1+G1/100)
soit =A1+A2

!
Mais tu n'as dit aucun mot de ton intention d'étirer ou non et : si oui : comment ?
Et cela est très important
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ah oui : tu ne veux pas saisir en A1, mais y mettre une somme en provenance d'une plage nommée ?
Alors, en A1 : ====>> =SOMME(ma_plage)
(pas de guillemets autour de ma_plage)
le reste à l'identique.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012

Si par etirer t'entend faire une recopie et bien nn !

Je cherche juste a pouvoir modifier les trois cellule et que les montant se change automatiquement mais avec des formule on peut pas changer les données . Par exemple je vaus pas ecrire la tva dans une cellule G1 ou f1 pour que les changement se fasse je veux simplement changer la tva dans la cellule tva qui A2

Desole je peut pas expliquer sa autrement cest pas plus compliquer que ca .




vince
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012

vince
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Tu ne peux et ne pourras bien évidemment jamais mettre à la fois une valeur et une formule dans la même cellule ! (ta A2) !
C'est l'un ou l'autre, mais pas les deux !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Maintenant :
Si tu tiens ABSOLUMENT à utiliser ainsi ta cellule A2 à ces deux fins contradictoires (saisie et calcul sur soi-même), je tiens à te dire que :
- ce genre d'acrobatie est réalisable avec l'appel au secours de VBA
- je sais faire
- je te le DECONSEILLE TRES VIVEMENT (ET INSISTE non moins vivement)

Si tu insistes de ton côté également, je te dirai comment et avec quel code, mais rejetterai toute responsabilité en cas de catastrophe inopinée un jour ou l'autrre, hein !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012

Oui je le voudrais en code vba sil te plait je ne pense pas qu'il y aura des probleme car je ne vais pas enregistrer de donner sur le fichier

Merci



vince
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Comme tu veux ! c'est ton appli !
Alors : formule en A3 : ====>> =A1*(1+A2/100)

Dans le module de ta feuille
Tout en haut, avant toute procédure :
Dim toto As Boolean

puis ces deux évènements :
Private Sub Worksheet_Change(ByVal Target As Range)
  Static toto As Boolean
  If Target = Range("A2") And Not toto Then
    toto = CInt(Target.Value)
    Range("A2").Value = Range("A1").Value * Range("A2").Value / 100
    toto = True
  End If
End Sub

Private Sub azWorksheet_SelectionChange(ByVal Target As Range)
  If toto True Then toto False
End Sub


Voilà ! en insistant à nouveau sur toutes les remarques faites plus haut.
Je n'aime pas du tout ce genre de mécanisme.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012

Merci beaucoup

Pourquoi tu me le déconseille ?
Et peut tu me l'expliquer stp ?


vince
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Il s'agit là d'une acrobatie inutile, alors qu'il te suffirait de renseigner le taux dans une cellule ad hoc (comme je te l'ai montré plus haut).
Il n'est jamais heureux de jouer avec le beurre et l'argent du beurre.
Ce genre d'acrobatie risque de te gêner et générer la nécessité de faire d'autres acrobaties le jour où tu voudras te servir de l'évènement Change pour d'autres choses.
Voilà !
Problème résolu ? ===>> "réponse acceptée" pour libérer le sujet.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
15
Date d'inscription
jeudi 1 mars 2012
Statut
Membre
Dernière intervention
24 avril 2012

Oui mais c'est que pour texpliquer en détail, je travail dans une entreprise de béton ciré, décoratif .
Et le temps que l'informaticien nous fasse le logiciel de cotation on s'est fait une feuille excel mais ce n'est pas pour la TVA que je veut faire sa.
En gros nos calcul se font par poste beton tant deuro au m² treillis idem
et la cellule A1 serait le total des poste donc le cout de revient au metre carre la cellule A2 serait notre coeff de marge et la cellule a3 le prix de vente au metre carre .
Et en faite on applique notre coeff au prix de revient et suivant le prix de vente donnée on le change pour un chiffre rond
Ex: Notre prix de revient est de 22 € le m² on met un coeff a 1.15 le prix de vente est de 25.3 donc nous on change le prix de 25.3 a 25 tou rond et on veuit le coeff exacte à trois chiffre apres la virgule !



vince
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Hé bien !
Le mécanisme reste alors rigoureusement le même ! Seuls tes calculs et formules diffèrent


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient