Function Selection range et range
Fermé
Pseudoquires
Messages postés
5
Date d'inscription
dimanche 30 juin 2013
Statut
Membre
Dernière intervention
2 juillet 2013
-
Modifié par Pseudoquires le 1/07/2013 à 04:04
eriiic Messages postés 24512 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 24 mars 2023 - 2 juil. 2013 à 09:19
eriiic Messages postés 24512 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 24 mars 2023 - 2 juil. 2013 à 09:19
A voir également:
- Function Selection range et range
- Input signal out of range ✓ - Forum Matériel informatique
- Vba range avec variable ✓ - Forum VB / VBA
- Range ip ✓ - Forum Windows
- Comment désactiver out of range - Forum Ecran
- Out of range ✓ - Forum Matériel informatique
3 réponses
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
Modifié par eriiic le 1/07/2013 à 08:11
Modifié par eriiic le 1/07/2013 à 08:11
Bonjour,
Target est une variable qui t'est passée en paramètre.
Tu n'as pas à l'utiliser pour y stocker tes valeurs. Mais juste pour récupérer la cellule ayant provoqué l'évènement.
Déclare ta propre variable au début.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c as Range
For Each c In Range("D13:D262")
If c .Value = "" Or c.Value = 0 Then
...
Par contre l'évènement Change est appelé à chaque fois qu'une saisie change le contenu d'une cellule.
C'est peut-être inutile de balayer toute la plage, et tester quel est cette cellule et n'agir qu'à partir de celle-ci est peut-être suffisant.
Si c'est le cas :
Un des défaut des débutants est d'enchainer les questions.
Si celle-ci est résolue tu le marques en le cochant (en haut vers ton titre).
Et si tu en as une nouvelle (n'hésite pas à te servir de la touche F1 avant) tu démarres un nouveau fil.
Et lorsque tu mets du code met-le en forme avec l'icone <>
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Target est une variable qui t'est passée en paramètre.
Tu n'as pas à l'utiliser pour y stocker tes valeurs. Mais juste pour récupérer la cellule ayant provoqué l'évènement.
Déclare ta propre variable au début.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c as Range
For Each c In Range("D13:D262")
If c .Value = "" Or c.Value = 0 Then
...
Par contre l'évènement Change est appelé à chaque fois qu'une saisie change le contenu d'une cellule.
C'est peut-être inutile de balayer toute la plage, et tester quel est cette cellule et n'agir qu'à partir de celle-ci est peut-être suffisant.
Si c'est le cas :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("D13:D262")) Is Nothing Then
' si target appartient à cette plage
If Target.Value = "" Or Target.Value = 0 Then
Target.Offset(0, -1) = 0
End If
ElseIf Not Intersect(Target, Range("J12:j262")) Is Nothing Then
' sinon si target appartient à cette plage
If Target.Value = "" Or Target.Value = 0 Then
Target = Target.Offset(0, 26)
End If
End If
Application.ScreenUpdating = True
End Sub
Un des défaut des débutants est d'enchainer les questions.
Si celle-ci est résolue tu le marques en le cochant (en haut vers ton titre).
Et si tu en as une nouvelle (n'hésite pas à te servir de la touche F1 avant) tu démarres un nouveau fil.
Et lorsque tu mets du code met-le en forme avec l'icone <>
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Pseudoquires
Messages postés
5
Date d'inscription
dimanche 30 juin 2013
Statut
Membre
Dernière intervention
2 juillet 2013
Modifié par Pseudoquires le 2/07/2013 à 06:14
Modifié par Pseudoquires le 2/07/2013 à 06:14
Numéro Merci Bcp SE qui me bloquait Sé ou t'as écrit se commentaire
' si target appartient à cette plage
Je comprend pas pourquoi si y'a rien D'écrit après Then que ma cellule conserve l'insertion de l'utilisateur y'a un code a rentrer la ? Pour moi sa marche numéro 1 T'as formule Mais tent que je ne comprend pas pourquoi j'ai rien a insérer la je me sentirait pas bien ! ya pas un text qui vas la du genre keepuser entry? Ou
Target = Target.Value ?
' si target appartient à cette plage
Je comprend pas pourquoi si y'a rien D'écrit après Then que ma cellule conserve l'insertion de l'utilisateur y'a un code a rentrer la ? Pour moi sa marche numéro 1 T'as formule Mais tent que je ne comprend pas pourquoi j'ai rien a insérer la je me sentirait pas bien ! ya pas un text qui vas la du genre keepuser entry? Ou
Target = Target.Value ?
eriiic
Messages postés
24512
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2023
7 168
2 juil. 2013 à 09:19
2 juil. 2013 à 09:19
Bonjour,
désolé mais entre les fautes et le mauvais français, c'est incompréhensible.
eric
désolé mais entre les fautes et le mauvais français, c'est incompréhensible.
eric
Pseudoquires
Messages postés
5
Date d'inscription
dimanche 30 juin 2013
Statut
Membre
Dernière intervention
2 juillet 2013
2 juil. 2013 à 06:22
2 juil. 2013 à 06:22
ET autre petit problème qui survient aussi avec se code est que si l'utilisateur sélection plusieur cellule de cette même plage il me donne une erreur