Lancement macro via fonction dans cellule

excelman

XLDnaute Occasionnel
Bonjour à tous et à toutes,

J'espère que vous avez passé une bonne journée.

Me revoila afin de vous poser une question.

J'avais une caisse enregistreuse Sharp up 3300 que j'ai été obligé de réinitialisé suite à un disfonctionnement. Malheureusement j'ai du mal à retrouver le manuel srv de cette caisse et sharp est réticent à le fournir. Enfin j'epère que je vais réussir à régler le pb.

Tout ca pour dire qu'en attendant je me suis fait une petite caisse express via excel. (Je ne peux pas le mettre sur le forum car il est trop gros).
J'utilise divers macro dans ce classeur.
Je voudrais savoir maintenant s'il est possible via une fonction dans une cellule de lancer une macro. Ex :

Je suis en B1. Dans la cellule je veux entrer la formule suivante : =si(a1="";"";lancement de la macro quantité) et affichage du resultat dans B1...
Est ce possible???

Merci de vos réponse
Bonne soirée
A+
 

Kotov

XLDnaute Impliqué
Re : Lancement macro via fonction dans cellule

Bonsoir Excelman,

Une solution en VBA :
Place le code suivant dans VBE (Alt+F11), module de la feuille concernée ("Feuil1" par exemple)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(1, 1) <> "" Then
    MacroQuantite
Else
    Cells(1, 2) = ""
End If
End Sub


Sub MacroQuantite()
'Içi tu programmes ta macro quantité avec un affichage en B1. exemple :
Cells(1, 2) = "Résultat macro quantité"
End Sub

En clair, si ta cellule A1 n'est pas vide, la cellule B1 affiche le résultat de la macro Quantité,
si la cellule A1 est vide alors B1 est vide.

Est-ce que celà te convient ?

Bonne soirée
Kotov
 

excelman

XLDnaute Occasionnel
Re : Lancement macro via fonction dans cellule

Kotov,

Je te joints une feuille ce calcul avec ce que je souhaite.

J'espère que tu comprendras ce que je veux

A+
 

Pièces jointes

  • quantité.xls
    31 KB · Affichages: 60
  • quantité.xls
    31 KB · Affichages: 64
  • quantité.xls
    31 KB · Affichages: 60

Kotov

XLDnaute Impliqué
Re : Lancement macro via fonction dans cellule

Re Excelman,

Ok, avec un fichier, j'ai vu ce dont tu as besoin. Pas de problème.
Toutefois je ne vais pas pouvoir me lancer sur le projet complet ce soir, je dois me lever tôt demain matin et je file au lit.
Je rentrerai tard demain soir, aussi je préfère conclure le deal suivant avec toi :
- si ton fichier n'est pas urgent, je m'en occuperai jeudi soir.
-Si c'est urgent, demande de l'aide aux "collègues" du forum qui te fourniront sans problème la solution. Je n'en serai pas vexé.

Et si tu veux trouver seul la solution voiçi une piste incomplète :
Code:
'A copier-coller dans le module "Feuil1" de VBE

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(5, 1) <> "" Then
    MacroQuantite
Else
    Cells(5, 2) = ""
End If
End Sub


Sub MacroQuantite()
Dim R As Single
R = CSng(InputBox("Saisir la quantité :"))
Cells(5, 2) = R
End Sub

Toutefois, si cette macro te montre le principe, elle ne fonctionne qu'avec la cellule B5 et bloque avec les autres cellules. C'est juste une piste de départ.

Désolé de ne pas pouvoir rester plus longtemps en ligne, mais j'ai un projet d'importance demain.
A+
Kotov
 

Excel_lent

XLDnaute Impliqué
Re : Lancement macro via fonction dans cellule

Bonsoir Excelman, Kotov et à tous.

Tu aurais dû garder le même fil Excelman. [FONT=&quot]Les personnes intéressées auraient eu des informations plus complètes !
[/FONT][FONT=&quot]En outre, j'ai remarqué qu'il y a de plus en plus de demandes qui se corsent au fil des réponses et j'avoue que si je propose certaines idées, mes compétences limitées ne me permettent pas de tout traiter. Pour les autres intervenants, leur recherche sera d'autant plus facile en disposant d'une bonne base. [/FONT]
Pour en revenir à ton projet :
afin d'alléger les procédures j’ai transformé la présentation du secteur 1 en 2 colonnes. Cela permet d’étendre facilement les saisies aux secteurs 2 et 3.
De plus des listes de validation permettent de choisir le "menu". Mais il y a des contraintes : les choix doivent figurer dans la feuille et être limités. Donc une mise à jour s'impose le cas échéant.
Vois si cela t'inspire.
Il faut encore revoir l’étude des « fin de table ». Que veux-tu exactement (imprimer, sauvegarder ou les deux) ?
Les macros du projet traitent toutes les tables. Des « copier-coller » te permettent de compléter les feuilles (problème de poids déjà cité) .

[FONT=&quot]@+[/FONT]

[FONT=&quot]
[/FONT]
 

Pièces jointes

  • Table.zip
    41.6 KB · Affichages: 54
  • Table.zip
    41.6 KB · Affichages: 55
  • Table.zip
    41.6 KB · Affichages: 60

excelman

XLDnaute Occasionnel
Re : Lancement macro via fonction dans cellule

un grand merci à tous les deux...
Ca va dans le bon sens.
Je suis en train d'essayer de comprendre et d'adapter tout ca à ce que je veux...
J'avoue que j'ai du mal et que c'est peut etre un projet un peu lourd mais c'est juste pour me dépanner car je l'utilise pour faire tourner mon resto en attendant de faire réparer ma caisse enregistreuse up3300 sharp.

Si je devais l'utiliser tout seul ca irait car je n'ai pas besoin de lancement automatique etc.... car tout ca je sais faire manuellement mais le problème c'est que j'ai des serveurs qui devront l'utiliser et qu'ils ont du mal à capter le systeme de fonctionnement.
De plus il va falloir que je trouve un systeme pour envoyer les données sur une imprimante ticket en cuisine. (mais ca j'ai déja commence a creuser l'idée et j'ai téléchargé un driver).
En tout cas merci beaucoup d'avoir pris du temps pour moi.

Bonne nuit et bon courage à tous.

a+
thierry
 

excelman

XLDnaute Occasionnel
Re : Lancement macro via fonction dans cellule

Bonjour Excel Lent,

Hé bien j'avoue que ca se corse et c'est le cas car plus j'avance avec vous dans ce projet plus j'essaye de touver des choses à améliorer.
J'en ai finalisé que j'utilise actuellement avec tous les conseils que vous m'avez donné (et un peu de truc perso quand même :))
Il est malheureusement un peu lourd pour le mettre sur le forum.
Pour ce qui est de la finalisation des tables j'ai résolu le problème. En fait je voulait que quand je clique sur le bouton fin de table il se passerait ce qui suit :
-sélection de la table
-copie de la table
-collage de la table dans une feuille du classeur appelée "fin de jour"
-effacement des cellules de la colonne quantité et de la colonne ou il y a les listes de validation et de la cellule contenant le nombre de couverts,
-puis retour sur la feuille de sélection des tables.
Donc ca c'est résolu avec une macro plutot facile.

Pour ce qui est des listes de validation c'est une bonne idée.
Maintenant je vais essayer de créer des feuilles avec des sous menu.
Ex :
je vais créer une feuille avec plein de bouton qui vont chacun correspondre à un article. Une autre avec un sous article etc etc...
Je sais ca risque d'etre lourd mais il va falloir que je trouve une solution plus simple a utiliser.
Je sais que tous ces logiciels existe déja mais ils coutent cher et je n'ai pas pour le moment les moyens de m'en acheter un.
De plus j'attends de pouvoir réparer ma caisse enregistreuse up 3300 qui fait déja tout ca mais avec un écran tactile.
Tout ca pour dire que ce mini logiciel que nous essayons de créer m'est vraiment bien utile pour faire tourner le resto.

Voila et merci pour votre aide
Cordialement
Thierry
 

Kotov

XLDnaute Impliqué
Re : Lancement macro via fonction dans cellule

Bonsoir Excelman, Excel Lent,

Tout d'abord, un grand merci à Excel Lent de m'avoir suppléé en mon absence.

Excelman,
Je suis entièrement d'accord avec Excel Lent sur le principe :
- garder le même fil pour un même projet
- donner toutes les infos avant que quelqu'un ne se penche sur la solution.
Je croyais répondre à une question isolée, alors qu'il s'agissait d'une petite partie d'un projet important.
On peut évidemment séparer un projet en modules, répartir les tâches entre différents intervenants, mais la finalité du projet doit être connue de tous, le langage doit être commun. J'aurais pu te proposer un code allant à l'encontre de celui fourni par une autre personne.

Pour résumer, celà revient à préparer un cahier des charges précis et à le communiquer.
Si l'improvisation peut marcher en cuisine, en informatique je n'y crois pas trop.

Celà dit, si tu bloques sur un point, je suis prêt à t'aider dans la mesure de mes moyens (compétence et temps libre).

J'ai regardé ton code :
Quand tu demandes le nombre de couverts, toutes les saisies sont acceptées.
Je te conseille de modifier la macro suivante avec une boucle qui refuse de poursuivre tant qu'une saisie numérique n'a pas été effectuée :

Code:
Sub Va(Zone, ad, suite)
    ActiveWindow.Zoom = 100
    Range(Zone).Select
    ActiveWindow.Zoom = True
    ActiveSheet.PageSetup.PrintArea = Zone
    Range(ad) = InputBox("INDIQUEZ LE NOMBRE DE COUVERTS", "COUVERTS", "")
    [B]Do While Not IsNumeric(Range(ad))
        Range(ad) = InputBox("INDIQUEZ LE NOMBRE DE COUVERTS", "COUVERTS", "")
    Loop[/b]
    Range(suite).Select
End Sub

Qu'en penses tu ?

Bonne soirée
Kotov
 

excelman

XLDnaute Occasionnel
Re : Lancement macro via fonction dans cellule

Bonsoir Kotov,

Je suis d'accord avec toi quand au principe de cahier des charge mais je pensais qu'en inserant plusieurs post je pourrais les assembler afin de finaliser le projet en fonction des réponses.

Ceci dit je pense que le principe de l'entrée numérique uniquement est une bonne idée.

En ce qui concerne mon projet il s'agit "simplement" d'un projet de caisse enregistreuse.

Je m'explique :

Je suis possesseur d'un caisse enregistreuse UP 3300 SHARP qui est tombée en panne la semaine dernière. Afin de pouvoir continuer à travailler j'ai donc fait un mini logiciel de caisse sur excel (avec l'aide de tous bien sur).
Pour l'instant ce projet me dépanne mais je souhaite l'améliorer afin de pouvoir m'en servir plus souvent. En effet je ne trouve personne qui est capable de me reparamettrer la caisse et ca me fout les boules.

Donc pour l'instant le projet ressemble a peut près à ce que j'en attend.
S'il n'y avait que moi pour l'utiliser ca me suffirait mais j'ai des serveurs qui devrait pouvoir l'utiliser.

Le seul soucis pour l'instant est que je n'arrive pas a envoyer des bons sur l'imprimante cuisine qui est une imprimante ticket epson tm300a. Du coup je suis obligé d'amener les bons en cuisine ce qui est un peu fastidieux.

Enfin voila tout si tu veux je peux te fournir le fichier complet mais je ne peux pas le mettre sur ce forum car il est trop volumineux.

Maintenant je te remercie de bien vouloir me donner un coup de main pour finaliser ce projet. Si tu veux d'autres renseignements n'hésite pas à me contacter.

Cordialement
Thierry
bonne soirée
 

excelman

XLDnaute Occasionnel
Re : Lancement macro via fonction dans cellule

Salut à tous,

Je crois que j'ai trouvé un truc pour lancer une macro via une fonction si dans excel.
Il suffit de déclarer la macro comme ceci

Public Function mamacro() As String
quantité = InputBox("INDIQUEZ LA QUANTITE", "")
End Function

dans ce cas la je lance la macro (qui est une inputbox) avec la fonction si tel que :

=si(A1="";"";quantité())

une fois que je rentre quoique ce soit dans la cellule il me lance la macro quantité et me met le résultat dans la cellule B1

J'espère que cela sera explicite pour tout le monde

Bonne journée à tous
 

pierrejean

XLDnaute Barbatruc
Re : Lancement macro via fonction dans cellule

bonjour excelman

ce n'est pas tout a fait cela

moi je mettrais:

Function quantité() As Integer
quantité = InputBox("INDIQUEZ LA QUANTITE", "")
End Function

avec effectivement en B1 : =SI(A1="";"";quantité())
 

Discussions similaires

Réponses
1
Affichages
127

Statistiques des forums

Discussions
312 338
Messages
2 087 403
Membres
103 536
dernier inscrit
komivi