VBA sur excel

Résolu/Fermé
Arkonide Messages postés 28 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 29 juin 2010 - 16 mai 2009 à 18:18
Arkonide Messages postés 28 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 29 juin 2010 - 17 mai 2009 à 15:59
Bonjour,

J'ai sur excel 2 feuilles.

1ere feuille :
une liste de 100 produits avec
dans la colonne A un chiffre code
dans le colonne B texte designation
dans la colonne C un prix

2eme feuille :
des boutons avec le nom du produit
en appuyant sur un bouton une question :" combien ?" après la réponse, le resultat s'affiche dans une espece de facture : 1) quantite, 2) designation, 3) prix, le tout s'incrementant d'une ligne à chaque appuit sur un bouton.

Voici la macro :

Public Sub addition()
Dim valeur As String
Dim l As Integer
nombre = Application.InputBox("Combien ? :", Type:=1)
If nombre = False Then Exit Sub
l = Sheets("articles").Range("c500").End(xlUp).Row + 1
valeur = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text

For Each c In Sheets("CODE").Range("b3:b" & Sheets("code").Range("b500").End(xlUp).Row)

If c.Value = valeur Then

With Sheets("articles")

.Range("b" & l).Value = nombre
.Range("c" & l).Value = c.Value
.Range("d" & l).Value = c.Offset(0, 1).Value

End With
End If
Next c

End Sub


QUESTIONS :
1er) pourquoi l'affichage commence-t-il toujours en B11 comment faire pour qu'il commence en G1 par exemple

2eme) je voudrais un deuxieme prix
j'ai ajouté une colonne de prix sur la feuille 1 et transformé ainsi ma macro

Public Sub addition()
Dim valeur As String
Dim l As Integer
nombre = Application.InputBox("Combien ? :", Type:=1)
If nombre = False Then Exit Sub
l = Sheets("articles").Range("c500").End(xlUp).Row + 1
valeur = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text

For Each c In Sheets("CODE").Range("b3:b" & Sheets("code").Range("b500").End(xlUp).Row)

If c.Value = valeur Then

With Sheets("articles")

.Range("a" & 1).Value = c.Offset(0, -1).Value
.Range("b" & l).Value = nombre
.Range("c" & l).Value = c.Value
.Range("d" & l).Value = c.Offset(0, 1).Value

End With
End If
Next c

End Sub

le nouveau prix s'affiche en A1 et ne s'incremante pas
le reste fonctionne comme d'habitude.
Comment faire pour que le nouveau prix s'affiche en A11 ?

j'attends vos réponses avec impatience.
D'avance merci

1 réponse

thev Messages postés 1873 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 28 septembre 2024 688
17 mai 2009 à 00:41
1) pour commencer en G1

With Sheets("articles")

.Range("g1").columns(1).rows(c.row-2).Value = nombre
.Range("g1").columns(2).rows(c.row-2).Value = c.Value
.Range("g1").columns(3).rows(c.row-2)..Value = c.Offset(0, 1).Value

End With

2) remplacer 1 par I

.Range("a" & I).Value = c.Offset(0, -1).Value
0
Arkonide Messages postés 28 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 29 juin 2010
17 mai 2009 à 15:59
Un grand merci a toi.
Erreur due a moi en premier et a mon ecran en 2eme, j'ai failli pas voir ta correction
une nouvelle fois MERCI
0