Salut à tous,
J'ai besoin de vos lumières, voilà mon blème :
je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à
la
fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
non le résultat pour le total et là, je ne sais pas comment récupérer ces
infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule,
donc
pas de cell absolue... Si qqn a une idée, je suis preneur.
Merci d'avance.
Voici mon code.
Option Explicit
Sub Macro2()
Dim intNombreEnregistrements As Integer
Dim intCompteurVertical As Integer
Dim intCompteurHorizontal As Integer
Dim intCompteur As Integer
'enregistrement du nombre de lignes + écriture des titres des colonnes
intNombreEnregistrements = InputBox("veuillez entrer le nombre
d'enregistrements à effectuer", "enregistrements")
ActiveCell.FormulaR1C1 = "Nom du produit"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "quantité"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "prix à l'unité"
'écriture des valeurs données par l'utilisateur directement dans les
cellules sur X lignes
For intCompteur = 1 To intNombreEnregistrements
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'quantité
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
Next
'retour à la ligne + écriture du total
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 2).Range("A1").Select
'formule de calcul du total à modifier pour qu'elle soit dynamique et
relative
ActiveCell.FormulaR1C1 > "=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
'redimentionnage des colonnes automatique
ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
--
Céd / Lausanne
Salut à tous,
J'ai besoin de vos lumières, voilà mon blème :
je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à
la
fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
non le résultat pour le total et là, je ne sais pas comment récupérer ces
infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule,
donc
pas de cell absolue... Si qqn a une idée, je suis preneur.
Merci d'avance.
Voici mon code.
Option Explicit
Sub Macro2()
Dim intNombreEnregistrements As Integer
Dim intCompteurVertical As Integer
Dim intCompteurHorizontal As Integer
Dim intCompteur As Integer
'enregistrement du nombre de lignes + écriture des titres des colonnes
intNombreEnregistrements = InputBox("veuillez entrer le nombre
d'enregistrements à effectuer", "enregistrements")
ActiveCell.FormulaR1C1 = "Nom du produit"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "quantité"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "prix à l'unité"
'écriture des valeurs données par l'utilisateur directement dans les
cellules sur X lignes
For intCompteur = 1 To intNombreEnregistrements
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'quantité
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
Next
'retour à la ligne + écriture du total
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 2).Range("A1").Select
'formule de calcul du total à modifier pour qu'elle soit dynamique et
relative
ActiveCell.FormulaR1C1 > "=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
'redimentionnage des colonnes automatique
ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
--
Céd / Lausanne
Salut à tous,
J'ai besoin de vos lumières, voilà mon blème :
je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à
la
fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
non le résultat pour le total et là, je ne sais pas comment récupérer ces
infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule,
donc
pas de cell absolue... Si qqn a une idée, je suis preneur.
Merci d'avance.
Voici mon code.
Option Explicit
Sub Macro2()
Dim intNombreEnregistrements As Integer
Dim intCompteurVertical As Integer
Dim intCompteurHorizontal As Integer
Dim intCompteur As Integer
'enregistrement du nombre de lignes + écriture des titres des colonnes
intNombreEnregistrements = InputBox("veuillez entrer le nombre
d'enregistrements à effectuer", "enregistrements")
ActiveCell.FormulaR1C1 = "Nom du produit"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "quantité"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "prix à l'unité"
'écriture des valeurs données par l'utilisateur directement dans les
cellules sur X lignes
For intCompteur = 1 To intNombreEnregistrements
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'quantité
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
Next
'retour à la ligne + écriture du total
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 2).Range("A1").Select
'formule de calcul du total à modifier pour qu'elle soit dynamique et
relative
ActiveCell.FormulaR1C1 > "=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
'redimentionnage des colonnes automatique
ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
--
Céd / Lausanne
Bonjour Congelator,
Posez votre question sur
microsoft.public.fr.excel
ça fourmie de pro sur Excel !
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.
"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
> Salut à tous,
> J'ai besoin de vos lumières, voilà mon blème :
> je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
> tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à
> la
> fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
> non le résultat pour le total et là, je ne sais pas comment récupérer ces
> infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule,
> donc
> pas de cell absolue... Si qqn a une idée, je suis preneur.
> Merci d'avance.
> Voici mon code.
> Option Explicit
> Sub Macro2()
> Dim intNombreEnregistrements As Integer
> Dim intCompteurVertical As Integer
> Dim intCompteurHorizontal As Integer
> Dim intCompteur As Integer
>
> 'enregistrement du nombre de lignes + écriture des titres des colonnes
> intNombreEnregistrements = InputBox("veuillez entrer le nombre
> d'enregistrements à effectuer", "enregistrements")
> ActiveCell.FormulaR1C1 = "Nom du produit"
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = "quantité"
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = "prix à l'unité"
>
> 'écriture des valeurs données par l'utilisateur directement dans les
> cellules sur X lignes
> For intCompteur = 1 To intNombreEnregistrements
> ActiveCell.Offset(1, -2).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'quantité
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
> Next
>
> 'retour à la ligne + écriture du total
> ActiveCell.Offset(1, -2).Range("A1").Select
> ActiveCell.FormulaR1C1 = "TOTAL"
> ActiveCell.Offset(0, 2).Range("A1").Select
>
> 'formule de calcul du total à modifier pour qu'elle soit dynamique et
> relative
> ActiveCell.FormulaR1C1 > > "=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
>
> 'redimentionnage des colonnes automatique
> ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
> ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
> ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
> End Sub
>
> --
> Céd / Lausanne
Bonjour Congelator,
Posez votre question sur
microsoft.public.fr.excel
ça fourmie de pro sur Excel !
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.
"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news: B004AB3F-DC1C-4042-A61F-F5A8381B2D1C@microsoft.com...
> Salut à tous,
> J'ai besoin de vos lumières, voilà mon blème :
> je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
> tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à
> la
> fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
> non le résultat pour le total et là, je ne sais pas comment récupérer ces
> infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule,
> donc
> pas de cell absolue... Si qqn a une idée, je suis preneur.
> Merci d'avance.
> Voici mon code.
> Option Explicit
> Sub Macro2()
> Dim intNombreEnregistrements As Integer
> Dim intCompteurVertical As Integer
> Dim intCompteurHorizontal As Integer
> Dim intCompteur As Integer
>
> 'enregistrement du nombre de lignes + écriture des titres des colonnes
> intNombreEnregistrements = InputBox("veuillez entrer le nombre
> d'enregistrements à effectuer", "enregistrements")
> ActiveCell.FormulaR1C1 = "Nom du produit"
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = "quantité"
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = "prix à l'unité"
>
> 'écriture des valeurs données par l'utilisateur directement dans les
> cellules sur X lignes
> For intCompteur = 1 To intNombreEnregistrements
> ActiveCell.Offset(1, -2).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'quantité
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
> Next
>
> 'retour à la ligne + écriture du total
> ActiveCell.Offset(1, -2).Range("A1").Select
> ActiveCell.FormulaR1C1 = "TOTAL"
> ActiveCell.Offset(0, 2).Range("A1").Select
>
> 'formule de calcul du total à modifier pour qu'elle soit dynamique et
> relative
> ActiveCell.FormulaR1C1 > > "=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
>
> 'redimentionnage des colonnes automatique
> ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
> ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
> ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
> End Sub
>
> --
> Céd / Lausanne
Bonjour Congelator,
Posez votre question sur
microsoft.public.fr.excel
ça fourmie de pro sur Excel !
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.
"Congelator" <congelator(a_effacer)@hotmail.com> a écrit dans le message de
news:
> Salut à tous,
> J'ai besoin de vos lumières, voilà mon blème :
> je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
> tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à
> la
> fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
> non le résultat pour le total et là, je ne sais pas comment récupérer ces
> infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule,
> donc
> pas de cell absolue... Si qqn a une idée, je suis preneur.
> Merci d'avance.
> Voici mon code.
> Option Explicit
> Sub Macro2()
> Dim intNombreEnregistrements As Integer
> Dim intCompteurVertical As Integer
> Dim intCompteurHorizontal As Integer
> Dim intCompteur As Integer
>
> 'enregistrement du nombre de lignes + écriture des titres des colonnes
> intNombreEnregistrements = InputBox("veuillez entrer le nombre
> d'enregistrements à effectuer", "enregistrements")
> ActiveCell.FormulaR1C1 = "Nom du produit"
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = "quantité"
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = "prix à l'unité"
>
> 'écriture des valeurs données par l'utilisateur directement dans les
> cellules sur X lignes
> For intCompteur = 1 To intNombreEnregistrements
> ActiveCell.Offset(1, -2).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'quantité
> ActiveCell.Offset(0, 1).Range("A1").Select
> ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
> intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
> Next
>
> 'retour à la ligne + écriture du total
> ActiveCell.Offset(1, -2).Range("A1").Select
> ActiveCell.FormulaR1C1 = "TOTAL"
> ActiveCell.Offset(0, 2).Range("A1").Select
>
> 'formule de calcul du total à modifier pour qu'elle soit dynamique et
> relative
> ActiveCell.FormulaR1C1 > > "=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
>
> 'redimentionnage des colonnes automatique
> ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
> ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
> ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
> End Sub
>
> --
> Céd / Lausanne
Salut à tous,
J'ai besoin de vos lumières, voilà mon blème :
je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à la
fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
non le résultat pour le total et là, je ne sais pas comment récupérer ces
infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule, donc
pas de cell absolue... Si qqn a une idée, je suis preneur.
Merci d'avance.
Voici mon code.
Option Explicit
Sub Macro2()
Dim intNombreEnregistrements As Integer
Dim intCompteurVertical As Integer
Dim intCompteurHorizontal As Integer
Dim intCompteur As Integer
'enregistrement du nombre de lignes + écriture des titres des colonnes
intNombreEnregistrements = InputBox("veuillez entrer le nombre
d'enregistrements à effectuer", "enregistrements")
ActiveCell.FormulaR1C1 = "Nom du produit"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "quantité"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "prix à l'unité"
'écriture des valeurs données par l'utilisateur directement dans les
cellules sur X lignes
For intCompteur = 1 To intNombreEnregistrements
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'quantité
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
Next
'retour à la ligne + écriture du total
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 2).Range("A1").Select
'formule de calcul du total à modifier pour qu'elle soit dynamique et
relative
ActiveCell.FormulaR1C1 =
"=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
'redimentionnage des colonnes automatique
ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
--
Céd / Lausanne
Salut à tous,
J'ai besoin de vos lumières, voilà mon blème :
je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à la
fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
non le résultat pour le total et là, je ne sais pas comment récupérer ces
infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule, donc
pas de cell absolue... Si qqn a une idée, je suis preneur.
Merci d'avance.
Voici mon code.
Option Explicit
Sub Macro2()
Dim intNombreEnregistrements As Integer
Dim intCompteurVertical As Integer
Dim intCompteurHorizontal As Integer
Dim intCompteur As Integer
'enregistrement du nombre de lignes + écriture des titres des colonnes
intNombreEnregistrements = InputBox("veuillez entrer le nombre
d'enregistrements à effectuer", "enregistrements")
ActiveCell.FormulaR1C1 = "Nom du produit"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "quantité"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "prix à l'unité"
'écriture des valeurs données par l'utilisateur directement dans les
cellules sur X lignes
For intCompteur = 1 To intNombreEnregistrements
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'quantité
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
Next
'retour à la ligne + écriture du total
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 2).Range("A1").Select
'formule de calcul du total à modifier pour qu'elle soit dynamique et
relative
ActiveCell.FormulaR1C1 =
"=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
'redimentionnage des colonnes automatique
ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
--
Céd / Lausanne
Salut à tous,
J'ai besoin de vos lumières, voilà mon blème :
je dois créer une macro en VBA. L'utilisateur choisi le nb de produits en
tout, la qté de A, le prix de A, la qté de B, le prix de B... et insérer à la
fin le total. Jusque là ça joue, par contre, je dois insérer la formule et
non le résultat pour le total et là, je ne sais pas comment récupérer ces
infos. Info supplémentaire, c'est l'utilisateur qui choisi la cellule, donc
pas de cell absolue... Si qqn a une idée, je suis preneur.
Merci d'avance.
Voici mon code.
Option Explicit
Sub Macro2()
Dim intNombreEnregistrements As Integer
Dim intCompteurVertical As Integer
Dim intCompteurHorizontal As Integer
Dim intCompteur As Integer
'enregistrement du nombre de lignes + écriture des titres des colonnes
intNombreEnregistrements = InputBox("veuillez entrer le nombre
d'enregistrements à effectuer", "enregistrements")
ActiveCell.FormulaR1C1 = "Nom du produit"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "quantité"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "prix à l'unité"
'écriture des valeurs données par l'utilisateur directement dans les
cellules sur X lignes
For intCompteur = 1 To intNombreEnregistrements
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("nom du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'nom du produit
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("quantité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'quantité
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = InputBox("prix à l'unité du produit n° " &
intCompteur, "enregistrement n° " & intCompteur) 'prix unitaire
Next
'retour à la ligne + écriture du total
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 2).Range("A1").Select
'formule de calcul du total à modifier pour qu'elle soit dynamique et
relative
ActiveCell.FormulaR1C1 =
"=R[-3]C[-1]*R[-3]C+R[-2]C[-1]*R[-2]C+R[-1]C[-1]*R[-1]C"
'redimentionnage des colonnes automatique
ActiveCell.Offset(0, -2).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -1).Columns("A:A").EntireColumn.EntireColumn.AutoFit
ActiveCell.Columns("A:A").EntireColumn.EntireColumn.AutoFit
End Sub
--
Céd / Lausanne
Voilà le code qui fonctionne :
Option Explicit
'----------------------------------------------------------------------------------------------------
'Cette fonction vérifie que la valeur passée en paramètre est bien un nombre
'Si c'est bien un nombre, elle retourne True sinon, elle retourne False
'----------------------------------------------------------------------------------------------------
Function isValidInt(strATester) As Boolean
If IsNumeric(strATester) Then
isValidInt = True
Else
isValidInt = False
End If
End Function
Voilà le code qui fonctionne :
Option Explicit
'----------------------------------------------------------------------------------------------------
'Cette fonction vérifie que la valeur passée en paramètre est bien un nombre
'Si c'est bien un nombre, elle retourne True sinon, elle retourne False
'----------------------------------------------------------------------------------------------------
Function isValidInt(strATester) As Boolean
If IsNumeric(strATester) Then
isValidInt = True
Else
isValidInt = False
End If
End Function
Voilà le code qui fonctionne :
Option Explicit
'----------------------------------------------------------------------------------------------------
'Cette fonction vérifie que la valeur passée en paramètre est bien un nombre
'Si c'est bien un nombre, elle retourne True sinon, elle retourne False
'----------------------------------------------------------------------------------------------------
Function isValidInt(strATester) As Boolean
If IsNumeric(strATester) Then
isValidInt = True
Else
isValidInt = False
End If
End Function