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

Suppression de photo

G

G'Claire

Guest
Bonsoir le forum,

Voila, j'ai un UserForm "ResultatArchive" qui est le résultat d'une recherche.

Dans celui-ci j'ai une photo qui lui appartient et qui est récupérer par le code suivant (Dont je remercie l'auteur du code):

Private Sub TextBox1_Change()

Dim Cell As Object

On Error GoTo gestion

With Range("A8:A" & Range("A65536").End(xlUp).Row)
Set Cell = .Find(TextBox1, LookIn:=xlValues)

Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & Cell & ".jpg")
Label16.Visible = False


End With
Exit Sub

gestion: 'si pas d'image disponible pour chargement
If Err.Number = 53 Then
Label16.Caption = "Pas de photo disponible pour cette référence. "
Image1.Picture = LoadPicture()
End If
End Sub

Ce que j'aimerai c'est quand je supprime cette référence, pouvoir supprimer cette photo associée.

Je vous remercie par avance, G'Claire
 
L

LaurentTBT

Guest
Salut G'Claire, bonsoir tout le monde.

Est-ce que cela ne suffit pas de mettre à la fin de ta procédure de suppression de référence:
Image1.Picture = LoadPicture()
comme tu le fait dans la recherche dans ta routine d'erreur traitant du cas où l'image est indisponible.

Bonne chance.
Laurent.
 
G

G'Claire

Guest
Laurent TBT, le forum,

Merci pour ta réponse, je vous liste le code pour la suppression de la référence :

Private Sub BoutSupprimeFiche_Click()


'MsgBox Ligne
Dim réponse1
réponse1 = MsgBox(" Cette fiche va être définitivement supprimée, voulez-vous continuer ? ", vbYesNo + vbQuestion, "Validation")
If réponse1 = vbYes Then


With Sheets(Archi1)
.Rows(Ligne10).Delete
End With

ActiveWorkbook.Save
MsgBox " La fiche est définitivement supprimée "

Range("A8").Resize(rowsize:=Range("F1").Value, columnsize:=1).Select
UserForm5Archives.ListBox1.List = Selection.Value

'comptage nb de fiches
Call calculnombrefichesArchives

'sortir
Unload Me


End If
End Sub

Et la modifification a apporter, si je pense avoir bien compris :

Private Sub BoutSupprimeFiche_Click()


'MsgBox Ligne
Dim réponse1
réponse1 = MsgBox(" Cette fiche va être définitivement supprimée, voulez-vous continuer ? ", vbYesNo + vbQuestion, "Validation")
If réponse1 = vbYes Then


With Sheets(Archi1)
.Rows(Ligne10).Delete
End With

ActiveWorkbook.Save
MsgBox " La fiche est définitivement supprimée "

Range("A8").Resize(rowsize:=Range("F1").Value, columnsize:=1).Select
UserForm5Archives.ListBox1.List = Selection.Value

Image1.Picture = LoadPicture() <--------ICI LA MODIFICATION

'comptage nb de fiches
Call calculnombrefichesArchives

'sortir
Unload Me


End If
End Sub

Ce que j'ai fait et cela ne fonctionne pas, mais je pense plutôt ne pas avoir bien compris.

Merci, et bon week-end, G'Claire
 
L

LaurentTBT

Guest
Bonjour à tous.

Vite fait, car je suis un peu pris ce dimanche...

Peut-être faut-il simplement rajouter UserForm5Archives devant:
UserForm5Archives.Image1.Picture = LoadPicture()

Ceci va simplement enlever l'image de ton contrôle dans le Userform.

Mais après réflexion, je me suis dit que ton but était peut-être carrément de supprimer le fichier image de ton disque dur?
Dans ce cas, je mettrais une variable qui stockerais d'abord le nom du fichier image, Ensuite je supprime l'image du userform, et enfin, je supprime l'image du disque dur. En effet, si on supprime directement l'image du disque dur, cela va peut-être causer une erreur pous l'image du userForm.
Bref, voici peut-être un code (non testé):

Private Sub BoutSupprimeFiche_Click()
Dim NomImage as string
'MsgBox Ligne
Dim réponse1
réponse1 = MsgBox(" Cette fiche va être définitivement supprimée, voulez-vous continuer ? ", vbYesNo + vbQuestion, "Validation")
If réponse1 = vbYes Then


With Sheets(Archi1)
.Rows(Ligne10).Delete
End With

ActiveWorkbook.Save
MsgBox " La fiche est définitivement supprimée "

Range("A8").Resize(rowsize:=Range("F1").Value, columnsize:=1).Select
UserForm5Archives.ListBox1.List = Selection.Value

NomImage=UserForm5Archives.Image1.Picture
UserForm5Archives.Image1.Picture=loadpicture()
kill NomImage

'comptage nb de fiches
Call calculnombrefichesArchives

'sortir
Unload Me


End If
End Sub


Voilà, mais c'est répondu vite fait, sans avoir essayé.

Bon dimanche.
Laurent.
 
G

G'Claire

Guest
Private Sub BoutSupprimeFiche_Click()

Dim NomImage As String
Dim réponse2


réponse2 = MsgBox(" Cette fiche va être définitivement supprimée " & vbCrLf & " voulez-vous continuer ? ", vbYesNo + vbQuestion, "Validation")

If réponse2 = vbYes Then


With Sheets(Archi1)

.Rows(Ligne10).Delete

End With

ActiveWorkbook.Save

MsgBox " La fiche est définitivement supprimée "

Range("A8").Resize(rowsize:=Range("F1").Value, columnsize:=1).Select
UserForm5Archives.ListBox1.List = Selection.Value

MsgBox " La photo est définitivement supprimée "

'Suppression de l'image sur le disque

NomImage = RésultatArchives.Image1.Picture
RésultatArchives.Image1.Picture = LoadPicture()
Kill NomImage

'comptage nb de fiches

Call calculnombrefichesArchives

'sortir

Unload Me


End If

End Sub

Alors cela me donne une erreur "Fichier introuvable"

et surligne en jaune : Kill NomImage

Je pense qu'il faut donner le chemin du dossier, je vais essayer de trouver , merci, G'Claire
 

Discussions similaires

Réponses
12
Affichages
658
Réponses
18
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…