Supprimer une cellule lorsque la ligne correspondante a été modifiée sur une autre feuille

Spielbergh

XLDnaute Nouveau
Bonjour,

Je débute en VBA et ce Forum m'a déjà beaucoup aidé mais je n'ai pas pu trouvé la solution au cas suivant :

C'est un fichier dans lequel des informations sont remplies à partir d'un USERFORM dans la feuille "Database".
Je voudrais que chaque fois qu'une cellule d'une ligne est modifiée sur la feuille "database", la dernière cellule (colonne M) de la ligne correspondante sur la feuille "validation" soit supprimée. La ligne correspondante serait retrouvée à partir du numéro de note de crédit dans la colonne E sur les deux feuilles.
Les Données dans la feuille "validation" sont simplement reprises de la feuille "Database", cette feuille ne sera pas accessible à tout le monde.

Avez-vous une solution ?

Merci d'avance

Bonne journée
 

Pièces jointes

  • test 7.xlsm
    270.9 KB · Affichages: 7
Solution
Ok donc pour toute cellule modifiée dans la ligne 12 en feuille "database", on remet à vide la cellule M12 de la feuille "validation". Code à placer dans la feuille "database":
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cellule As Range
 
    With ThisWorkbook.Worksheets("Validation")
        For Each Cellule In Target.Cells
            .Cells(Cellule.Row, 13).ClearContents
        Next Cellule
    End With
End Sub

C'est tellement simple ! Je ne sais pas pourquoi tu as embarqué la colonne E dans cette affaire et d'ailleurs je n'ai compris ton 2ème message
Je demandais de pouvoir le faire en cherchant la cellule E12 de la feuille database dans la colonne E de la feuille validation pour utiliser une autre...

Dudu2

XLDnaute Barbatruc
Bonjour,
Sur la feuille "database" il faut insérer ce code, si j'ai bien compris cette histoire de colonne E.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cellule As Range
 
    With ThisWorkbook.Worksheets("Validation")
        For Each Cellule In Target.Cells
            .Cells(.Cells(Cellule.Row, 5).Value, 13).ClearContents
        Next Cellule
    End With
End Sub
 
Dernière édition:

Spielbergh

XLDnaute Nouveau
Bonjour Dudu2,

Merci beuacoup pour cette réponse.
J'obtiens l'erreur 1004 : Application-defined or bject-defined error sur la ligne
.Cells(.Cells(Cellule.Row, 5), 13).ClearContents

lorsque je veux save mes données dans la feuille database avec l'userform.
 

Dudu2

XLDnaute Barbatruc
En d'autres termes:
- si on modifie une cellule de la ligne 12 sur la feuille "database" comment trouve-t-on le numéro de la ligne de la cellule de la colonne M de la feuille "validation" à "supprimer" ?
Ce n° de ligne est en E12 des 2 feuilles "database" ou "validation" ? C'est la supposition que j'ai faite en l'absence d'information précise.
 

Spielbergh

XLDnaute Nouveau
Les lignes seront complétées petit a petit par différents documents.
Oui c'est ça le numéro dans la colonne E sera le même sur les deux feuilles et sera différents pour toutes les lignes il permet donc de retrouver la ligne qui correspond pour supprimer la cellule M
 

Dudu2

XLDnaute Barbatruc
Bonjour
Oui c'est ça le numéro dans la colonne E sera le même sur les deux feuilles
Un numéro est dans une cellule. Une cellule est la combinaison d'une ligne et d'une colonne.
Donc en colonne E. Et toujours pas d'indication sur la ligne ! Donc supposition non confirmée: la ligne est la ligne modifiée en "database".
 

Spielbergh

XLDnaute Nouveau
Exactement, excuse moi pour l'explication un peu difficile mais je ne vois pas trop comment l'exprimer. La ligne modifié dans la feuille data base sera forcément modifiée dans la feuille validation et je voudrais que la cellule M de ma feuille validation soit vider si il existe quelque chose lorsque cela arrive.
 

Spielbergh

XLDnaute Nouveau
Exactement, excuse moi pour l'explication un peu difficile mais je ne vois pas trop comment l'exprimer. La ligne modifié dans la feuille data base sera forcément modifiée dans la feuille validation et je voudrais que la cellule M de ma feuille validation soit vider si il existe quelque chose lorsque cela arrive.

Donc la colonne à vider sera toujours la M mais le ligne change en fonction de la ligne modifiée sur la feuille database
 

Dudu2

XLDnaute Barbatruc
Je ne sais pas si je dois continuer à te questionner sur la ligne de la colonne M de la feuille "validation" tant cela devient
1594128572602.gif
. En 2 messages tu donnes 2 informations contradictoires:
On détermine la ligne en fonction de la cellule E
Donc la ligne modifiée dans la feuille database doit modifier la dernière cellule (colonne M si j'ai bien suivi) de la même ligne dans la feuille validation
Si en "database" on modifie la ligne 12:
- d'après la 1ère citation, on va chercher le n° de ligne de la colonne M de la feuille "validation" dans la colonne E (sans savoir quelle ligne de la colonne E, on suppose la ligne 12 de la feuille "database" ou "validation").
- d'après la 2ème citation on prend la ligne 12 de la colonne M de la feuille "validation".

Tu sais quoi ? Donne un exemple.
Je modifie la ligne 12 de la feuille "database".
Quelle ligne de la colonne M de la feuille "validation" est à "supprimer" ?
Explique STP en indiquant les cellules (A1, B15, M514) et les feuilles concernées
 
Dernière édition:

Spielbergh

XLDnaute Nouveau
Alors pour commencer désolé pour les prises de tête !
Donc voila exemple :
En remplissant luserform. Les informations sont ajoutées dans la feuille "database" sur la ligne 12.
Disons que La cellule E12 de la feuille "database" a "600" comme valeur.
Comme la cellule E12 de la feuille validation est remplie comme ceci : "+'database'!E12" elle vaut également 600.
La cellule M12 de la feuille validation est ensuite remplie par une autre personne.
Si n'importe quelle cellule de la ligne 12 de la feuille "database" est modifiée, j'aimerais que la cellule M12 feuille "validation" soit vidée si déjà complétée.

Ce serait donc toujours la ligne 12 sur la feuille validation étant donné que toutes les lignes sont identiques sur les deux feuilles.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo