Programmation sur EXCEL

Arkonide Messages postés 33 Statut Membre -  
Arkonide Messages postés 33 Statut Membre -


Bonjour,

J'ai sur une feuille Excel nommée "articles", une centaine de "boutons" qui symbolisent des articles, qui en cliquant dessus affiche sur la meme feuille sur une forme de facture differente choses.

J'ai sur une deuxieme feuille Excel nommée "code" la liste des articles avec leur prix etc....

La macro suivante me permet d'afficher sur la facture de la feuille "artcles", la qte, le nom, le prix etc...

' FABRICATION DE LA FACTURE
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("c28").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")
'note la quantite sur la facture
.Range("b" & l).Value = nombre
' note la designation sur la facture
.Range("c" & l).Value = c.Value
' note le prix sur la facture
.Range("e" & l).Value = c.Offset(0, 1).Value
' note le code TVA sur la facture
.Range("a" & l).Value = c.Offset(0, -1).Value
End With
End If
Next c

End Sub

PROBLEME :

Je voudrais pouvoir travailler sur plusieurs factures en meme temps.

Actuellement j'ai resolu mon probleme en copiant 10 fois la page "articles" et 10 fois la macro, mais je me heurte à 2 problemes:
1°) je n'ai souvent pas assez des 10
2°) il me faut à chaque changement de nom de produit, que je le change sur les 10 pages.

Comment faire differement ?

D"avance MERCI

9 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Laisser la page vierge (ne pas s'en servir) et chaque fois que tu clic sur le bouton créer une copie de la page.
Par faciliter ta macro devrait être dans le module de la feuille.
Et Tu pourais la cacher.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Arkonide Messages postés 33 Statut Membre
 
Merci de ta reponse aussi rapide, mais je suis tres bete et je ne comprend pas trop ce que tu me dis.
Pourrais tu m'expliquer d'avantage
Merci
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
J'ai relu ta question et ça me parais difficile de te donner une piste comme ça.
Tu pourrais pas mettre une copie de ton classeur sur Cjoint.com ? et mettre le lien dans un poste suivant ?
0
Arkonide Messages postés 33 Statut Membre
 
je te l'ai envoye en message prive
Merci
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
J'ai trouver que ton approche n'était pas fort...heuuu
Alors j'ai cogité un classeur qui pourrait peut-être t'intèressé..
Regarde ce classeur
Je n'ai pas poussé le design, ça je te le laisse..:D
A+
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Il est préférable que tu pose tes questions en ajoutant un poste sur la discution et pas chaque fois de m'envoyer un MP. Je n'y répondrais plus.

Je ne comprend d'ailleur pas ta remarque, j'ai retester le classeur et il fonctionne normalement.
Le bouton "Gérer addition des tables" ne doit être employer qu'une fois, il est là pour que tu puisse lire le mode d'emploi et ensuite ouvrir l'UF.
C'est dans le formulaire que tu peu ouvrir autant de table que tu veux en cliquant sur le bouton Entrer Table, et pas en recliquant sur le bouton de la feuille
Tant qu'excel n'est pas fermer, tout est mémoriser.

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Arkonide Messages postés 33 Statut Membre
 
Bonjour lermite 222,

Et un grand merci.
Pour mettre en route, il a fallu que j'enleve dans la feuille 3 le 0 apres UFCAISSE.show.
Maintenant, il fonctionne a merveille
Pendant toute cette semaine, j'ai "tenté" de comprendre le fonctionnement mais !!!!!
Si moi je trouve cette presentation impeccable, mon épouse me demande si il ne serait pas possible de faire la meme chose avec des boutons, a la place des liste ?
Dans la version actuelle, est il possible de remedier a un petit probleme ?
Dans les DIVERS de la feuille "code" j'ai deux choix
1°) demande divers à 5.5%
2°) demande divers à 19.6%
qui me permettait (dans ma 1ere version) d'inscrire manuellement sur la facture ce que je voulais .....avec la bonne tva
Est ce possible avec cette version ? meme si je dois l'ecrire à un autre endroit avant qu'il n'apparaisse sur la facture.

Precision pour le calcul des TVA, je n'ai pas trouvé ou ils étaient fait, les prix donnés sont TTC.

En te remerciant une nouvelle fois du travail deja accompli, j'espere une nouvelle fois ton aide

D'avance MERCI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Beh je n'ai pas eu la prétention de te faire toute ton appli, ce n'est qu'un exemple pour te montrer une autre option.

Mettre des boutons à la place des listes.. C'est possible, mais tu a vu le nombre de boutons qu'il te faudrais pour les boissons? je me demande si ça tiendrait dans un écran ???

Si tu regarde dans le code tu verras que j'ai mis une remarque pour justement effectuer une saisie quand Divers est sélectionner.

Pour comprendre le code tu a entre-autre, Un tuto ici

Enlever le 0 après Show n'est surement pas l'erreur qui bloque, et de cette façon tu ne peu revenir sur une feuille pour faire d'éventuels changements. Tu dois fermer le formulaire et perdre les données déja entrées.

Essaye d'avancer et revient avec un classeur un peu plus complet..
A+

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Arkonide Messages postés 33 Statut Membre
 
Re bonjour

Pour le show, c'est exactement ce qui se passe, mais si je n'enleve pas le 0 j'obtiens
.show .... sur fond bleu
Erreur de compilation
Nombre d'arguments incorrect
ou affectation de propriete incorrecte.

et en cliquant sur OK
Private Sub CommandButton1_Click()...... sur fond jaune ????

Merci
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Tu a modifier quelque chose dans l'userForm ?

Pour trouver exactement où est l'erreur..
quand tu a la ligne Private Sub CommandButton1_Click()...... sur fond jaune ????
Tu continue avec F8, regarde Bien (Très bien) où la ligne jaune se déplace, tu continue lentement en examinent la ligne suivant la ligne en jaune. Pour continuer c'est chaque fois appuyer sur F8.. F8 etc..
Tu dis la ligne où ca plante.
Note,: Quand il y a une erreur dans l'initialise d'un UF le curseur revient toujours sur le show,, mais l'erreur n'est pas là.
0
Arkonide Messages postés 33 Statut Membre
 
J'ai bien la ligne private sub sur fond jaune et le F8 m'amene toujours sur show, vu que la page se compose de :

Option Explicit
_______________________
Private sub commandButton_click()
UFCaisse.show 0

et c'est tout

Chaque appuie sur F8 me donne la fenetre "

Microsoft Visual Basic
Erreur de compilation :
Nombre d'arguments incorrect ou affectation de propriete incorrect

Soit l'erreur 450

Je desespere

Merci bonne soirée
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Remet ton classeur tel quel sur Cjoint et donne le lien.
J'ai tester mon modèle, j'ai rechargé le modèle depuis le site au cas ou il y aurait eu une erreur dans le transfert et chez moi ça fonctionne dans tout les cas.
Tu a certainement modifié quelque chose, peut être sans t'en apercevoir.
A-tu essayé de télecharger à nouveau ?
Tu n'aurais pas changer des noms de feuilles ?

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Arkonide Messages postés 33 Statut Membre
 
Je redemare a chaque fois du classeur telecharger
Je suis maudit........... j'ai l'habitude lol
Je te le renvoie
0
Arkonide Messages postés 33 Statut Membre
 
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Beh chez moi y va impec !!
Ca doit provenir de ton excel.
Note que j'ai tester sur Excel 2000 et 2007 et pas de problème;
Regarde un peu ce que tu a dans les références.
Quand tu est en VBA tu clic >> Outils >> Références , tu devrait avoir 4 références cochées, dis moi les quel tu as.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
JE VIENS DE VOIR... TU A EXCEL 97 ???
Si oui, tu enlève le 0 de show.
Tu va dans le module de l'userForm et tu change dans la sub Initialize
Private Sub UserForm_Initialize()
Dim i As Integer
Dim B As Boolean

    B = FALSE  'pendant les modifications code, à mettre à False pour travail

Et ça va aller, sauf que tu devra fermer l'userForm pour éventuellement faire des modif dans les feuille.
Mais avec ce changement les données ne seront pas perdues.

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Arkonide Messages postés 33 Statut Membre
 
Bonjour et un GRAND MERCI,

Je viens d'intaller EXCEL 2000 et tout fonctionne a merveille.
J'ai tout ce qu'il me faut.
Sauf que je n'arrive pas a intervertir sur la feuille "facture" l'ordre des colonnes, je souhaiterais Quantite en un et libellé en 2.
Je ne trouve pas non plus ou sont effectue les calculs du bas de la page "CAISSE" TVA TOTAL et TORTAL+TVA qui ne sont pas bon du fait que les prix de la feuille code sont TTC

Juste un petit eclairage serait le bien venu.

Une nouvelle fois et sans flagornerie UN GRAND MERCI
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Ca se trouve dans le module de l'UserForm dans la Sub VoirFacture()
Mais tu dois lier au bouton voir facture...
tu ajoute entre
Private Sub CommandButton11_Click() 
    VoirFacture 
End Sub

Là tu peu modifier les emplacements des colonnes en changeant...
ListFacture.List(lig, 3) .. le 3 c'est le N° de la colonne tu peu aussi mettre la lettre entre guillement..
ListFacture.List(lig, "D")
Note: quand le projet est définitif oublie pas de mettre B = False dans l'initialize de l'UF.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Arkonide Messages postés 33 Statut Membre
 
Et bien voila,
Avec tout cela je suis paré
Il ne me reste plus qu'a te remercier une nouvelle fois tres sincerement

A+
0
Arkonide Messages postés 33 Statut Membre
 
Bonjour, c'est encore moi,

J'ai malheureusement encore besoins de te demander autre chose.

Comment faire pour apres avoir imprimer la facture de la table x, effacer de "CAISSE" cette table pour pouvoir faire un 2eme service ?

D'avance Merci
0