Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B3")) Is Nothing Then
If Len(Target) > Range("G3") Then
Range("B3").ClearContents
MsgBox "Trop de caractere maxi " & Range("G3") & " caractères", vbCritical, "Vous avez un problème !"
End If
End If
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.GetFromClipboard
If Len(.GetText(1)) > 30 Then .SetText "": .PutInClipboard
End With
End Sub
Merci.rre
bonjour
sinon en vba et en plus (en late binding) le dataobject
c'est beau la vie nonVB:Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .GetFromClipboard If Len(.GetText(1)) > 30 Then .SetText "": .PutInClipboard End With End Sub
et si tu veux vraiment enpêcher le collage par les touches
met ce code directement dans le selectchange
Je n'arrive pas à activer les macros du fichier car je suis sur un ordi du boulot avec des restrictions.Re
Bonjour Patrick
Je te propose cette version
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B3")) Is Nothing Then
If Len(Target) > Range("G3") Then
Range("B3").ClearContents
MsgBox "Trop de caractere maxi " & Range("G3") & " caractères", vbCritical, "Vous avez un problème !"
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B3")) Is Nothing Then
If Len(Target) > 5 Then ' A ajuster si besoin
Range("B3").ClearContents
MsgBox "Trop de caractere maxi 5 caractères", vbCritical, "Vous avez un problème !"
End If
End If
End Sub
If Len(Target) > 5 Then ' A ajuster si besoin
J'ai testé ce code et ça a l'air de bien fonctionner. C'est magique.Re
@saralht
Le code de la macro
VB:Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B3")) Is Nothing Then If Len(Target) > Range("G3") Then Range("B3").ClearContents MsgBox "Trop de caractere maxi " & Range("G3") & " caractères", vbCritical, "Vous avez un problème !" End If End If End Sub
A mettre ici
Regarde la pièce jointe 1183424
En G3 tu mets le nombre de caractères que tu veux
Regarde la pièce jointe 1183425
Pour l'exemple j'ai mis 5
Et en B3 tu fais tout ce que tu veux mais si tu dépasses 5 caractères tu auras un message que cela soit par copier/coller ou directement dans la cellule
Bien sur on peut en modifiant le code et le message pour figer en dur dans le code VBA la longueur du texte en B3
Je t'ai perdu ??
Réponse voir mon post # 91- suis-je obligée d'avoir une cellule de référence ?
Je te propose ce code qui contrôle toute la colonne B et toujours avec 5 caractères2- Comment appliquer la limite à toute une colonne ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
If Len(Target) > 5 Then ' A ajuster si besoin
Target.ClearContents
MsgBox "Trop de caractere maxi 5 caractères", vbCritical, "Vous avez un problème !"
End If
End If
End Sub
Quelle colonne ?puis à plusieurs colonnes
Dans cet exemple ce sont les colonnes B et C qui sont contrôlésIf Not Application.Intersect(Target, Range("B:C")) Is Nothing Then
Super je te remercie.Re
@saralht
1)
Réponse voir mon post # 9
2)
Je te propose ce code qui contrôle toute la colonne B et toujours avec 5 caractères
VB:Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then If Len(Target) > 5 Then ' A ajuster si besoin Target.ClearContents MsgBox "Trop de caractere maxi 5 caractères", vbCritical, "Vous avez un problème !" End If End If End Sub
3)
Quelle colonne ?
Dans cet exemple ce sont les colonnes B et C qui sont contrôlés
A toi d'adapter
Perso :
A) Remplir ton fichier risque de devenir un enfer pour l'utilisateur
B) Feuilletonner la question n'est pas bien vu sur le forum car c'est souvent sans fin
Voir la charte
Regarde la pièce jointe 1183434
Merci de ton retour