Problème avec ; Private Sub Worksheet_Change

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 !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide pour ce petit soucis .
Comment placer deux commande "Private Sub Worksheet_Change" dans une seule ? :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Application.Intersect(Range("D14😀27"), Target) Is Nothing Then Exit Sub
Dim maxLen As Integer, tabStr, i As Integer, tempStr
maxLen = 85

tabStr = Split(Target.Value, " ")
tempStr = ""
For i = LBound(tabStr) To UBound(tabStr)
If Len(tempStr & " " & tabStr(i)) < maxLen Then
If tabStr(i) <> "" Then tempStr = tempStr & " " & tabStr(i)
Else
If tempStr = "" Then tempStr = tabStr(i)
tempStr = Right(tempStr, Len(tempStr) - 1)
Target.Offset(1, 0).Value = Mid(Target.Value, Len(tempStr) + 2, Len(Target.Value) - Len(tempStr)) & " " & Target.Offset(1, 0).Value
Target.Value = tempStr
i = UBound(tabStr) + 1


End If
Next i
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2:A200], Target) Is Nothing Then
If Len(Target) = 1 Then SendKeys "%{DOWN}"
End If
End Sub

Merci pour votre aide,
à+
Christian
 
Re : Problème avec ; Private Sub Worksheet_Change

Bonjour Christian,

un essai

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Not Intersect([A2:A200], Target) Is Nothing Then
If Len(Target) = 1 Then SendKeys "%{DOWN}"
End If
If Application.Intersect(Range("D14:D27"), Target) Is Nothing Then Exit Sub
Dim maxLen As Integer, tabStr, i As Integer, tempStr
maxLen = 85
 
tabStr = Split(Target.Value, " ")
tempStr = ""
For i = LBound(tabStr) To UBound(tabStr)
If Len(tempStr & " " & tabStr(i)) < maxLen Then
If tabStr(i) <> "" Then tempStr = tempStr & " " & tabStr(i)
Else
If tempStr = "" Then tempStr = tabStr(i)
tempStr = Right(tempStr, Len(tempStr) - 1)
Target.Offset(1, 0).Value = Mid(Target.Value, Len(tempStr) + 2, Len(Target.Value) - Len(tempStr)) & " " & Target.Offset(1, 0).Value
Target.Value = tempStr
i = UBound(tabStr) + 1
End If
Next i
End Sub

Edit : Bonjour Staple 🙂
 
Bonjour à vous.

J'ai un problème proche de celui de "Christian0258"

J'ai deux commande "Private Sub Worksheet_Change" à placer dans une seule.
Après avoir retourné le problème dans tous les sens je suis dans une impasse.

Voici mes 2 commandes :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then
Target.Offset(0, 1) = Date + Time
End If
End Sub

Private Sub Worksheet_Change(ByVal sel As Range)
Application.EnableEvents = False
Cells(sel.Row, "M").Value = Date + Time
Application.EnableEvents = True
End Sub


Quelqu'un pourrait-il me donner un coup de main svp ?

Bruno
 
Re : Problème avec ; Private Sub Worksheet_Change

Bonsoir,

Peut-être ainsi, en combinant les 2 ensemble...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then
    Target.Offset(0, 1) = Date + Time
End If

Range("M" & Target.Row).Value = Date + Time

End Sub
 
- 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
9
Affichages
508
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour