Excel suppression via VBA

.jakob@gmail.com

XLDnaute Nouveau
Bonjour
Je suis entrain d'adapter pour l'association dont je m'occupe un ficher Excel pour la gestion de la caisse.

Dans mon userform, c'est le bouton "Effacer ligne" ce bouton me permet de supprimer la ligne dans la liste Box, mais je ne sait pas comment lui faire supprimer également les information dans l'Onglet Temp

Ci joint mon fichier encours de création

D'avance merci pour votre retour
 

Pièces jointes

  • caisse - V1.xlsm
    51.5 KB · Affichages: 38
Dernière édition:

Paritec

XLDnaute Barbatruc
Bonjour Jackob le forum
En voilà une jolie demande , avec un joli fichier !!!
Alors on ouvre le fichier, là aucune explications, on cherche comment cela fonctionne, mais aucune données dans la feuille Temp
Franchement , tu penses que l'on peut deviner comment tourne ton application???
bref
a+
Papou:)
 

.jakob@gmail.com

XLDnaute Nouveau
Hello
Difficile de tout expliquer en quelques lignes.

L'onglet accueil lance le userform1 (qui permet d'alimenter l'onglet temp + l'onglet Histo)
dans le userform tu choisi la quantité et le produit (Chips) ==> ça alimente l'onglet Temp + la listebox1 (qui se trouve a droite dans le userform)

L'onglet temp permet le calcul du total textbox4 (en bas du userform)
Le bouton effacer commande remet à zéro les éléments de l'onglet Temp + listbox1
Le bouton validé transfert dans Histo les éléments de l'onglet Temp + remet à Zéro l'onlget TemP + listbox1

La ou je bloc c'est le bouton Effacer ligne : j'aimerai en selectionnant une ligne dans la listbox1, l'effacer de la listbox1 Et en même temps l'effacer de l'Onglet Temp

Est ce plus clair de cette manière ?

Merci
 

Paritec

XLDnaute Barbatruc
Bonsoir Jacb le forum
dois je comprendre que si la commande n'est pas validée lors de la fermeture de l'userform il faut la rappeler à l'ouverture de celui-ci??
ou vider la feuille temp si il y a des éléments au moment de l'ouverture de l'userform??
Pourquoi passer par une feuille pour faire un Total là ?????
tu veux aller de Paris à Nantes et tu passes par Strasbourg(image)
à te relire
a+
papou:)
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re jackob le forum
bon pas de réponse alors j'ai fait sans tenir compte d'une mise à zéro de la feuille Temp ni d'un chargement de la feuille temp
Voilà, mais sache que si tu quittes sans avoir valider une commande tu laisses ta feuille temp avec des lignes !!!! et si tu ouvres et que tu ajoutes des lignes tu ne pourras plus utiliser le listindex pour effacer!!!
a+
Papou:)
 

Pièces jointes

  • Jackob V1.xlsm
    53.7 KB · Affichages: 25
Dernière édition:

.jakob@gmail.com

XLDnaute Nouveau
Hello
Non ce n'est pas ma demande ! désolé

Je vais essayer d'expliquer autrement

Je saisie une commande avec
1 X chips
1x café
1x biere

Dans la listbox je retrouve mes 3 éléments ainsi que dans l'onglet Temp
Jusqu'ici tout est OK

C'est maintenant qu'il y a mon PB
Je souhaite enlevé de la commende encours le café
Je clic dans la listbox sur la ligne avec le café et j'aimerai avoir un bouton "Suppression" qui enlève le café dans la listBox et dans l'onglet Temp

Pour ne conserver au final que les chips et la biere
Puis je valide ma commande

Est ce que c'est plus clair ?

Merci
 

.jakob@gmail.com

XLDnaute Nouveau
Hello
J'avais effectivement pas compris ce que tu as dis dans ton précédent message !
Le bouton effacer ligne fait effectivement bien ce que je souhaite !
j'ai du coup pu ajouter dans la commande le recalcul du montant total

Pour la sortie sans validé la commande, j'ai rajouter le code pour vider l'onglet temp lorsque UserForm_Terminate()

Merci pour ton aide !!

Bonne soirée
 

ChTi160

XLDnaute Barbatruc
Bonjour jakob
Bonjour le Fil (Papou) , le Forum

Pour participer ! Lol
j'ai ajoute la mise à jour du TextBox4 (total commande) après la suppression d'une ligne
VB:
Private Sub CommandButton32_Click() 'Bouton Effacer Ligne
Total = 0
    If ListBox1.ListCount > 0 Then
        Feuil2.Rows(ListBox1.ListIndex + 2).Delete shift:=xlUp
        Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
    End If
    With Sheets("Temp") 'Ici
        dlf = .Range("a" & Rows.Count).End(xlUp).Row
        If dlf > 1 Then
            For i = 2 To dlf
                Total = Total + .Range("d" & i)
            Next i
        End If
    End With
     TextBox4 = Format(Total, "Currency") 'Mise a jour
End Sub
Bonne journée
Jean marie
 

Paritec

XLDnaute Barbatruc
Re bonjour Jean Marie jakob le forum
moi j'aurais fait
a+
Papou:)
VB:
Private Sub CommandButton32_Click()
    If ListBox1.ListCount > 0 And ListBox1.ListIndex <> -1 Then
        Feuil2.Rows(ListBox1.ListIndex + 2).Delete shift:=xlUp
        Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
        TextBox4 = Format(Application.WorksheetFunction.Sum(Feuil2.Range("D2:D500")), "Currency")
    End If
End Sub
 

Paritec

XLDnaute Barbatruc
Re tous,
J'avais répondu pour simplement la question d'effacement de ligne, mais maintenant que je regarde les code dans l'userform, on peut tout changer et mettre un module de classe pour gérer cela ce serait 10 fois plus simple, par contre il serait peut-être un peu perdu ensuite.
a+
Papou:)
 

Paritec

XLDnaute Barbatruc
Re Jakob Jean Marie le forum
Voilà ton fichier avec déjà beaucoup de lignes supprimées, si tu veux on peut encore faire beaucoup plus.
Pour le bouton Total, il est à la poubelle tu n'en a plus besoin.
a+
papou:)
 

Pièces jointes

  • Jackob V2.xlsm
    50.1 KB · Affichages: 27

ChTi160

XLDnaute Barbatruc
Bonsoir jackob
Bonsoir Papou ,le Forum

une approche (avec comme suggéré par Papou) l'utilisation d'un module de Class .
je ne me suis intéressé qu'a la gestion du Userform
a voir
si besoin de commentaire ne pas hésiter Lol
Bonne fin de Soirée
Jean marie
 

Pièces jointes

  • Jackob Chti160.xlsm
    68.1 KB · Affichages: 26

Discussions similaires

Réponses
2
Affichages
98