Microsoft 365 Ajouter nom et date automatiquement sur cellule

odohe

XLDnaute Occasionnel
Bonjour,
J'avais ce code VBA sur un de mes fichier qui me permettais d'ajouté le nom et la date automatiquement sur mes cellules, par contre j'aimerai l'utiliser sur un autre classeur mais qui est divisé en 4 tableau

comment adapté le code ci-joint afin qu'il s'adapte uniquement aux cellules de A4 à I38 et de A4 à I38

Merci d'avance

VB:
Private Sub Worksheet_Change(ByVal T As Range)

'Cellule de A4 à I38
If T.Column = 3 Then
T(1, 3) = Environ("username")
End If
If T.Column = 1 Then
T(1, 4) = Date
End If

'Cellule de A40 à I80
If T.Column = 4 Then
T(1, 3) = Environ("username")
End If
If T.Column = 2 Then
T(1, 4) = Date
End If

End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Odohe,
Essayez :
VB:
Private Sub Worksheet_Change(ByVal T As Range)
If T.Row >= 4 And T.Row <= 38 Then      ' Si clic en lignes 4 à 38
    'Cellule de A4 à I38
    If T.Column = 3 Then
        T(1, 3) = Environ("username")
    End If
    If T.Column = 1 Then
        T(1, 4) = Date
    End If
ElseIf T.Row >= 40 And T.Row <= 80 Then  ' Si clic en lignes 40 à 80
    'Cellule de A40 à I80
    If T.Column = 4 Then
        T(1, 3) = Environ("username")
    End If
    If T.Column = 2 Then
        T(1, 4) = Date
    End If
End If
End Sub
La première partie est exécutée entre les lignes 4 à 38, la seconde entre 40 et 80.
Mais je n'ai pas touché, évidemment à ce qu'il y a dans votre macro, ne sachant pas ce qu'elle est censée faire.
 

odohe

XLDnaute Occasionnel
Bonjour,
maintenant je suis confronté à un autres soucis, dans mon classeur j'ai voulu protégé les cellules ou se trouve les nom et date, par contre lorsque je rempli les cellules qui devrait complété automatiquement les autres cellules de date et nom, j'ai un message d'erreur qui apparait
si je déprotège les cellules le code fonctionne
comment je peux résoudre ce problème

Merci
ci-joint le message d'erreur + le code que j'ai placé sur la feuille visual basic
Capture1.PNG

VB:
Private Sub Worksheet_Change(ByVal T As Range)

If T.Row >= 4 And T.Row <= 38 Then
If T.Column = 3 Then
T(1, 3) = Environ("username")
End If

If T.Column = 1 Then
T(1, 4) = Date
End If

If T.Column = 8 Then
T(1, 2) = Environ("username")
End If

If T.Column = 13 Then
T(1, 3) = Environ("username")
End If

If T.Column = 16 Then
T(1, 2) = Environ("username")
End If

ElseIf T.Row >= 40 And T.Row <= 80 Then
If T.Column = 3 Then
T(1, 3) = Environ("username")
End If

If T.Column = 1 Then
T(1, 4) = Date
End If

If T.Column = 8 Then
T(1, 2) = Environ("username")
End If
End If
End Sub
 

odohe

XLDnaute Occasionnel
Merci sylvanu
Le Unprotect et Protect lorsque je les places au début de code ils ne fonctionnent pas, mais si je place le Unprotect en début de code et le Protect en fin de code alors je constate que la feuille est bien déverrouillé mais je sais rentré dans les cellules qui sont protégé.
Je pense que je mis prend pas comme il le faudrait.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
En fait c'est simple, vous déprotéger dès le début de la macro pour être tranquille, et vous reprotéger juste avant de sortir.
Cependant, attention si vous aviez une erreur pendant l'exécution alors vous sortiriez non protéger.
On peut alors s'en prémunir en faisant :
VB:
Private Sub Worksheet_Change(ByVal T As Range)
On error goto Fin
ActiveSheet.Unprotect ("mot de passe")
...
...
Fin:
ActiveSheet.Protect Password:="mot de passe"
End Sub
Comme ça, vous êtes tranquille.
 

odohe

XLDnaute Occasionnel
J'avance doucement mais surement, maintenant j'ai de nouveau une autre erreur lorsque je clic sur la macro de sauvegarde de la feuille et cela est apparu depuis le rajout de dé protection en debut de code et reprotection en fin de code nom et date
voici mon message d'erreur
Capture2.PNG
 

Discussions similaires

Réponses
3
Affichages
167

Statistiques des forums

Discussions
314 656
Messages
2 111 612
Membres
111 225
dernier inscrit
arnaud3110