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.
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...
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
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.
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.
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
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".
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.
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.
On détermine la ligne en fonction de la cellule E qui est la même sur les deux feuilles une fois les données remplies. C'est un numéro de note de crédit.
Donc la ligne modifiée dans la feuille database doit modifier la dernière cellule de la même ligne dans la feuille validation. Les données de la feuilles database sont juste retransférées sur la feuille validation.
Je ne sais pas si je dois continuer à te questionner sur la ligne de la colonne M de la feuille "validation" tant cela devient . En 2 messages tu donnes 2 informations contradictoires:
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
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.
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 méthode qu'une "formule" pour la feuille validation