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 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 2 juil. 2013 à 09:19
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 2 juil. 2013 à 09:19
A voir également:
- Function Selection range et range
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Out of range ✓ - Forum Matériel & Système
- Vba range avec variable ✓ - Forum VB / VBA
- Input signal out of range change settings to 1600x900-60hz - Forum Windows
- Input signal out of range - Forum Matériel & Système
3 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
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
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
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