Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Supprimer photo dans dossier

Marvin57

XLDnaute Occasionnel
Bonjour le forum,

j'ai un fichier excel qui sert comme base de données pour ma collection de miniatures.

je peux via un UserForm faire les saisies pour une nouvelle entrée par exemple, je peux aussi modifier les données ou les supprimer.

Jusqu'ici j'y arrive.

Ce que je voudrai faire c'est rajoute un code dans ma procédure de suppression qui lors de cette action supprime également
la photo de cet article qui se trouve dans un dossier (Photo BDD) sur le disque dur.

Alors voila;

Mon fichier de travail se nomme BASE1
L'onglet de ce fichier qui est ma base de données de mes articles se nomme BASE ARTICLES


Mon dossier qui contient les photos se nomme Photo BDD
voici le chemin : P:\DINKYTOYS\Photo BDD

voici le code pour supprimer les données d'un article

Private Sub CommandButton6_Click() ' Supprimer un article
If ListBox1.ListIndex = -1 Then
MsgBox ("Veuillez effectuer un choix d'article préalable !!!")
Exit Sub
End If
If MsgBox("Voulez vous supprimer l'article sélectionné ?", vbYesNo) = vbNo Then
MsgBox ("Traitement annulé !!!")
Exit Sub
End If
LIGNECHOISIE = ListBox1.ListIndex + 2
Sheets("BASE ARTICLES").Rows(LIGNECHOISIE & ":" & LIGNECHOISIE).Delete
MsgBox ("Suppression effectuée !!!")
Call UserForm_Initialize
End Sub


Auriez-vous une idée comment je pourrai rajouter cela SVP.

Merci à vous pour votre aide

Marvin57
 
Solution
à tester
VB:
Private Sub CommandButton6_Click()   ' Supprimer un article
   If ListBox1.ListIndex = -1 Then
      MsgBox ("Veuillez effectuer un choix d'article préalable !!!")
      Exit Sub
   End If
   If MsgBox("Voulez vous supprimer l'article sélectionné ?", vbYesNo) = vbNo Then
      MsgBox ("Traitement annulé !!!")
      Exit Sub
   End If
   LIGNECHOISIE = ListBox1.ListIndex + 2
   Sheets("BASE ARTICLES").Rows(LIGNECHOISIE & ":" & LIGNECHOISIE).Delete
   Kill "P:\DINKYTOYS\Photo BDD\txt_photo.Value" & ".jpg"
   MsgBox ("Suppression effectuée !!!")
   Call UserForm_Initialize
End Sub

cp4

XLDnaute Barbatruc
Bonjour,

C'est compliqué, car il est trop gros et il a trop de données confidentielles.
Tu peux monté un fichier plus léger, avec juste ton userform (que tu glisses dans ton nouveau fichier) et la feuille où se trouvent les données (à anonymiser, en utilisant voir image)


Sinon, où se trouve le nom du fichier image à supprimer?
 

Marvin57

XLDnaute Occasionnel
Re,

le dossier qui contient les images se nomme Photo BDD et se trouve ici P:\DINKYTOYS\Photo BDD
et dans le fichier Photo BDD se trouvent les images de chaque article.

Donc si je choisi un article dans le listbox et que je souhaite le supprimer il me le fait mais je voudrai qu'il me supprime en même temps l'image qui porte le même non que l'article.
 

cp4

XLDnaute Barbatruc
Tu ne réponds pas à la question posée.
Autrement dit, est-ce que le nom de la photo (ex: roro.jpg) se trouve dans la listbox ou sur la feuille excel "BASE ARTICLES". Il faut bien récupérer le nom du fichier image pour le supprimer, non.
 

Marvin57

XLDnaute Occasionnel
Re,

désolé, je vois comment c'est compliqué sans voir le fichier.
Non le nom de la photo se trouve pas dans le listbox mais dans un textbox qui se nommetxt_photo et lui il alimente l'objet image qui se nomme La_photo.

et voici le code qui ramène la photo dans le userform.
J'espère que cela va t'aider.

Private Sub txt_photo_Change()
If txt_photo = "" Then Exit Sub
chemin = ThisWorkbook.Path & "\Photo BDD\"
Img = txt_photo.Value & ".jpg"
la_photo.Picture = LoadPicture(chemin & Img)
End Sub
 

cp4

XLDnaute Barbatruc
à tester
VB:
Private Sub CommandButton6_Click()   ' Supprimer un article
   If ListBox1.ListIndex = -1 Then
      MsgBox ("Veuillez effectuer un choix d'article préalable !!!")
      Exit Sub
   End If
   If MsgBox("Voulez vous supprimer l'article sélectionné ?", vbYesNo) = vbNo Then
      MsgBox ("Traitement annulé !!!")
      Exit Sub
   End If
   LIGNECHOISIE = ListBox1.ListIndex + 2
   Sheets("BASE ARTICLES").Rows(LIGNECHOISIE & ":" & LIGNECHOISIE).Delete
   Kill "P:\DINKYTOYS\Photo BDD\txt_photo.Value" & ".jpg"
   MsgBox ("Suppression effectuée !!!")
   Call UserForm_Initialize
End Sub
 

Marvin57

XLDnaute Occasionnel
Bonjour,

cela fonctionne, Merci à vous pour votre aide.

Marvin57
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…