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 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 juil. 2015 à 15:44
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 juil. 2015 à 15:44
A voir également:
- Effacer le contenu d'une cellule quand une autre est vide VBA
- Comment supprimer une page vide sur word - Guide
- Aller à la ligne dans une cellule excel - 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
- Excel cellule couleur si condition texte - Guide
9 réponses
jordane45
Messages postés
38347
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 décembre 2024
4 719
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
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
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
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
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
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...