Bonjour j’ai crée un tableau dans le quel il fait la somme de plusieurs casses dans une casse que j’ai nommé Total ( une casse dynamique qui change a chaque fois je vide la table et je la remplis a nouveau )et en bas de cette casse je veux qu’il prennent la somme de la casse Total (cellule qui cumul que j’ai nommé " Total Journée ) voila c mon souci en gros ,j’aimerai crée un bouton ( Valider ) qui prends en charge ma requet , merci a vous .
Bonsoir @mahinfos4,
Voici une proposition:
De “B2 à B15” Table des données.
En “B16” Sous Total.
En “B17” Total Journée cumulée.
Code VBA dans la Feuil1
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B2:B15")) Is Nothing And Target.Count = 1 Then
Range("B16") = [Sum(B2:B15)]
End If
End Sub
Dans Module1 associé au bouton "Total Journée"
Sub Total_Journée()
Dim Total As Long
Dim SousTotal As Long
Application.ScreenUpdating = False
Range("B16").Select
SousTotal = ActiveCell
Range("B17").Select
Total = ActiveCell + SousTotal
ActiveCell = Total
Range("B16").Select
ActiveCell.ClearContents
Range("B2:B15").Select
Selection.ClearContents
Range("B17").Select
End Sub
Dans Module2 associé au bouton "RAZ Journée"
Sub RAZ()
Range("B17").Select
Selection.ClearContents
End Sub
Comme tu n’as pas fourni de fichier Excel, je te laisse adapter ces codes à ton fichier.
Fichier exemple ICI==> mahinfos4 V1.xlsm (21,5 Ko)
Cordialement.
Bonsoir;
Je vous remercie mdo100 , la je suis pas sur mon pc j’ai essayer d’ouvrir le fichier que tu ma envoyer avec Google drive mais apparement il prends pas ton Code en charge , dés que je le serai je vous envoie une copie de mon fichier , et je vous tiens au courant merci infiniment
Bonsoir tout le monde
@mdo100 j’ai envoyer un msg au privé je sais pas si vous lavez reçu ou bien non si c le cas fais moi un signe svp merci .
Bonsoir @mahinfos4,
Oui, j’ai bien eu ton message, mais c’est un long travaille que tu demandes, tout est a faire et surtout, il n’a rien a voir avec la demande initiale.
Tu aurais pu aussi le publier directement sur le forum, car il ne comporte aucunes données confidentielles et surtout nous aurions pu nous mettre à plusieurs pour faire le fichier.
En tout cas, j’ai commencé, mais j’ai aussi plusieurs fer au feu et parfois, je décroche un peu pour aider d’autre personne, ce qui me permet de revenir sur ton fichier avec des idées plus clair.
Donc soit un peu patient, sinon publie le directement sur le forum.
Cordialement.
Re , ok chef je vais le posté ici au meme temps je suis patient lol c été juste pour savoir si tu a bien recu mon fichier et fait a ton aise, merci a vous Caisse.xlsx (269,2 Ko)
Bonsoir @mahinfos4,
Je te livre le travail déjà effectué sur ton fichier, donne moi ton avis !
Dans la feuille “Caisse”
En “H4” j’ai mis la formule =MAINTENANT()
elle m’est utile pour enregistrer la caisse dans la feuille “JOURNAL2”, j’y reviendrais…
Toujours dans la feuille “Caisse”
Colonne “B” liste déroulante pour choisir les “id”
Colonne “C”
=SIERREUR(RECHERCHEV($B5;Tableau;2;0);"")
Colonne “D”
=SIERREUR(RECHERCHEV($B5;Tableau;8;0);"")
Colonne “F”
=SIERREUR(SOMME(D5*E5);"")
Colonne “G”
=SIERREUR(SI(RECHERCHEV($B5;Tableau;3;0)-$E5<=0;"Stock = 0";RECHERCHEV($B5;Tableau;3;0)-$E5);"")
Voir aussi dans le “Gestionnaire de noms”
Avec le bouton “Valider” tout va se cumuler dans la feuille que j’ai nommé “JOURNAL2” avec cette macro.
Sub Caisse()
Dim sh1 As Worksheet, sh2 As Worksheet, x%, i%
Dim LR%, M%
Set sh1 = Sheets("Caisse"):
Set sh2 = Sheets("JOURNAL2")
Application.ScreenUpdating = False
x = sh2.Cells(Rows.Count, 2).End(xlUp).Row + 1
With sh1
LR = .Cells(.Rows.Count, 2).End(xlUp).Row
If LR < 21 Then M = .Cells(.Rows.Count, 2).End(xlUp).Row Else M = 20
For i = 5 To M
Range("B" & i).Resize(, 5).Copy
sh2.Range("B" & x).PasteSpecial xlPasteValues
sh2.Range("A" & x) = Format(CDate(.Range("H4")), "dd/mm/yyyy hh:mm")
x = x + 1
Next
End With
Application.CutCopyMode = True
On Error Resume Next
Sheets("Caisse").Select
Range("B5:G20").SpecialCells(xlCellTypeConstants, 23).ClearContents
On Error GoTo 0
End Sub
Colonne “A”
Date & Heure
Colonne “B”
ID
Colonne “C”
Produits
Colonne “D”
Prix_U
Colonne “E”
Quantité
Colonne “F”
Total
A la fin de l’exécution de la macro on efface les données de la feuille “Caisse” de “B5 à G20”.
Dans la feuille “Bilan Caisse Ticket”
Colonne “A”
=SI($B2<>"";NBVAL($B$2:B2);"")
Colonne “B”
=SIERREUR(INDEX(Date;EQUIV(0;INDEX(NB.SI(B$1:B1;Date);0;0);0)); "")
Colonne “C”
=SIERREUR(MOD(B2;1);"")
Colonne “D”
=SOMMEPROD((Date=$B2)*Total)
Dans la feuille “Bilan Caisse par Jour”
Colonne “A”
=SI($B2<>"";NBVAL($B$2:B2);"")
Colonne “B”
=SIERREUR(INDEX(ENT(Date);EQUIV(0;INDEX(NB.SI(B$1:B1;ENT(Date));0;0);0)); "")
Colonne “C”
=SOMMEPROD((ENT(Date)=$B2)*Total)
Voici le fichier avancé ICI==> mahinfos4 Planning.xlsm (339,1 Ko)
Donc voilà ou j’en suis, ton avis est décisif dans ma continuation, tes remarques critiques aussi.
N’oublie pas non plus que nous sommes en période de fêtes et qu’une pause s’impose, j’ai 2 petits enfants qui veulent passer quelques temps avec leur papy mdo100
Regarde et dit moi !
Cordialement.
Bonsoir,
wow rien a dire, merci merci infiniment t’as vraiment tout fait , je viens de voir le fichier sur google drive c parfait avec tout c macros et formules rien a dire, reste de le tester chez moi demain et je vous tiens au courant , je vous souhaite une bonne fete a toi et a la maman et tés deux petits enfants , j’espere que g été pas lourd avec la tache que g été confier a bientôt monsieur , encore merci
Bonsoir , une dernière suggestion après je te laisse trankil lol
si c possible, quand je clique sur ENTER le curseur ce déplace de la cellule B5 a B6, j’aimerai avoir un code ou une formule qui crée une copie de la ligne 5 avec même couleur et formue des cellules et qui la colle dans la ligne 6 , comme si je le fait manuellement quand je selectionne les casses ( b5 c5 d5 e5 f5 g5 ) au meme temps et de pti coin je tire vers le bas, voila normalement c tout pour cette année lol