VBA sur excel
Résolu
Arkonide
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
Arkonide Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Arkonide Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- VBA sur excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
Erreur due a moi en premier et a mon ecran en 2eme, j'ai failli pas voir ta correction
une nouvelle fois MERCI