code vba à réserver sur certaines lignes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonjour le forum
j'ai ce bout de code que m'avait fourni JOB75, que j'en remercie encore, il y a quelques temps et que j'ai voulu réutiliser sur une autre appli
il consiste à inscrire les heures sans mettre le :
ça fonctionne très bien , trop même puisque je viens de voir qu'il s'applique sur toute la feuille
ce que je ne souhaite pas du tout
pourtant la zone concernée est indiquée
quel est le bout de code à rajouter pour exempter les autres zones et particulier la ligne 43
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Calculate
Dim r As Range, x$
Set r = Intersect(Target, [t6:x7,t11:x12,t16:x17,t21:x30,t33:x34])
Set r = Intersect(Target, Me.UsedRange)
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
r.NumberFormat = "General"
For Each r In r 'si entrées multiples (copier-coller)
  If r Like "#" Or r Like "##" Or r Like "###" Or r Like "####" Then
    x = Format(r, "0000")
  r = Left(x, 2) & ":" & Mid(x, 3)
    r.NumberFormat = "hh:mm"
  End If
Next
Application.EnableEvents = True
End Sub
merci de votre aide
 
Dernière édition:
Bonjour pascal21,

Essayez la suppression ou la mise en commentaire de la ligne:
VB:
Set r = Intersect(Target, Me.UsedRange)
alors Worksheet_Change s'appliquera aux cellules modifiées de la zone t6:x7,t11:x12,t16:x17,t21:x30,t33:x34.
 
Re,

Si j'ai bien compris la question...

Me.UsedRange est la plus grande plage au sein de laquelle il y a des données.
Target sont les cellules qui ont été modifiées.

Target est donc obligatoirement contenu dans Me.UsedRange. Intersect(Target, Me.UsedRange) sera donc toujours égale Target.

Si vous modifiez n'importe quelle cellule de la feuille:

  • cette cellule devient membre de Me.UsedRange
  • cette cellule devient Target (cellule modifiée)
donc Intersect(Target, Me.UsedRange) devient la cellule target, donc la macro s'applique à n'importe quelle cellule modifiée.

 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
508
Réponses
1
Affichages
1 K
Retour