Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupération du nom utilisateur et des cellules modifiées.

10 réponses
Avatar
Alex
Bonjour =E0 tous,

Je voudrais depuis un userform, qu'=E0 chaque modification d'une fiche
via le Userform apres validation du bouton OK, que s'incrive dans la
derni=E8re colonne de mon tableau, le nom utilisateur que l'on trouve
dans Outils/Options Onglet G=E9n=E9ral Nom Utilisateur ainsi que le nom de
la zone du textbox qui a fait l'objet de la modification afin
d'assurer un meilleur suivi des saisies.
Quelqu'un aurait il la solution =E0 ces deux probl=E8mes.
Je vous remercie par avance de votre aide.
Bien cordialement.
Alex

10 réponses

Avatar
isabelle
bonjour Alex,

Nom_utilisateur = Application.UserName

pour les textbox, tu peut utiliser l'événement change pour récupérer
le nom du textbox soit dans un tabeau ou une variable public,

Public tb1 As String
Private Sub TextBox1_Change()
tb1 = TextBox1.Name
End Sub

isabelle



Le 2011-02-07 05:50, Alex a écrit :
Bonjour à tous,

Je voudrais depuis un userform, qu'à chaque modification d'une fiche
via le Userform apres validation du bouton OK, que s'incrive dans la
dernière colonne de mon tableau, le nom utilisateur que l'on trouve
dans Outils/Options Onglet Général Nom Utilisateur ainsi que le nom de
la zone du textbox qui a fait l'objet de la modification afin
d'assurer un meilleur suivi des saisies.
Quelqu'un aurait il la solution à ces deux problèmes.
Je vous remercie par avance de votre aide.
Bien cordialement.
Alex

Avatar
michdenis
Bonjour,

Pour récupérer le nom de l'utilisateur :

Range("A1") = Environ("UserName")

Si tu veux assurer un suivi sur des nouveaux enregistrements
et des nouvelles modifications que l'on fait à l'aide d'un bouton OK
sur un formulaire, pourquoi ne pas enregistrer dans un fichier CSV
toutes les données du formulaire. Si tu veux à un moment donné
effectuer certaines vérifications, tu peux ouvrir ton fichier CSV dans
un classeur et en utilisant un filtre retrouver toutes les modifications
faites sur un enregistrement particulier.

À chaque fois que l'usager clique sur le bouton "OK", la date courante,
le nom de l'usager et toutes les données des textbox (ce pourrait être
aussi la valeur des autres contrôles aussi si nécessaire) sont inscrits dans
un fichier CSV. Tu n'as qu'à appeler la procédure... et définir les variables
de cette procédure selon ton environnement de travail.

'-------------------------------------------
Sub Suivi_Fichier_Texte_CSV()

Dim Chemin As String, Fichier As String
Dim Texte As String
Dim X As Long, C As Control

'********Variables à définir********
Chemin = "c:"
Fichier = "Suivi_MonFichier.csv"
'***********************************

X = FreeFile
Texte = Now() & ";" & Environ("Username")
For Each C In Me.Controls
If TypeName(C) = "TextBox" Then
Texte = Texte & ";" & C.Text
End If
Next
Open Chemin & Fichier For Append As #X
Print #X, Texte
Close #X
End Sub
'-------------------------------------------


MichD
--------------------------------------------
"Alex" a écrit dans le message de groupe de discussion :


Bonjour à tous,

Je voudrais depuis un userform, qu'à chaque modification d'une fiche
via le Userform apres validation du bouton OK, que s'incrive dans la
dernière colonne de mon tableau, le nom utilisateur que l'on trouve
dans Outils/Options Onglet Général Nom Utilisateur ainsi que le nom de
la zone du textbox qui a fait l'objet de la modification afin
d'assurer un meilleur suivi des saisies.
Quelqu'un aurait il la solution à ces deux problèmes.
Je vous remercie par avance de votre aide.
Bien cordialement.
Alex
Avatar
LSteph
Bonjour,


Application.username renvoie le nom de l'utilisateur tel que défini
dans office (...le cas échéant)

Environ("UserName") renvoie le login de l'utilisateur ayant ouvert sa
session sur le poste.


Cordialement.

--
LSteph







Alex a écrit :
Bonjour à tous,

Je voudrais depuis un userform, qu'à chaque modification d'une fiche
via le Userform apres validation du bouton OK, que s'incrive dans la
dernière colonne de mon tableau, le nom utilisateur que l'on trouve
dans Outils/Options Onglet Général Nom Utilisateur ainsi que le nom d e
la zone du textbox qui a fait l'objet de la modification afin
d'assurer un meilleur suivi des saisies.
Quelqu'un aurait il la solution à ces deux problèmes.
Je vous remercie par avance de votre aide.
Bien cordialement.
Alex
Avatar
Alex
Bonjour,

Merci à tous pour vos réponses. Je vais tester cela.
Je ne pense pas que j'utiliserai un fichier csv car j'aimerai que mes
données de pistage reste sur le tableau, et m'evitant ainsi de
consulter deux listes si j'ai bien compris l'explication de Michel. De
plus, je ne sais pas ce qu'est un fichier csv, s'agit t il un classeur
Excel simplié ?

Dans un textbox_change puis écrire ceci : (désirant ne faire ces
controles que sur des données bien particulieres, et désirant
conserver les données déja existante dans ma cellule "traseuse")

cells (i,55).value = Cells (i,55).value & chr(13) & Me.texbox.name &
Application.username ??

Car j'ai toujours un message d'ereur 1004

Merci par avance de votre aide.
Bien cordialement
Alex
Avatar
isabelle
bonjour Alex,

il faut utiliser un module de classe pour définir le groupe textbox,
voici un exemple : http://cjoint.com/?2chvFfiRCUt

isabelle



Le 2011-02-07 12:24, Alex a écrit :
Bonjour,

Merci à tous pour vos réponses. Je vais tester cela.
Je ne pense pas que j'utiliserai un fichier csv car j'aimerai que mes
données de pistage reste sur le tableau, et m'evitant ainsi de
consulter deux listes si j'ai bien compris l'explication de Michel. De
plus, je ne sais pas ce qu'est un fichier csv, s'agit t il un classeur
Excel simplié ?

Dans un textbox_change puis écrire ceci : (désirant ne faire ces
controles que sur des données bien particulieres, et désirant
conserver les données déja existante dans ma cellule "traseuse")

cells (i,55).value = Cells (i,55).value& chr(13)& Me.texbox.name&
Application.username ??

Car j'ai toujours un message d'ereur 1004

Merci par avance de votre aide.
Bien cordialement
Alex

Avatar
Alex
Merci pour ta réponse Isabelle
Faut que je teste, car je n'ai jamais utiliser de module class
auparavent.
Mais quelques questions :

Si j'ai bien compris, le modile class permet et identifie toutes mes
texbox, je n'ai pas besoin de les nommer une à une ? il prend le nom
texbox en "générique" meme si elle se nomme differement de texbox1 ?

Comment puis le faire la boucle que sur les textbox souhaites et non
pas tous?

Merci encore de ton aide
Alex
Avatar
isabelle
bonjour Alex,

Le 2011-02-07 16:02, Alex a écrit :
Si j'ai bien compris, le modile class permet et identifie toutes mes
texbox, je n'ai pas besoin de les nommer une à une ? il prend le nom
texbox en "générique" meme si elle se nomme differement de texbox1 ?




oui, c'est bien ça, le nom qu'ils ont n'a pas d'importance à ce niveau

Comment puis le faire la boucle que sur les textbox souhaites et non
pas tous?




tout dépendant de leurs noms tu peut ajouter une condition pour les
identifier, quel sont leurs nom ?

isabelle
Avatar
michdenis
Pour faire une boucle sur tous les textbox de ton formulaire,

suppose que tu as 5 textbox dont les noms sont : Textbox1, Textbox2...Textbox5

Pour copier la valeur de tes 5 textbox dans la feuille "Feui1" dans la colonne de A à E

Dim DerLig As Long
Application.EnableEvents = False
With Worksheets("Feuil1")
DerLig = .Range("A65536").end(xlup).row +
For a = 1 to 5
.Cells(Derlig , a) = (Me.Controls("TextBox" & a)
Next
End With
Application.EnableEvents = True

MichD
--------------------------------------------
Avatar
Alex
Bonjour,

Merci Michel pour cette boucle.
Je n'ai pas eu encore le temps de la tester, mais à la lecture de
celle-ci, les données se postionneraient sur une feuille
supplementaire, alors que je voulais l'ajouter sur la ligne modifiée
en derniere colonne de mon tableau .
Dois je mettre ta proposition dans un module class comme me la suggeré
isabelle ?
Si j'ai bien compris ta solution me permets de choisir les textbox que
je veux controler ?
Et enfin, je peux aussi l'utiliser pour des combobox cette boucle ?
j'ai juste a modifier textbox par combox ?
Merci par avance de vos reponses.
Alex
Avatar
michdenis
| les données se postionneraient sur une feuille
| supplementaire, alors que je voulais l'ajouter
| sur la ligne modifiée en derniere colonne de mon tableau .

**** Si tu as 5 Textbox, toutes les valeurs doivent se retrouver
sur la même ligne dans la même cellule ????

**** Si tu as une deuxième, troisième modification à effectuer, où
veux-tu écrire les données de ta sauvegarde ???

Ma solution n'a pas besoin de module de classe. Tu peux l'écrire
directement dans le module du formulaire. Si tu écris le code dans
un module standard, tu dois utiliser le nom du formulaire et non
le mot "Me" dans le code exemple.

Ce n'était qu'un exemple, il ne faut surtout pas copier bêtement cela
dans ton programme et penser que tout sera OK.


MichD
--------------------------------------------