Cellulé protégé avec un nombre maximum de caractère (VBA)

phandil

XLDnaute Nouveau
Bonjour,

je voudrai votre aide pour la création d'une macro.

Mon problème est le suivant: je dois envoyer un fichier à compléter à un client, j'utilise "validation des données" afin de protéger lors de l'écriture ma cellule (max: 30 caractères) hors je me suis rendu compte qu'un bête copier/coller faisait sauter cette protection.

après des recherches il s'avère que j'ai besoin d'une macro pour protéger efficacement ma cellule.

Donc je voudrais une macro qui:

- lors d'un "coller" venant d'une feuille ou d'un programme extérieur vérifie que le nombre de caractère ne dépasse pas les 30
- Si cela dépasse:
1) Apparition d'un message d'avertissement)
2) curseur revenu au début de la cellule qui reste vide

j'ai commencé le code mais je n'arrive pas à le finir

Code:
Sub Macro1() 
Dim i As Integer 

Range("D4").Select 
CnLen = Len(ActiveCell) 
For i = 4 To 50 
If Len(ActiveCell.Text) > 30 Then 
MsgBox ">30 caractères"
End If 
Next i 
End Sub

merci d'avance
 
G

Guest

Guest
Re : Cellulé protégé avec un nombre maximum de caractère (VBA)

Bonjour,

Dans le module de la feuille de la cellule (click-droit sur l'onglet de la feuille puis 'visualiser le code') tester ces lignes de code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "D4" And Not IsEmpty(Target) Then
    If Len(Target.Text) > 30 Then MsgBox "trop long"
End If
End Sub

A+
 

Papou-net

XLDnaute Barbatruc
Re : Cellulé protégé avec un nombre maximum de caractère (VBA)

Bonjour phandil, et bienvenue,

Ci-joint un fichier exemple avec macro événementielle qui se déclkenche lors de la modification d'une cellule.

Dans ce cas, j'ai nommé "Plage" la zone de cellules D1:20. Si une cellule est modifiée en dehors de ctte plage, la macro reste inactive. A toi donc d'adapter cette plage.

Cordialement.

Oups collision : salut Hasco, c'est un plaisir de te croiser.
 

Pièces jointes

  • Exemple phandil.xls
    36.5 KB · Affichages: 73

phandil

XLDnaute Nouveau
Re : Cellulé protégé avec un nombre maximum de caractère (VBA)

Super ! Merci Papou-net !

C'est exactement ce que je recherche

Dernière petite question: afin de limiter le risque d'erreur j'ai crée une liste déroulante dans une cellule.

Hors là aussi le copier-coller fonctionne: comment limiter l'utilisateur avec les possibilités de la liste uniquement

exemple liste en A1 regroupant 5 items (appel de la liste via "validation des données)

merci de vos réponses rapide en tout cas!
 

Discussions similaires

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet