Microsoft 365 Userform supprimer et modifier sur 2 feuilles

eric72

XLDnaute Occasionnel
Bonjour à tous,
J'ai un fichier avec un bouton "Fiche Produit" à partir duquel j'aimerais ajouter, modifier ou supprimer sur 2 feuilles nommées "Produit" et "Données" (elles sont juste masquées), cela fonctionne bien sur "produit", mais quand je veux modifier ou supprimer dans "Données" cela ne fonctionne pas et je ne comprends pas trop pourquoi!!!
l'un d'entre vous aurait-il une idée.
Merci d'avance pour le temps consacré...
Eric
 

Pièces jointes

  • Fiche Produit testexceldownload.xlsm
    342 KB · Affichages: 12

ALS35

XLDnaute Nouveau
Bonjour,

1) tu as des erreurs de compilation, à corriger de toutes façons
2) précise le mode opératoire de ce que tu veux faire, quel userform, quel bouton, quelle données à supprimer, quel résultat sur quelle feuille, ...

Cordialement
 

eric72

XLDnaute Occasionnel
Bonjour ALS35,
Tout d'abord merci pour votre réponse
Avec le UsfProduit le bouton "Modifier" pouvoir modifier dans l'onglet "Produit" Tableau "BDProduit", mais aussi "Données", Tableau "TbProduit", et même chose pour le bouton "Supprimer" dans les 2 tableaux structurés (et non pas la ligne entière(
J'espère être assez clair!!!
Merci beaucoup
Eric
 

ALS35

XLDnaute Nouveau
Re,
Ta procédure SupprProduitDonnee_Click ne sert à rien car elle n'est rattachée à aucun contrôle ni appelée dans le code.
Ci-après le code modifié de BtSupprProduitBase_Click pour la suppression dans les deux tableaux si j'ai bien compris, avec l'indentation du code refaite correctement.

Les Afficher/Masquer et Ptrotect/Unprotect sont particulièrement pénibles en phase de mise au point.

Bonne application

VB:
Private Sub BtSupprProduitBase_Click()

Dim question As Integer
Dim no_ligne As Long

Application.ScreenUpdating = False
'Sheets("produit").Visible = True
'Sheets("produit").Activate
Call Unprotect

no_ligne = CbRechercheProduit.ListIndex + 1
If MsgBox("Êtes-vous certain de vouloir supprimer", vbYesNo, "Demande de confirmation") = vbYes Then
    Range("BDProduit").ListObject.ListRows(no_ligne).Delete
    Range("TBProduit").ListObject.ListRows(no_ligne).Delete
    
    question = MsgBox("Voulez-vous Effectuer une autre Action", vbQuestion + vbYesNo, "Information")
    If question = vbYes Then
        Unload Me
        UsfProduit.Show 'Fermer puis ouvrir permet d'effacer les données
    End If
    
    Unload Me
End If

Call Protect
Sheets("produit").Visible = False

End Sub
 

eric72

XLDnaute Occasionnel
Re,
Merci pour la réponse mais ça ne va pas, je m'explique dans la feuille "Produit" je peux avoir plus de références que dans l'onglet "Données" et la macro prend la list.index de l'onglet "produit" et ça n'est pas le même dans l'onglet "Données" donc si le no_ligne = 3 dans "produit" il supprime le no_ligne 3 dans "Données (j'avais déjà essayé ce code), désolé.
Je remets le fichier avec plus de données, vous verrez que dans ce cas ça ne fonctionne pas, j'ai aussi essayé de supprimer avec la valeur de la textbox "NomPlante". value mais sans succès
Merci encore
Eric
 

Pièces jointes

  • Fiche Produit testexceldownload.xlsm
    331.6 KB · Affichages: 1

Discussions similaires

Haut Bas