Effacer le contenu d'une cellule quand une autre est vide VBA
Fermé
lilounice
Messages postés
31
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
-
Modifié par jordane45 le 21/07/2015 à 16:23
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 27 juil. 2015 à 15:44
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 27 juil. 2015 à 15:44
A voir également:
- Effacer le contenu d'une cellule quand une autre est vide VBA
- Aller à la ligne dans une cellule excel - Guide
- Comment supprimer une page vide sur word - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Vba récupérer la valeur d'une cellule ✓ - Forum VB / VBA
- Si une cellule contient un mot alors une autre cellule ✓ - Forum Excel
9 réponses
jordane45
Messages postés
38303
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
21 juil. 2015 à 16:24
21 juil. 2015 à 16:24
Bonjour,
J'aimerais rajouter une condition qui dit que quand column4 = "" alors target.offset(0,1) = ""
if target.value ="" Then target.offset(0,1) = ""
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
Modifié par Le Pingou le 22/07/2015 à 10:51
Modifié par Le Pingou le 22/07/2015 à 10:51
Bonjour,
C'est peut-être cela que vous cherchez :
Salutations.
Le Pingou
C'est peut-être cela que vous cherchez :
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column = 4 Then If Target.Value <> 0 Then Target.Offset(0, 1) = Date Target.Offset(0, 5) = Date + Range("J4").Value Target.Offset(0, 9) = Date + Range("N4").Value Target.Offset(0, 13) = Date + Range("R4").Value Else Target.Offset(0, 1) = "" Target.Offset(0, 5) = "" Target.Offset(0, 9) = "" Target.Offset(0, 13) = "" End If End If Application.EnableEvents = True End Sub
Salutations.
Le Pingou
lilounice
Messages postés
31
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1
Modifié par lilounice le 22/07/2015 à 15:36
Modifié par lilounice le 22/07/2015 à 15:36
j'avais fait presque pareil
Je viens d'essayer ce code avec else mais ça fait planter excel, je veux dire tout le programme pas le code
De plus avec mon code j'ai un probleme lorsque je supprime une seule entrée (que ce soit target.column ou target.offset)
Mais lorsque j'en supprime plusieurs le code bug et me met en surbrillance la ligne
If Target.Column = 4 And Target.Value <> 0 Then
Target.Offset(0, 1) = Date
Target.Offset(0, 5) = Date + Range("J4").Value
Target.Offset(0, 9) = Date + Range("N4").Value
Target.Offset(0, 13) = Date + Range("R4").Value
End If
If Target.Column = 4 And Target.Value = 0 Then
Target.Offset(0, 1) = ""
Target.Offset(0, 5) = ""
Target.Offset(0, 9) = ""
Target.Offset(0, 13) = ""
End If
Je viens d'essayer ce code avec else mais ça fait planter excel, je veux dire tout le programme pas le code
De plus avec mon code j'ai un probleme lorsque je supprime une seule entrée (que ce soit target.column ou target.offset)
Mais lorsque j'en supprime plusieurs le code bug et me met en surbrillance la ligne
If Target.Column = 4 And Target.Value <> 0 Then
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
22 juil. 2015 à 17:11
22 juil. 2015 à 17:11
Bonjour,
Je vous ai proposé un code que j'ai testé et qui fonctionne et ceci sans modification.
Le minimum serait de l'essayer sans oublie bonjour et salutations.
Libre à vous de ne pas le faire.
Je vous ai proposé un code que j'ai testé et qui fonctionne et ceci sans modification.
Le minimum serait de l'essayer sans oublie bonjour et salutations.
Libre à vous de ne pas le faire.
lilounice
Messages postés
31
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1
Modifié par lilounice le 22/07/2015 à 17:52
Modifié par lilounice le 22/07/2015 à 17:52
Bonjour!
Biensur que le minimum était de l'essayer! Et je l'ai fait
Peut être que je me suis mal exprimé mais il s'agit de votre code qui a fait planter mon excel
Pour la forme il est vrai que j'ai oublié la politesse élémentaire, j'ai communiqué par écrit comme si c'était à l'oral, une erreur de ma part
En tous cas je vous suis sincèrement reconnaissant à vous et autres membres du forum de l'aide précieuse et gratuite que vous m'apportez.
Milles excuses et Salutations !
Biensur que le minimum était de l'essayer! Et je l'ai fait
Peut être que je me suis mal exprimé mais il s'agit de votre code qui a fait planter mon excel
Pour la forme il est vrai que j'ai oublié la politesse élémentaire, j'ai communiqué par écrit comme si c'était à l'oral, une erreur de ma part
En tous cas je vous suis sincèrement reconnaissant à vous et autres membres du forum de l'aide précieuse et gratuite que vous m'apportez.
Milles excuses et Salutations !
lilounice
Messages postés
31
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1
>
lilounice
Messages postés
31
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
22 juil. 2015 à 17:52
22 juil. 2015 à 17:52
Dans la précipitation je n'avait pas copié une ligne de votre code, qui en effet fonctionne.
Cependant il présente le même problème que cité précédemment , en cas de suppression simultanée de plusieurs entrées une erreur d'exécution "incompatibilité de type s'affiche"
Sauriez vous ce qui cloche ?
ReSalutations!
Cependant il présente le même problème que cité précédemment , en cas de suppression simultanée de plusieurs entrées une erreur d'exécution "incompatibilité de type s'affiche"
Sauriez vous ce qui cloche ?
ReSalutations!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
22 juil. 2015 à 17:42
22 juil. 2015 à 17:42
Bonjour,
De la peine à vous croire car il y a aucune raison que cela fonctionne chez moi et des erreurs chez vous.
Vous pouvez toujours mettre le fichier sur https://www.cjoint.com/ et poster le lien et comme cela on trouvera ou le chat à mal à la patte.
De la peine à vous croire car il y a aucune raison que cela fonctionne chez moi et des erreurs chez vous.
Vous pouvez toujours mettre le fichier sur https://www.cjoint.com/ et poster le lien et comme cela on trouvera ou le chat à mal à la patte.
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
22 juil. 2015 à 17:49
22 juil. 2015 à 17:49
Bonjour,
Mon fichier test : http://www.cjoint.com/c/EGwpW7nQCqY
Mon fichier test : http://www.cjoint.com/c/EGwpW7nQCqY
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
22 juil. 2015 à 18:15
22 juil. 2015 à 18:15
Bonjour,
Une possibilité dans le message 8 ....!
Une possibilité dans le message 8 ....!
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
22 juil. 2015 à 22:25
22 juil. 2015 à 22:25
Bonjour,
C'est dur de recevoir des informations : Sauriez-vous ce qui cloche ?
Si vous ne voulez pas mettre le fichier à disposition alors au minimum, le message d'erreur et son numéro et sur quelle ligne de code est-il arrêtée (surligner en jaune)
C'est dur de recevoir des informations : Sauriez-vous ce qui cloche ?
Si vous ne voulez pas mettre le fichier à disposition alors au minimum, le message d'erreur et son numéro et sur quelle ligne de code est-il arrêtée (surligner en jaune)
lilounice
Messages postés
31
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1
27 juil. 2015 à 12:16
27 juil. 2015 à 12:16
Bonjour
Sur l'erreur qui s'affiche lorsque je supprime en même temps toutes les entrées de la colonne D est "erreur d'execution 13" incompatibilité de type
Dans le débogage c'est la ligne 4 qui est surlignée
Idem sur votre fichier test sur ci joint
PS: je comprend que sur internet il est important de se montrer courtois et précis, étant en 6 eme année de medecine je donne parfois des conseils sur des forums dans mon domaine. Mais vous ne pouvez en vouloir au néophytes que vous conseillez d'être justement des néophytes! Donc pardonnez ma formulation.
J'ai essayé votre fichiez test, il fonctionne mais ce même bug lors des suppressions multiples subsiste.
En tous cas merci de votre aide
Sur l'erreur qui s'affiche lorsque je supprime en même temps toutes les entrées de la colonne D est "erreur d'execution 13" incompatibilité de type
Dans le débogage c'est la ligne 4 qui est surlignée
Idem sur votre fichier test sur ci joint
PS: je comprend que sur internet il est important de se montrer courtois et précis, étant en 6 eme année de medecine je donne parfois des conseils sur des forums dans mon domaine. Mais vous ne pouvez en vouloir au néophytes que vous conseillez d'être justement des néophytes! Donc pardonnez ma formulation.
J'ai essayé votre fichiez test, il fonctionne mais ce même bug lors des suppressions multiples subsiste.
En tous cas merci de votre aide
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
Modifié par eriiic le 27/07/2015 à 15:39
Modifié par eriiic le 27/07/2015 à 15:39
Bonjour,
à partir du code de le pingou :
à tester...
eric
à partir du code de le pingou :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pl As Range, c As Range Application.EnableEvents = False set pl = Intersect(Target, [D:D]) If Not pl Is Nothing Then For Each c In pl If c.Value <> 0 Then c.Offset(0, 1) = Date c.Offset(0, 5) = Date + Range("J4").Value c.Offset(0, 9) = Date + Range("N4").Value c.Offset(0, 13) = Date + Range("R4").Value Else c.Offset(0, 1) = "" c.Offset(0, 5) = "" c.Offset(0, 9) = "" c.Offset(0, 13) = "" End If Next c End If Application.EnableEvents = True End Sub
à tester...
eric
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
27 juil. 2015 à 15:32
27 juil. 2015 à 15:32
Bonjour lilounice,
Merci pour l'information.
Merci eriiic (il me donne une petite erreur sur : pl = Intersect(Target, [D:D]) ....je cherche le pourquoi...)
Entre temps j'avais préparé ce qui suit :
Merci pour l'information.
Merci eriiic (il me donne une petite erreur sur : pl = Intersect(Target, [D:D]) ....je cherche le pourquoi...)
Entre temps j'avais préparé ce qui suit :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pl As Range, c As Range Application.EnableEvents = False If Target.Column = 4 Then For Each c In Target If c.Value <> 0 Then c.Offset(0, 1) = Date c.Offset(0, 5) = Date + Range("J4").Value c.Offset(0, 9) = Date + Range("N4").Value c.Offset(0, 13) = Date + Range("R4").Value Else c.Offset(0, 1) = "" c.Offset(0, 5) = "" c.Offset(0, 9) = "" c.Offset(0, 13) = "" End If Next c End If Application.EnableEvents = True End Sub
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
Modifié par eriiic le 27/07/2015 à 15:45
Modifié par eriiic le 27/07/2015 à 15:45
Salut le pingou
Ah oui, c'est set pl = Intersect(Target, [D:D])
J'aurais pu tester, merci ;-)
Et pour faire bonne mesure ajouter au début :
Application.ScreenUpdating = False
eric
Ah oui, c'est set pl = Intersect(Target, [D:D])
J'aurais pu tester, merci ;-)
Et pour faire bonne mesure ajouter au début :
Application.ScreenUpdating = False
eric
21 juil. 2015 à 17:47
Je ne comprend pas du tout pourquoi...