Probleme de supression dans une base de donnée
Bonjour,
Je vous sollicite pour un problème de sélection de donnée dans le programme VBA que je crée.
Je vous explique succinctement l’objectif de la macro que je tente d’exécuter :
L’idée est de pouvoir supprimer un Sous-traitant répertorié dans une base de données (Cf schéma de la base de données).
L’organisation de cette base est la suivante :
Les ST sont classés par type de travaux qu’ils réalisent sous 2 colonnes. Dans la 1ere apparait leur nom et dans la seconde apparait leur contact et infos (adresse, nom du contact, téléphone etc…). Ces données sont éditées automatiquement à partir d’une boite de dialogue que l’utilisateur a remplie préalablement.
Voici les lignes de codes de la macro défaillante. (Le débogage automatique d’Excel m’indique la ligne jaune).
Private Sub supprimer_Click()
Dim ok As Boolean
ok = True
Workbooks("Bible").Sheets("Sous-traitants").Unprotect password:="#########"
lentreprise.ForeColor = RGB(10, 10, 10) 'couleur noir pour les labels
lnom.ForeColor = RGB(10, 10, 10)
If entreprise.Value = "" Then
lentreprise.ForeColor = RGB(250, 0, 0)
ok = False
End If
If nom.Value = "" Then
lnom.ForeColor = RGB(250, 0, 0)
ok = False
End If
If ok = True Then
If MsgBox("Êtes-vous certain de vouloir supprimer la fiche entreprise : " & nom.Value & "?", vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then
For i = 2 To Workbooks("Bible").Sheets("Sous-traitants").Cells(1, (1 + entreprise.ListIndex) * 2 + 2).End(xlDown).Row - 1
If nom.Value = Workbooks("Bible").Sheets("Sous-traitants").Cells(i, (1 + entreprise.ListIndex) * 2 + 2) Then
l = i
c = (1 + entreprise.ListIndex) * 2 + 2
Exit For
End If
Next
Workbooks("Bible").Sheets("Sous-traitants").Cells(l, c).Select
Selection.Delete Shift:=xlUp
Workbooks("Bible").Sheets("Sous-traitants").Cells(l, c + 1).Select
Selection.Delete Shift:=xlUp
Kill "E:\#########\Sous-traitants\" & entreprise.Value & "\" & nom.Value & ".pdf" 'reprendre ici
Sheets("Sous-traitants").Protect password:="#########", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowDeletingRows:=True, AllowFiltering:=True 'Protéger la feuille
Unload Me
End If
End If
End Sub
Je ne comprends pas ce qui cloche…. Avez-vous une idée ?
Merci d’avance pour votre aide !
Antoine
Bonjour
Tu devrais joindre ton fichier, même allégé et anonymisé....
Bye !
Bonjour,
Effectivement j'ai oublié de joindre le schéma de la base de donnée, le voici.
Pour des questions de confidentialité je ne peux pas vous envoyer mon fichier... Je comprends bien que ce serait plus facile.
J'espère cependant que ce schéma vous aidera à voir y plus clair !
Merci d'avance pour vote aide,
Antoine