Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 10/03/2010, 18h45   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 85
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 85
Points : 11
Points : 11
Par défaut calcul dans des colonnes

Bonjour à tous,
J'aurai besoin de votre aide pour réaliser un code en vba.
Mon tableau va de A12 à I505, mais ce serait bien de ne pas en tenir compte si possible car le tableau pourrait s'agrandir.
Voici ce qu'il me faudrait:
En cliquant sur un commandbutton, le code prendrait les chiffres contenus dans la colonne D et les additionnerait à ceux contenus dans la colonne E, puis diviserait le résultat obtenu par 2 et metterait ce résultat dans la colonne F.
Ensuite, il faudrait prendre les chiffres contenus dans la colonne G et les diviser par les chiffres de la colonne F et mettre le résultat obtenu dans la colonne H.
Enfin, il faudrait prendre le chiffre contenu dans la cellule K9 et le diviser par les chiffres de la colonne H et mettre le résultat obtenu dans la colonne I.

Conditions:
  • le bouton ne marchera que si la cellule K9 est remplit, sinon message "remplir la cellule K9"
  • ne rien mettre dans la colonne I si le résultat dans la colonne H est 0
  • le résultat obtenu dans la colonne H doit avoir 2 chiffres après la virgule
  • ne pas tenir compte des cellules vides si il y en a dans les colonnes D, E et G

Merci de votre aide
mgrizzly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 20h56   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 431
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 31
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 431
Points : 4 042
Points : 4 042
Envoyer un message via MSN à Qwazerty
Salut
Je ne vois pas en quoi vba t'es utiles ici, tout ce que tu veux faire se fait très facilement via des formules, pour ce qui est d'un agrandissement possible de ton tableau, sache que si tu insères une ligne à la fin de ton tableau, cette ligne sera dument renseignés avec ses formules incrémentées et sa mise en forme.
A++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Score PowerBall Gyroscope Green : 11847
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 18h15   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 85
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 85
Points : 11
Points : 11
D'accord, mais dans ce cas quelles sont les formules que je dois mettre dans mes colonnes? Je suis pas très doué avec les formules!
Merci
mgrizzly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 19h02   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 431
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 31
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 431
Points : 4 042
Points : 4 042
Envoyer un message via MSN à Qwazerty
Salut
On va travailler les formule sur la ligne 12 et ensuite tu auras juste a les étirer jusqu'à la fin de ton tableau.

Citation:
prendrait les chiffres contenus dans la colonne D et les additionnerait à ceux contenus dans la colonne E, puis diviserait le résultat obtenu par 2 et metterait ce résultat dans la colonne F.
Donc
F=(D+E)/2 avec K9 numérique et diffèrent de 0
Soit en cellule F12
Code :
=SI(ET(ESTNUM($K$9);$K$9<>0);(D12+E12)/2;"")
Citation:
prendre les chiffres contenus dans la colonne G et les diviser par les chiffres de la colonne F et mettre le résultat obtenu dans la colonne H
Donc
H = G/F avec F non vide
Soit en cellule H12
Code :
=SI(F12<>"";G12/F12;"")
Citation:
le résultat obtenu dans la colonne H doit avoir 2 chiffres après la virgule
Si tu veux juste un arrondi "visuel" dans ta cellule, mais conserver la valeur exact de la division:
Il te suffit de changer le format de ta cellule, Clique droit -> format cellule -> Nombre(l'onglet), puis tu choisis Nombre dans la liste et tu mets le nombre de décimales voulues.
Si tu veux conserver la valeur arrondi, il te suffit alors de mettre la formule suivante dans H12
Code :
=SI(F12<>"";ARRONDI(G12/F12;2);"")
Citation:
prendre le chiffre contenu dans la cellule K9 et le diviser par les chiffres de la colonne H et mettre le résultat obtenu dans la colonne I.
Donc
I = K9/H avec H<>0
Soit en cellule I12
Code :
=SI(H12<>"";$K$9/H12;"")
Essai comme ça
A++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Score PowerBall Gyroscope Green : 11847
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 19h23   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 85
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 85
Points : 11
Points : 11
Merci pour ta solution Qwazerty,
Le petit problème que je rencontre est qu'au lieu de me marquer un blanc dans les cellules qui auraient du être vide, j'ai #DIV/0! qui apparait, comment mêtre des cellules vides à la place dans la colonne I et H?
Merci
mgrizzly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 20h09   #6
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 431
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 31
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 431
Points : 4 042
Points : 4 042
Envoyer un message via MSN à Qwazerty
Salut
Voila pour H12
Code :
=SI(ET(F12="";ESTERREUR(G12/F12));G12/F12;"")
Applique la même logique pour modifier la formule en I12

A++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Score PowerBall Gyroscope Green : 11847
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 18h19   #7
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 85
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 85
Points : 11
Points : 11
Cela ne fonctionne pas non plus: le résultat dans la cellule donne FAUX là où il doit y avoir un nombre et dans les cellules qui doivent rester vide j'ai toujours #div/0!
Y a t-il une autre solution?
Merci
mgrizzly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 18h25   #8
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 431
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 31
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 431
Points : 4 042
Points : 4 042
Envoyer un message via MSN à Qwazerty
Salut
C'est une erreur de ma part
Code :
=SI(Ou(F12="";ESTERREUR(G12/F12));"";G12/F12)
essai comme ça
teste aussi comme ca, ca devrait suffir
Code :
=SI(ESTERREUR(G12/F12);"";G12/F12)
++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Score PowerBall Gyroscope Green : 11847
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 20h28.


 
 
 
 
Partenaires

Hébergement Web